diff --git a/libphosh-rs/.gitattributes b/libphosh-rs/.gitattributes
new file mode 100644
index 000000000..95a49ea5d
--- /dev/null
+++ b/libphosh-rs/.gitattributes
@@ -0,0 +1,3 @@
+libphosh/src/auto/** gitlab-generated
+libphosh/sys/src/lib.rs gitlab-generated
+libphosh/sys/tests/**
diff --git a/libphosh-rs/.gitignore b/libphosh-rs/.gitignore
new file mode 100644
index 000000000..64d653cb4
--- /dev/null
+++ b/libphosh-rs/.gitignore
@@ -0,0 +1,5 @@
+libphosh/sys/target
+target/
+subprojects/gvc/
+subprojects/libcall-ui/
+subprojects/phosh/
diff --git a/libphosh-rs/.gitlab-ci.yml b/libphosh-rs/.gitlab-ci.yml
new file mode 100644
index 000000000..d63837216
--- /dev/null
+++ b/libphosh-rs/.gitlab-ci.yml
@@ -0,0 +1,86 @@
+stages:
+ - build
+ - test+docs
+ - deploy
+
+image: debian:forky
+
+default:
+ # Protect CI infra from rogue jobs
+ timeout: 15 minutes
+ # Allow jobs to be caneled on new commits
+ interruptible: true
+ # Retry on infra hickups automatically
+ retry:
+ max: 1
+ when:
+ - 'api_failure'
+ - 'runner_system_failure'
+ - 'scheduler_failure'
+ - 'stuck_or_timeout_failure'
+
+workflow:
+ rules:
+ - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
+ # Don't trigger a branch pipeline if there is an open MR
+ - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
+ when: never
+ - if: $CI_COMMIT_TAG
+ - if: $CI_COMMIT_BRANCH
+
+variables:
+ DEPS: |
+ git build-essential ca-certificates meson curl rustup xmlstarlet
+ GIT_SUBMODULE_STRATEGY: recursive
+ RUST_VERSION: stable
+
+.common_before_script: &common_before_script
+ before_script:
+ - apt update
+ - apt install -y --no-install-recommends eatmydata
+ - eatmydata apt install -y --no-install-recommends $DEPS
+ - rustup default $RUST_VERSION
+ - git submodule update --checkout
+ - meson subprojects download phosh
+ - if [ -n "$UPSTREAM_BRANCH" ]; then cd subprojects/phosh && git fetch origin "$UPSTREAM_BRANCH" && git checkout FETCH_HEAD && cd -; fi
+ - cd subprojects/phosh && eatmydata apt -y --no-install-recommends build-dep . && cd -
+
+build:
+ stage: build
+ <<: *common_before_script
+ script:
+ # Build phosh
+ - meson setup _build
+ - meson compile -C _build
+ - meson install -C _build
+ # Build gir
+ - cd gir && cargo build && cd -
+ # Rebuild bindings
+ - make
+
+build-doc:
+ stage: test+docs
+ needs: []
+ variables:
+ GIT_SUBMODULE_STRATEGY: recursive
+ RUSTFLAGS: --cfg docsrs
+ RUST_VERSION: nightly
+ <<: *common_before_script
+ script:
+ - ./build-doc.sh
+ - mv target/doc/ docs
+ artifacts:
+ paths:
+ - docs
+
+pages:
+ stage: deploy
+ needs: [ build-doc ]
+ script:
+ - mkdir -p public/git
+ - mv docs public/git/docs
+ artifacts:
+ paths:
+ - public
+ rules:
+ - if: $CI_DEFAULT_BRANCH == $CI_COMMIT_BRANCH
diff --git a/libphosh-rs/.gitmodules b/libphosh-rs/.gitmodules
new file mode 100644
index 000000000..5c4f27aec
--- /dev/null
+++ b/libphosh-rs/.gitmodules
@@ -0,0 +1,8 @@
+[submodule "gir"]
+ path = gir
+ url = https://github.com/gtk-rs/gir.git
+ update = none
+[submodule "gir-files"]
+ path = gir-files
+ url = https://github.com/gtk-rs/gir-files.git
+ update = none
diff --git a/libphosh-rs/Cargo.lock b/libphosh-rs/Cargo.lock
new file mode 100644
index 000000000..4f3d8242d
--- /dev/null
+++ b/libphosh-rs/Cargo.lock
@@ -0,0 +1,934 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 4
+
+[[package]]
+name = "atk"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b"
+dependencies = [
+ "atk-sys",
+ "glib",
+ "libc",
+]
+
+[[package]]
+name = "atk-sys"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c5e48b684b0ca77d2bbadeef17424c2ea3c897d44d566a1617e7e8f30614d086"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps 6.2.2",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
+
+[[package]]
+name = "bitflags"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
+
+[[package]]
+name = "cairo-rs"
+version = "0.18.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2"
+dependencies = [
+ "bitflags",
+ "cairo-sys-rs",
+ "glib",
+ "libc",
+ "once_cell",
+ "thiserror",
+]
+
+[[package]]
+name = "cairo-sys-rs"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "system-deps 6.2.2",
+]
+
+[[package]]
+name = "cfg-expr"
+version = "0.15.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02"
+dependencies = [
+ "smallvec",
+ "target-lexicon 0.12.14",
+]
+
+[[package]]
+name = "cfg-expr"
+version = "0.20.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a2c5f3bf25ec225351aa1c8e230d04d880d3bd89dea133537dafad4ae291e5c"
+dependencies = [
+ "smallvec",
+ "target-lexicon 0.13.2",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "errno"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
+dependencies = [
+ "libc",
+ "windows-sys",
+]
+
+[[package]]
+name = "fastrand"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a"
+
+[[package]]
+name = "field-offset"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f"
+dependencies = [
+ "memoffset",
+ "rustc_version",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
+dependencies = [
+ "futures-core",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
+
+[[package]]
+name = "futures-macro"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.61",
+]
+
+[[package]]
+name = "futures-task"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
+
+[[package]]
+name = "futures-util"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
+dependencies = [
+ "futures-core",
+ "futures-macro",
+ "futures-task",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "gdk"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9f245958c627ac99d8e529166f9823fb3b838d1d41fd2b297af3075093c2691"
+dependencies = [
+ "cairo-rs",
+ "gdk-pixbuf",
+ "gdk-sys",
+ "gio",
+ "glib",
+ "libc",
+ "pango",
+]
+
+[[package]]
+name = "gdk-pixbuf"
+version = "0.18.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec"
+dependencies = [
+ "gdk-pixbuf-sys",
+ "gio",
+ "glib",
+ "libc",
+ "once_cell",
+]
+
+[[package]]
+name = "gdk-pixbuf-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7"
+dependencies = [
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps 6.2.2",
+]
+
+[[package]]
+name = "gdk-sys"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c2d13f38594ac1e66619e188c6d5a1adb98d11b2fcf7894fc416ad76aa2f3f7"
+dependencies = [
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pango-sys",
+ "pkg-config",
+ "system-deps 6.2.2",
+]
+
+[[package]]
+name = "gio"
+version = "0.18.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-util",
+ "gio-sys",
+ "glib",
+ "libc",
+ "once_cell",
+ "pin-project-lite",
+ "smallvec",
+ "thiserror",
+]
+
+[[package]]
+name = "gio-sys"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps 6.2.2",
+ "winapi",
+]
+
+[[package]]
+name = "glib"
+version = "0.18.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5"
+dependencies = [
+ "bitflags",
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-task",
+ "futures-util",
+ "gio-sys",
+ "glib-macros",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "memchr",
+ "once_cell",
+ "smallvec",
+ "thiserror",
+]
+
+[[package]]
+name = "glib-macros"
+version = "0.18.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc"
+dependencies = [
+ "heck 0.4.1",
+ "proc-macro-crate 2.0.2",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.61",
+]
+
+[[package]]
+name = "glib-sys"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898"
+dependencies = [
+ "libc",
+ "system-deps 6.2.2",
+]
+
+[[package]]
+name = "gobject-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "system-deps 6.2.2",
+]
+
+[[package]]
+name = "gtk"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd56fb197bfc42bd5d2751f4f017d44ff59fbb58140c6b49f9b3b2bdab08506a"
+dependencies = [
+ "atk",
+ "cairo-rs",
+ "field-offset",
+ "futures-channel",
+ "gdk",
+ "gdk-pixbuf",
+ "gio",
+ "glib",
+ "gtk-sys",
+ "gtk3-macros",
+ "libc",
+ "pango",
+ "pkg-config",
+]
+
+[[package]]
+name = "gtk-sys"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f29a1c21c59553eb7dd40e918be54dccd60c52b049b75119d5d96ce6b624414"
+dependencies = [
+ "atk-sys",
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gdk-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pango-sys",
+ "system-deps 6.2.2",
+]
+
+[[package]]
+name = "gtk3-macros"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52ff3c5b21f14f0736fed6dcfc0bfb4225ebf5725f3c0209edeec181e4d73e9d"
+dependencies = [
+ "proc-macro-crate 1.3.1",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.61",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.14.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
+
+[[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
+name = "heck"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+
+[[package]]
+name = "indexmap"
+version = "2.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
+dependencies = [
+ "equivalent",
+ "hashbrown",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.154"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346"
+
+[[package]]
+name = "libhandy-sys"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d814ea1e409715aef1dd9885994cb6801f52129ba2898bfe74591b9547b998ad"
+dependencies = [
+ "gdk-pixbuf-sys",
+ "gdk-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "gtk-sys",
+ "libc",
+ "pango-sys",
+ "pkg-config",
+ "system-deps 6.2.2",
+]
+
+[[package]]
+name = "libphosh"
+version = "0.0.7"
+dependencies = [
+ "gdk",
+ "gio",
+ "glib",
+ "gtk",
+ "libc",
+ "libphosh-sys",
+]
+
+[[package]]
+name = "libphosh-sys"
+version = "0.0.7"
+dependencies = [
+ "gdk-pixbuf-sys",
+ "gdk-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "gtk-sys",
+ "libc",
+ "libhandy-sys",
+ "pango-sys",
+ "shell-words",
+ "system-deps 7.0.5",
+ "tempfile",
+]
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+
+[[package]]
+name = "memchr"
+version = "2.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
+
+[[package]]
+name = "memoffset"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+[[package]]
+name = "pango"
+version = "0.18.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4"
+dependencies = [
+ "gio",
+ "glib",
+ "libc",
+ "once_cell",
+ "pango-sys",
+]
+
+[[package]]
+name = "pango-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps 6.2.2",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
+
+[[package]]
+name = "proc-macro-crate"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
+dependencies = [
+ "once_cell",
+ "toml_edit 0.19.15",
+]
+
+[[package]]
+name = "proc-macro-crate"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24"
+dependencies = [
+ "toml_datetime",
+ "toml_edit 0.20.2",
+]
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.82"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.36"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "rustix"
+version = "0.38.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
+dependencies = [
+ "bitflags",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys",
+]
+
+[[package]]
+name = "semver"
+version = "1.0.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
+
+[[package]]
+name = "serde"
+version = "1.0.201"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "780f1cebed1629e4753a1a38a3c72d30b97ec044f0aef68cb26650a3c5cf363c"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.201"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c5e405930b9796f1c00bee880d03fc7e0bb4b9a11afc776885ffe84320da2865"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.61",
+]
+
+[[package]]
+name = "serde_spanned"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "shell-words"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
+
+[[package]]
+name = "slab"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "system-deps"
+version = "6.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349"
+dependencies = [
+ "cfg-expr 0.15.8",
+ "heck 0.5.0",
+ "pkg-config",
+ "toml",
+ "version-compare",
+]
+
+[[package]]
+name = "system-deps"
+version = "7.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4be53aa0cba896d2dc615bd42bbc130acdcffa239e0a2d965ea5b3b2a86ffdb"
+dependencies = [
+ "cfg-expr 0.20.3",
+ "heck 0.5.0",
+ "pkg-config",
+ "toml",
+ "version-compare",
+]
+
+[[package]]
+name = "target-lexicon"
+version = "0.12.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
+
+[[package]]
+name = "target-lexicon"
+version = "0.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e502f78cdbb8ba4718f566c418c52bc729126ffd16baee5baa718cf25dd5a69a"
+
+[[package]]
+name = "tempfile"
+version = "3.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
+dependencies = [
+ "cfg-if",
+ "fastrand",
+ "rustix",
+ "windows-sys",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.60"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "579e9083ca58dd9dcf91a9923bb9054071b9ebbd800b342194c9feb0ee89fc18"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.60"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2470041c06ec3ac1ab38d0356a6119054dedaea53e12fbefc0de730a1c08524"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.61",
+]
+
+[[package]]
+name = "toml"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d"
+dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit 0.20.2",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.19.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
+dependencies = [
+ "indexmap",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.20.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338"
+dependencies = [
+ "indexmap",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "version-compare"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
+dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
+
+[[package]]
+name = "winnow"
+version = "0.5.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+dependencies = [
+ "memchr",
+]
diff --git a/libphosh-rs/Cargo.toml b/libphosh-rs/Cargo.toml
new file mode 100644
index 000000000..61a1fd6a5
--- /dev/null
+++ b/libphosh-rs/Cargo.toml
@@ -0,0 +1,7 @@
+[workspace]
+resolver = "2"
+members = [
+ "libphosh",
+ "libphosh/sys",
+]
+exclude = ["gir"]
diff --git a/libphosh-rs/GDesktopEnums-3.0.gir b/libphosh-rs/GDesktopEnums-3.0.gir
new file mode 100644
index 000000000..703f8d647
--- /dev/null
+++ b/libphosh-rs/GDesktopEnums-3.0.gir
@@ -0,0 +1,566 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/libphosh-rs/Gcr-3.gir b/libphosh-rs/Gcr-3.gir
new file mode 100644
index 000000000..acdbf0077
--- /dev/null
+++ b/libphosh-rs/Gcr-3.gir
@@ -0,0 +1,11047 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implement the GcrComparable interface. Use this macro like this:
+
+<informalexample><programlisting>
+G_DEFINE_TYPE_WITH_CODE (MyCertificate, my_certificate, G_TYPE_OBJECT,
+GCR_CERTIFICATE_MIXIN_IMPLEMENT_COMPARABLE ();
+G_IMPLEMENT_INTERFACE (GCR_TYPE_CERTIFICATE, my_certificate_iface_init);
+);
+</programlisting></informalexample>
+
+
+
+ Checks the version of the Gcr library that is being compiled
+against.
+
+```
+#if !GCR_CHECK_VERSION (3, 0, 0)
+#warning Old Gcr version, disabling functionality
+#endif
+```
+
+
+
+ the major version to check for
+
+
+ the minor version to check for
+
+
+ the micro version to check for
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An interface that represents an X.509 certificate.
+
+Objects can implement this interface to make a certificate usable with the
+GCR library.
+
+Various methods are available to parse out relevant bits of the certificate.
+However no verification of the validity of a certificate is done here. Use
+your favorite crypto library to do this.
+
+You can use [class@SimpleCertificate] to simply load a certificate for which
+you already have the raw certificate data.
+
+The #GcrCertificate interface has several properties that must be implemented.
+You can use a mixin to implement these properties if desired. See the
+gcr_certificate_mixin_class_init() and gcr_certificate_mixin_get_property()
+functions.
+
+All certificates are comparable. If implementing a #GcrCertificate, you can
+use GCR_CERTIFICATE_MIXIN_IMPLEMENT_COMPARABLE() to implement the #GcrComparable
+interface.
+
+
+
+ Compare one certificate against another. If the certificates are equal
+then zero is returned. If one certificate is %NULL or not a certificate,
+then a non-zero value is returned.
+
+The return value is useful in a stable sort, but has no user logical
+meaning.
+
+
+ zero if the certificates match, non-zero otherwise.
+
+
+
+
+ the certificate to compare
+
+
+
+ the certificate to compare against
+
+
+
+
+
+ Get the columns appropriate for a certificate
+
+
+ the columns
+
+
+
+
+ Initialize the certificate mixin for the class. This mixin implements the
+various required properties for the certificate.
+
+Call this function near the end of your derived class_init function. The
+derived class must implement the #GcrCertificate interface.
+
+
+
+
+
+
+ The GObjectClass for this class
+
+
+
+
+
+ Initialize a #GcrComparableIface to compare the current certificate.
+In general it's easier to use the GCR_CERTIFICATE_MIXIN_IMPLEMENT_COMPARABLE()
+macro instead of this function.
+
+
+
+
+
+
+ The interface
+
+
+
+
+
+ Implementation to get various required certificate properties. This should
+be called from your derived class get_property function, or used as a
+get_property virtual function.
+
+Example of use as called from derived class get_property function:
+
+<informalexample><programlisting>
+static void
+my_get_property (GObject *obj, guint prop_id, GValue *value, GParamSpec *pspec)
+{
+ switch (prop_id) {
+
+ ...
+
+ default:
+ gcr_certificate_mixin_get_property (obj, prop_id, value, pspec);
+ break;
+ }
+}
+</programlisting></informalexample>
+
+Example of use as get_property function:
+
+<informalexample><programlisting>
+static void
+my_class_init (MyClass *klass)
+{
+ GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+ gobject_class->get_property = gcr_certificate_mixin_get_property;
+
+ ...
+}
+</programlisting></informalexample>
+
+
+
+
+
+
+ The object
+
+
+
+ The property id
+
+
+
+ The value to fill in.
+
+
+
+ The param specification.
+
+
+
+
+
+ Gets the raw DER data for an X.509 certificate.
+
+
+ raw DER data of the X.509 certificate
+
+
+
+
+
+
+ a #GcrCertificate
+
+
+
+ a pointer to a location to store the size of the resulting DER data.
+
+
+
+
+
+ Get the basic constraints for the certificate if present. If %FALSE is
+returned then no basic constraints are present and the @is_ca and
+@path_len arguments are not changed.
+
+
+ whether basic constraints are present or not
+
+
+
+
+ the certificate
+
+
+
+ location to place a %TRUE if is an authority
+
+
+
+ location to place the max path length
+
+
+
+
+
+ Gets the raw DER data for an X.509 certificate.
+
+
+ raw DER data of the X.509 certificate
+
+
+
+
+
+
+ a #GcrCertificate
+
+
+
+ a pointer to a location to store the size of the resulting DER data.
+
+
+
+
+
+ Get the expiry date of this certificate.
+
+The #GDate returned should be freed by the caller using
+g_date_free() when no longer required.
+
+
+ An allocated expiry date of this certificate.
+
+
+
+
+ a #GcrCertificate
+
+
+
+
+
+ Calculate the fingerprint for this certificate.
+
+The caller should free the returned data using g_free() when
+it is no longer required.
+
+
+ the raw binary fingerprint
+
+
+
+
+
+
+ a #GcrCertificate
+
+
+
+ the type of algorithm for the fingerprint.
+
+
+
+ The length of the resulting fingerprint.
+
+
+
+
+
+ Calculate the fingerprint for this certificate, and return it
+as a hex string.
+
+The caller should free the returned data using g_free() when
+it is no longer required.
+
+
+ an allocated hex string which contains the fingerprint.
+
+
+
+
+ a #GcrCertificate
+
+
+
+ the type of algorithm for the fingerprint.
+
+
+
+
+
+ Get the icon for a certificate.
+
+
+ the icon for this certificate, which should be
+ released with g_object_unref()
+
+
+
+
+ The certificate
+
+
+
+
+
+ Get the issued date of this certificate.
+
+The #GDate returned should be freed by the caller using
+g_date_free() when no longer required.
+
+
+ An allocated issued date of this certificate.
+
+
+
+
+ a #GcrCertificate
+
+
+
+
+
+ Get the common name of the issuer of this certificate.
+
+The string returned should be freed by the caller when no longer
+required.
+
+
+ The allocated issuer CN, or %NULL if no issuer CN present.
+
+
+
+
+ a #GcrCertificate
+
+
+
+
+
+ Get the full issuer DN of the certificate as a (mostly)
+readable string.
+
+The string returned should be freed by the caller when no longer
+required.
+
+
+ The allocated issuer DN of the certificate.
+
+
+
+
+ a #GcrCertificate
+
+
+
+
+
+ Get a name to represent the issuer of this certificate.
+
+This will try to lookup the common name, orianizational unit,
+organization in that order.
+
+
+ the allocated issuer name, or %NULL if no issuer name
+
+
+
+
+ a #GcrCertificate
+
+
+
+
+
+ Get a part of the DN of the issuer of this certificate.
+
+Examples of a @part might be the 'OU' (organizational unit)
+or the 'CN' (common name). Only the value of that part
+of the DN is returned.
+
+The string returned should be freed by the caller when no longer
+required.
+
+
+ the allocated part of the issuer DN, or %NULL if no
+ such part is present
+
+
+
+
+ a #GcrCertificate
+
+
+
+ a DN type string or OID.
+
+
+
+
+
+ Get the raw DER data for the issuer DN of the certificate.
+
+The data should be freed by using g_free() when no longer required.
+
+
+ allocated memory containing
+ the raw issuer
+
+
+
+
+
+
+ a #GcrCertificate
+
+
+
+ The length of the returned data.
+
+
+
+
+
+ Get the key size in bits of the public key represented
+by this certificate.
+
+
+ The key size of the certificate.
+
+
+
+
+ a #GcrCertificate
+
+
+
+
+
+ Calculate a GMarkup string for displaying this certificate.
+
+
+ the markup string
+
+
+
+
+ a certificate
+
+
+
+
+
+ Get the raw binary serial number of the certificate.
+
+The caller should free the returned data using g_free() when
+it is no longer required.
+
+
+ the raw binary serial number.
+
+
+
+
+
+
+ a #GcrCertificate
+
+
+
+ the length of the returned data.
+
+
+
+
+
+ Get the serial number of the certificate as a hex string.
+
+The caller should free the returned data using g_free() when
+it is no longer required.
+
+
+ an allocated string containing the serial number as hex.
+
+
+
+
+ a #GcrCertificate
+
+
+
+
+
+ Get the common name of the subject of this certificate.
+
+The string returned should be freed by the caller when no longer
+required.
+
+
+ The allocated subject CN, or %NULL if no subject CN present.
+
+
+
+
+ a #GcrCertificate
+
+
+
+
+
+ Get the full subject DN of the certificate as a (mostly)
+readable string.
+
+The string returned should be freed by the caller when no longer
+required.
+
+
+ The allocated subject DN of the certificate.
+
+
+
+
+ a #GcrCertificate
+
+
+
+
+
+ Get a name to represent the subject of this certificate.
+
+This will try to lookup the common name, orianizational unit,
+organization in that order.
+
+
+ the allocated subject name, or %NULL if no subject name
+
+
+
+
+ a #GcrCertificate
+
+
+
+
+
+ Get a part of the DN of the subject of this certificate.
+
+Examples of a @part might be the 'OU' (organizational unit)
+or the 'CN' (common name). Only the value of that part
+of the DN is returned.
+
+The string returned should be freed by the caller when no longer
+required.
+
+
+ the allocated part of the subject DN, or %NULL if no
+ such part is present.
+
+
+
+
+ a #GcrCertificate
+
+
+
+ a DN type string or OID.
+
+
+
+
+
+ Get the raw DER data for the subject DN of the certificate.
+
+The data should be freed by using g_free() when no longer required.
+
+
+ allocated memory containing
+ the raw subject
+
+
+
+
+
+
+ a #GcrCertificate
+
+
+
+ The length of the returned data.
+
+
+
+
+
+ Check if @issuer could be the issuer of this certificate. This is done by
+comparing the relevant subject and issuer fields. No signature check is
+done. Proper verification of certificates must be done via a crypto
+library.
+
+
+ whether @issuer could be the issuer of the certificate.
+
+
+
+
+ a #GcrCertificate
+
+
+
+ a possible issuer #GcrCertificate
+
+
+
+
+
+ Implementers of the #GcrCertificate mixin should call this function to notify
+when the certificate has changed to emit notifications on the various
+properties.
+
+
+
+
+
+
+ the #GcrCertificate
+
+
+
+
+
+ A readable description for this certificate
+
+
+
+ The expiry date of the certificate
+
+
+
+ An icon representing the certificate
+
+
+
+ Common name part of the certificate issuer
+
+
+
+ A readable label for this certificate.
+
+
+
+ GLib markup to describe the certificate
+
+
+
+ Common name part of the certificate subject
+
+
+
+
+ Represents a chain of certificates, normally used to
+validate the trust in a certificate. An X.509 certificate chain has one
+endpoint certificate (the one for which trust is being verified) and then
+in turn the certificate that issued each previous certificate in the chain.
+
+This functionality is for building of certificate chains not for validating
+them. Use your favorite crypto library to validate trust in a certificate
+chain once its built.
+
+The order of certificates in the chain should be first the endpoint
+certificates and then the signing certificates.
+
+Create a new certificate chain with [ctor@CertificateChain.new] and then
+add the certificates with [method@CertificateChain.add].
+
+You can then use [method@CertificateChain.build] to build the remainder of
+the chain. This will lookup missing certificates in PKCS#11 modules and
+also check that each certificate in the chain is the signer of the previous
+one. If a trust anchor, pinned certificate, or self-signed certificate is
+found, then the chain is considered built. Any extra certificates are
+removed from the chain.
+
+Once the certificate chain has been built, you can access its status
+through [method@CertificateChain.get_status]. The status signifies whether
+the chain is anchored on a trust root, self-signed, incomplete etc. See
+[enum@CertificateChainStatus] for information on the various statuses.
+
+It's important to understand that the building of a certificate chain is
+merely the first step towards verifying trust in a certificate.
+
+
+ Create a new #GcrCertificateChain.
+
+
+ a newly allocated certificate chain
+
+
+
+
+ Add @certificate to the chain. The order of certificates in the chain are
+important. The first certificate should be the endpoint certificate, and
+then come the signers (certificate authorities) each in turn. If a root
+certificate authority is present, it should come last.
+
+Adding a certificate an already built chain (see
+gcr_certificate_chain_build()) resets the type of the certificate chain
+to %GCR_CERTIFICATE_CHAIN_UNKNOWN
+
+
+
+
+
+
+ the #GcrCertificateChain
+
+
+
+ a #GcrCertificate to add to the chain
+
+
+
+
+
+ Complete a certificate chain. Once a certificate chain has been built
+its status can be examined.
+
+This operation will lookup missing certificates in PKCS#11
+modules and also that each certificate in the chain is the signer of the
+previous one. If a trust anchor, pinned certificate, or self-signed certificate
+is found, then the chain is considered built. Any extra certificates are
+removed from the chain.
+
+It's important to understand that building of a certificate chain does not
+constitute verifying that chain. This is merely the first step towards
+trust verification.
+
+The @purpose is a string like %GCR_PURPOSE_CLIENT_AUTH and is the purpose
+for which the certificate chain will be used. Trust anchors are looked up
+for this purpose. This argument is required.
+
+The @peer is usually the host name of the peer whith which this certificate
+chain is being used. It is used to look up pinned certificates that have
+been stored for this peer. If %NULL then no pinned certificates will
+be considered.
+
+If the %GCR_CERTIFICATE_CHAIN_NO_LOOKUPS flag is specified then no
+lookups for anchors or pinned certificates are done, and the resulting chain
+will be neither anchored or pinned. Additionally no missing certificate
+authorities are looked up in PKCS#11
+
+This call will block, see gcr_certificate_chain_build_async() for the
+asynchronous version.
+
+
+ whether the operation completed successfully
+
+
+
+
+ the #GcrCertificateChain
+
+
+
+ the purpose the certificate chain will be used for
+
+
+
+ the peer the certificate chain will be used with, or %NULL
+
+
+
+ chain completion flags
+
+
+
+ a #GCancellable or %NULL
+
+
+
+
+
+ Complete a certificate chain. Once a certificate chain has been built
+its status can be examined.
+
+This will lookup missing certificates in PKCS#11
+modules and also that each certificate in the chain is the signer of the
+previous one. If a trust anchor, pinned certificate, or self-signed certificate
+is found, then the chain is considered built. Any extra certificates are
+removed from the chain.
+
+It's important to understand that building of a certificate chain does not
+constitute verifying that chain. This is merely the first step towards
+trust verification.
+
+The @purpose is a string like %GCR_PURPOSE_CLIENT_AUTH and is the purpose
+for which the certificate chain will be used. Trust anchors are looked up
+for this purpose. This argument is required.
+
+The @peer is usually the host name of the peer whith which this certificate
+chain is being used. It is used to look up pinned certificates that have
+been stored for this peer. If %NULL then no pinned certificates will
+be considered.
+
+If the %GCR_CERTIFICATE_CHAIN_NO_LOOKUPS flag is specified then no
+lookups for anchors or pinned certificates are done, and the resulting chain
+will be neither anchored or pinned. Additionally no missing certificate
+authorities are looked up in PKCS#11
+
+When the operation is finished, @callback will be called. You can then call
+gcr_certificate_chain_build_finish() to get the result of the operation.
+
+
+
+
+
+
+ the #GcrCertificateChain
+
+
+
+ the purpose the certificate chain will be used for
+
+
+
+ the peer the certificate chain will be used with, or %NULL
+
+
+
+ chain completion flags
+
+
+
+ a #GCancellable or %NULL
+
+
+
+ this will be called when the operation completes.
+
+
+
+ data to pass to the callback
+
+
+
+
+
+ Finishes an asynchronous operation started by
+gcr_certificate_chain_build_async().
+
+
+ whether the operation succeeded
+
+
+
+
+ the #GcrCertificateChain
+
+
+
+ the #GAsyncResult passed to the callback
+
+
+
+
+
+ If the certificate chain has been built and is of status
+%GCR_CERTIFICATE_CHAIN_ANCHORED, then this will return the anchor
+certificate that was found. This is not necessarily a root certificate
+authority. If an intermediate certificate authority in the chain was
+found to be anchored, then that certificate will be returned.
+
+If an anchor is returned it does not mean that the certificate chain has
+been verified, but merely that an anchor has been found.
+
+
+ the anchor certificate, or %NULL if not anchored.
+
+
+
+
+ the #GcrCertificateChain
+
+
+
+
+
+ Get a certificate in the chain. It is an error to call this function
+with an invalid index.
+
+
+ the certificate
+
+
+
+
+ the #GcrCertificateChain
+
+
+
+ index of the certificate to get
+
+
+
+
+
+ Get the endpoint certificate in the chain. This is always the first
+certificate in the chain. The endpoint certificate cannot be anchored.
+
+
+ the endpoint certificate, or %NULL if the chain
+ is empty
+
+
+
+
+ the #GcrCertificateChain
+
+
+
+
+
+ Get the length of the certificate chain.
+
+
+ the length of the certificate chain
+
+
+
+
+ the #GcrCertificateChain
+
+
+
+
+
+ Get the status of a certificate chain. If the certificate chain has not
+been built, then the status will be %GCR_CERTIFICATE_CHAIN_UNKNOWN.
+
+A status of %GCR_CERTIFICATE_CHAIN_ANCHORED does not mean that the
+certificate chain has been verified, but merely that an anchor has been
+found.
+
+
+ the status of the certificate chain.
+
+
+
+
+ the #GcrCertificateChain
+
+
+
+
+
+ The length of the certificate chain.
+
+
+
+ The certificate chain status. See #GcrCertificateChainStatus
+
+
+
+
+
+
+
+
+
+
+ The class for #GcrCertificateChain.
+
+
+ The parent class
+
+
+
+
+ Flags to be used with the gcr_certificate_chain_build() operation.
+
+
+ no flags
+
+
+ If this flag is specified then no
+lookups for anchors or pinned certificates are done, and the resulting chain
+will be neither anchored or pinned. Additionally no missing certificate
+authorities are looked up in PKCS#11.
+
+
+
+
+
+
+ The status of a built certificate chain. Will be set to
+%GCR_CERTIFICATE_CHAIN_UNKNOWN for certificate chains that have not been
+built.
+
+
+ The certificate chain's status is unknown.
+When a chain is not yet built it has this status. If a chain is modified after
+being built, it has this status.
+
+
+ A full chain could not be loaded. The
+chain does not end with a self-signed certificate, a trusted anchor, or a
+pinned certificate.
+
+
+ The certificate chain contains a revoked
+or otherwise explicitly distrusted certificate. The entire chain should
+be distrusted.
+
+
+ The chain ends with a self-signed
+certificate. No trust anchor was found.
+
+
+ The chain represents a pinned certificate. A
+pinned certificate is an exception which trusts a given certificate
+explicitly for a purpose and communication with a certain peer.
+
+
+ The chain ends with an anchored
+certificate. The anchored certificate is not necessarily self-signed.
+
+
+
+ The interface that implementors of #GcrCertificate must implement.
+
+
+ the parent interface type
+
+
+
+
+
+
+ raw DER data of the X.509 certificate
+
+
+
+
+
+
+ a #GcrCertificate
+
+
+
+ a pointer to a location to store the size of the resulting DER data.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An object that allows creation of certificate requests. A certificate
+request is sent to a certificate authority to request an X.509 certificate.
+
+Use [func@CertificateRequest.prepare] to create a blank certificate
+request for a given private key. Set the common name on the certificate
+request with [method@CertificateRequest.set_cn], and then sign the request
+with [method@CertificateRequest.complete_async].
+
+
+ Check whether [class@CertificateRequest] is capable of creating a request
+for the given @private_key.
+
+
+ whether a request can be created
+
+
+
+
+ a private key
+
+
+
+ cancellation object
+
+
+
+
+
+ Asynchronously check whether [class@CertificateRequest] is capable of
+creating a request for the given @private_key.
+
+
+
+
+
+
+ a private key
+
+
+
+ cancellation object
+
+
+
+ will be called when the operation completes
+
+
+
+ data to be passed to callback
+
+
+
+
+
+ Get the result for asynchronously check whether [class@CertificateRequest] is
+capable of creating a request for the given @private_key.
+
+
+ whether a request can be created
+
+
+
+
+ asynchronous result
+
+
+
+
+
+ Create a new certificate request, in the given format for the private key.
+
+
+ a new #GcrCertificate request
+
+
+
+
+ the format for the certificate request
+
+
+
+ the private key the the certificate is being requested for
+
+
+
+
+
+ Complete and sign a certificate request, so that it can be encoded
+and sent to a certificate authority.
+
+This call may block as it signs the request using the private key.
+
+
+ whether certificate request was successfully completed or not
+
+
+
+
+ a certificate request
+
+
+
+ a cancellation object
+
+
+
+
+
+ Asynchronously complete and sign a certificate request, so that it can
+be encoded and sent to a certificate authority.
+
+This call will return immediately and complete later.
+
+
+
+
+
+
+ a certificate request
+
+
+
+ a cancellation object
+
+
+
+ called when the operation completes
+
+
+
+ data to pass to the callback
+
+
+
+
+
+ Finish an asynchronous operation to complete and sign a certificate
+request.
+
+
+ whether certificate request was successfully completed or not
+
+
+
+
+ a certificate request
+
+
+
+ result of the asynchronous operation
+
+
+
+
+
+ Encode the certificate request. It must have been completed with
+[method@CertificateRequest.complete] or
+[method@CertificateRequest.complete_async].
+
+If @textual is %FALSE, the output is a DER encoded certificate request.
+
+If @textual is %TRUE, the output is encoded as text. For PKCS#10 requests
+this is done using the OpenSSL style PEM encoding.
+
+
+ the encoded certificate request
+
+
+
+
+
+
+ a certificate request
+
+
+
+ whether to encode output as text
+
+
+
+ location to place length of returned data
+
+
+
+
+
+ Get the format of this certificate request.
+
+
+ the format
+
+
+
+
+ the certificate request
+
+
+
+
+
+ Get the private key this certificate request is for.
+
+
+ the private key,
+
+
+
+
+ the certificate request
+
+
+
+
+
+ Set the common name encoded in the certificate request.
+
+
+
+
+
+
+ the certificate request
+
+
+
+ common name to set on the request
+
+
+
+
+
+ The format of the certificate request.
+
+
+
+ The private key that this certificate request is for.
+
+
+
+
+
+
+
+
+
+
+ The format of a certificate request. Currently only PKCS#10 is supported.
+
+
+ certificate request is in PKCS#10 format
+
+
+
+ A #GcrCollection is used to group a set of objects.
+
+This is an abstract interface which can be used to determine which objects
+show up in a selector or other user interface element.
+
+Use [ctor@SimpleCollection.new] to create a concrete implementation of this
+interface which you can add objects to.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Check whether the collection contains an object or not.
+
+
+ whether the collection contains this object
+
+
+
+
+ the collection
+
+
+
+ object to check
+
+
+
+
+
+ Get the number of objects in this collection.
+
+
+ The number of objects.
+
+
+
+
+ The collection
+
+
+
+
+
+ Get a list of the objects in this collection.
+
+
+ a list of the objects
+ in this collection, which should be freed with g_list_free()
+
+
+
+
+
+
+ The collection
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Check whether the collection contains an object or not.
+
+
+ whether the collection contains this object
+
+
+
+
+ the collection
+
+
+
+ object to check
+
+
+
+
+
+ Emit the #GcrCollection::added signal for the given object. This function
+is used by implementors of this interface.
+
+
+
+
+
+
+ The collection
+
+
+
+ The object that was added
+
+
+
+
+
+ Emit the #GcrCollection::removed signal for the given object. This function
+is used by implementors of this interface.
+
+
+
+
+
+
+ The collection
+
+
+
+ The object that was removed
+
+
+
+
+
+ Get the number of objects in this collection.
+
+
+ The number of objects.
+
+
+
+
+ The collection
+
+
+
+
+
+ Get a list of the objects in this collection.
+
+
+ a list of the objects
+ in this collection, which should be freed with g_list_free()
+
+
+
+
+
+
+ The collection
+
+
+
+
+
+ This signal is emitted when an object is added to the collection.
+
+
+
+
+
+ object that was added
+
+
+
+
+
+ This signal is emitted when an object is removed from the collection.
+
+
+
+
+
+ object that was removed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The number of objects.
+
+
+
+
+ The collection
+
+
+
+
+
+
+
+
+
+ a list of the objects
+ in this collection, which should be freed with g_list_free()
+
+
+
+
+
+
+ The collection
+
+
+
+
+
+
+
+
+
+ whether the collection contains this object
+
+
+
+
+ the collection
+
+
+
+ object to check
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An interface for comparing objects
+
+
+ Compare two blocks of memory. The return value can be used to sort
+the blocks of memory.
+
+
+ Zero if the blocks are identical, negative if first
+ less than secend, possitive otherwise.
+
+
+
+
+ First block of memory
+
+
+
+
+
+ Length of first block
+
+
+
+ Second block of memory
+
+
+
+
+
+ Length of second block
+
+
+
+
+
+ Compare whether two objects represent the same thing. The return value can
+also be used to sort the objects.
+
+
+ Zero if the two objects represent the same thing, non-zero if not.
+
+
+
+
+ The comparable object
+
+
+
+ Another comparable object
+
+
+
+
+
+ Compare whether two objects represent the same thing. The return value can
+also be used to sort the objects.
+
+
+ Zero if the two objects represent the same thing, non-zero if not.
+
+
+
+
+ The comparable object
+
+
+
+ Another comparable object
+
+
+
+
+
+
+ The interface to implement for [iface@Comparable]
+
+
+ type interface
+
+
+
+
+
+
+ Zero if the two objects represent the same thing, non-zero if not.
+
+
+
+
+ The comparable object
+
+
+
+ Another comparable object
+
+
+
+
+
+
+
+ Values responding to error codes for parsing and serializing data.
+
+
+ Failed to parse or serialize the data
+
+
+ The data was unrecognized or unsupported
+
+
+ The operation was cancelled
+
+
+ The data was encrypted or locked and could not be unlocked.
+
+
+
+ The various format identifiers.
+
+
+ Represents all the formats, when enabling or disabling
+
+
+ Not a valid format
+
+
+ DER encoded private key
+
+
+ DER encoded RSA private key
+
+
+ DER encoded DSA private key
+
+
+ DER encoded EC private key
+
+
+ DER encoded SubjectPublicKeyInfo
+
+
+ DER encoded X.509 certificate
+
+
+ DER encoded PKCS#7 container file which can contain certificates
+
+
+ DER encoded PKCS#8 file which can contain a key
+
+
+ Unencrypted DER encoded PKCS#8 file which can contain a key
+
+
+ Encrypted DER encoded PKCS#8 file which can contain a key
+
+
+ DER encoded PKCS#10 certificate request file
+
+
+ DER encoded SPKAC as generated by HTML5 keygen element
+
+
+ OpenSSL style SPKAC data
+
+
+ DER encoded PKCS#12 file which can contain certificates and/or keys
+
+
+ OpenSSH v1 or v2 public key
+
+
+ OpenPGP key packet(s)
+
+
+ OpenPGP public or private key armor encoded data
+
+
+ An OpenSSL style PEM file with unspecified contents
+
+
+ An OpenSSL style PEM file with a private RSA key
+
+
+ An OpenSSL style PEM file with a private DSA key
+
+
+ An OpenSSL style PEM file with an X.509 certificate
+
+
+ An OpenSSL style PEM file containing PKCS#7
+
+
+ Unencrypted OpenSSL style PEM file containing PKCS#8
+
+
+ Encrypted OpenSSL style PEM file containing PKCS#8
+
+
+ An OpenSSL style PEM file containing PKCS#12
+
+
+ An OpenSSL style PEM file with a private key
+
+
+ An OpenSSL style PEM file containing PKCS#10
+
+
+ An OpenSSL style PEM file with a private EC key
+
+
+ An OpenSSL style PEM file containing a SubjectPublicKeyInfo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A collection which filters a [iface@Collection].
+
+An implementation of [iface@Collection] which filters objects from another
+underlying collection. Use [ctor@FilterCollection.new_with_callback]
+to create a new filter collection.
+
+The callback will determine the criteria for whether an object shows through
+the filter or not.
+
+
+
+ Create a new #GcrFilterCollection.
+
+The callback should return %TRUE if an object should appear in the
+filtered collection.
+
+If a %NULL callback is set, then all underlynig objects will appear in the
+filtered collection.
+
+
+ a newly allocated
+ filtered collection, which should be freed with g_object_unref()
+
+
+
+
+ the underlying collection
+
+
+
+ function to call for each object
+
+
+
+ data to pass to the callback
+
+
+
+ called for user_data when it is no longer needed
+
+
+
+
+
+ Get the collection that is being filtered by this filter collection.
+
+
+ the underlying collection
+
+
+
+
+ a filter collection
+
+
+
+
+
+ Refilter all objects in the underlying collection. Call this function if
+the filter callback function changes its filtering criteria.
+
+
+
+
+
+
+ a filter collection
+
+
+
+
+
+ Set the callback used to filter the objects in the underlying collection.
+The callback should return %TRUE if an object should appear in the
+filtered collection.
+
+If a %NULL callback is set, then all underlynig objects will appear in the
+filtered collection.
+
+This will refilter the collection.
+
+
+
+
+
+
+ a filter collection
+
+
+
+ function to call for each object
+
+
+
+ data to pass to the callback
+
+
+
+ called for user_data when it is no longer needed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The class struct for [class@FilterCollection].
+
+
+ the parent class
+
+
+
+
+ A function which is called by [class@FilterCollection] in order to determine
+whether an object should show through the filter or not.
+
+
+ %TRUE if an object should be included in the filtered collection
+
+
+
+
+ object to filter
+
+
+
+ user data passed to the callback
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This is an interface implemented by a caller performing an import. It allows
+the importer to ask the caller for further information about the import.
+
+It must be implemented on a derived class of [class@Gio.TlsInteraction]
+
+
+
+ Supplement attributes before import. This means prompting the user for
+things like labels and the like. The needed attributes will have been passed
+to gcr_import_interaction_supplement_prep().
+
+This method prompts the user and fills in the attributes. If the user or
+cancellable cancels the operation the error should be set with %G_IO_ERROR_CANCELLED.
+
+
+ %G_TLS_INTERACTION_HANDLED if successful or %G_TLS_INTERACTION_FAILED
+
+
+
+
+ the interaction
+
+
+
+ supplemented attributes
+
+
+
+ optional cancellable object
+
+
+
+
+
+ Asynchronously supplement attributes before import. This means prompting the
+user for things like labels and the like. The needed attributes will have
+been passed to gcr_import_interaction_supplement_prep().
+
+This method prompts the user and fills in the attributes.
+
+
+
+
+
+
+ the interaction
+
+
+
+ supplemented attributes
+
+
+
+ optional cancellable object
+
+
+
+ called when the operation completes
+
+
+
+ data to be passed to the callback
+
+
+
+
+
+ Complete operation to asynchronously supplement attributes before import.
+
+If the user or cancellable cancels the operation the error should be set
+with %G_IO_ERROR_CANCELLED.
+
+
+ %G_TLS_INTERACTION_HANDLED if successful or %G_TLS_INTERACTION_FAILED
+
+
+
+
+ the interaction
+
+
+
+ the asynchronous result
+
+
+
+
+
+ Prepare for supplementing the given attributes before import. This means
+prompting the user for things like labels and the like. The attributes
+will contain attributes for values that the importer needs, either empty
+or prefilled with suggested values.
+
+This method does not prompt the user, but rather just prepares the
+interaction that these are the attributes that are needed.
+
+
+
+
+
+
+ the interaction
+
+
+
+ attributes to supplement
+
+
+
+
+
+ Supplement attributes before import. This means prompting the user for
+things like labels and the like. The needed attributes will have been passed
+to gcr_import_interaction_supplement_prep().
+
+This method prompts the user and fills in the attributes. If the user or
+cancellable cancels the operation the error should be set with %G_IO_ERROR_CANCELLED.
+
+
+ %G_TLS_INTERACTION_HANDLED if successful or %G_TLS_INTERACTION_FAILED
+
+
+
+
+ the interaction
+
+
+
+ supplemented attributes
+
+
+
+ optional cancellable object
+
+
+
+
+
+ Asynchronously supplement attributes before import. This means prompting the
+user for things like labels and the like. The needed attributes will have
+been passed to gcr_import_interaction_supplement_prep().
+
+This method prompts the user and fills in the attributes.
+
+
+
+
+
+
+ the interaction
+
+
+
+ supplemented attributes
+
+
+
+ optional cancellable object
+
+
+
+ called when the operation completes
+
+
+
+ data to be passed to the callback
+
+
+
+
+
+ Complete operation to asynchronously supplement attributes before import.
+
+If the user or cancellable cancels the operation the error should be set
+with %G_IO_ERROR_CANCELLED.
+
+
+ %G_TLS_INTERACTION_HANDLED if successful or %G_TLS_INTERACTION_FAILED
+
+
+
+
+ the interaction
+
+
+
+ the asynchronous result
+
+
+
+
+
+ Prepare for supplementing the given attributes before import. This means
+prompting the user for things like labels and the like. The attributes
+will contain attributes for values that the importer needs, either empty
+or prefilled with suggested values.
+
+This method does not prompt the user, but rather just prepares the
+interaction that these are the attributes that are needed.
+
+
+
+
+
+
+ the interaction
+
+
+
+ attributes to supplement
+
+
+
+
+
+
+ Interface implemented by implementations of [iface@ImportInteraction].
+
+
+ parent interface
+
+
+
+
+
+
+
+
+
+
+ the interaction
+
+
+
+ attributes to supplement
+
+
+
+
+
+
+
+
+
+ %G_TLS_INTERACTION_HANDLED if successful or %G_TLS_INTERACTION_FAILED
+
+
+
+
+ the interaction
+
+
+
+ supplemented attributes
+
+
+
+ optional cancellable object
+
+
+
+
+
+
+
+
+
+
+
+
+
+ the interaction
+
+
+
+ supplemented attributes
+
+
+
+ optional cancellable object
+
+
+
+ called when the operation completes
+
+
+
+ data to be passed to the callback
+
+
+
+
+
+
+
+
+
+ %G_TLS_INTERACTION_HANDLED if successful or %G_TLS_INTERACTION_FAILED
+
+
+
+
+ the interaction
+
+
+
+ the asynchronous result
+
+
+
+
+
+
+
+
+
+
+
+
+ An interface which allows importing of certificates and keys. Each importer
+is registered with a set of PKCS#11 attributes to match stuff that it can
+import.
+
+An importer gets passed a [class@Parser] and accesses the currently parsed
+item. To create a set of importers that can import the currently parsed
+item in a parser, use [func@Importer.create_for_parsed]. The list of
+importers returned has the parsed item queued for import.
+
+To queue additional items with a importer use
+[method@Importer.queue_for_parsed]. In addition you can try and queue an
+additional item with a set of importers using the
+[func@Importer.queue_and_filter_for_parsed].
+
+To start the import, use [method@Importer.import] or its async variants.
+
+
+ Create a set of importers which can import this parsed item.
+The parsed item is represented by the state of the GcrParser at the
+time of calling this method.
+
+
+ a list of importers
+ which can import the parsed item, which should be freed with
+ g_object_unref(), or %NULL if no types of importers can be created
+
+
+
+
+
+
+ a parser with a parsed item to import
+
+
+
+
+
+ Queues an additional item to be imported in all compattible importers
+in the set. The parsed item is represented by the state of the #GcrParser
+at the time of calling this method.
+
+If the parsed item is incompatible with an importer, then that the item
+will not be queued on that importer.
+
+
+ a new set of importers
+ that queued the item, which should be freed with gck_list_unref_free()
+
+
+
+
+
+
+ a set of importers
+
+
+
+
+
+ a parsed item
+
+
+
+
+
+ Register an importer to handle parsed items that match the given attributes.
+
+If @attrs are a floating reference, then it is consumed.
+
+
+
+
+
+
+ the GType of the importer being registered
+
+
+
+ the attributes that this importer is compatible with
+
+
+
+
+
+ Register built-in PKCS#11 and GnuPG importers.
+
+
+
+
+
+
+ Import the queued items in the importer. This function returns immediately
+and completes asynchronously.
+
+
+
+
+
+
+ the importer
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ called when the operation completes
+
+
+
+ data to be passed to the callback
+
+
+
+
+
+ Complete an asynchronous operation to import queued items.
+
+
+ whether the import succeeded or failed
+
+
+
+
+ the importer
+
+
+
+ an asynchronous result
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Queues an additional item to be imported. The parsed item is represented
+by the state of the [class@Parser] at the time of calling this method.
+
+If the parsed item is incompatible with the importer, then this will
+fail and the item will not be queued.
+
+
+ whether the item was queued or not
+
+
+
+
+ an importer to add additional items to
+
+
+
+ a parsed item to import
+
+
+
+
+
+ Get the interaction used to prompt the user when needed by this
+importer.
+
+
+ the interaction or %NULL
+
+
+
+
+ the importer
+
+
+
+
+
+ Import the queued items in the importer. This call will block
+until the operation completes.
+
+
+ whether the items were imported successfully or not
+
+
+
+
+ the importer
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+
+
+ Import the queued items in the importer. This function returns immediately
+and completes asynchronously.
+
+
+
+
+
+
+ the importer
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ called when the operation completes
+
+
+
+ data to be passed to the callback
+
+
+
+
+
+ Complete an asynchronous operation to import queued items.
+
+
+ whether the import succeeded or failed
+
+
+
+
+ the importer
+
+
+
+ an asynchronous result
+
+
+
+
+
+ Queues an additional item to be imported. The parsed item is represented
+by the state of the [class@Parser] at the time of calling this method.
+
+If the parsed item is incompatible with the importer, then this will
+fail and the item will not be queued.
+
+
+ whether the item was queued or not
+
+
+
+
+ an importer to add additional items to
+
+
+
+ a parsed item to import
+
+
+
+
+
+ Set the interaction used to prompt the user when needed by this
+importer.
+
+
+
+
+
+
+ the importer
+
+
+
+ the interaction used by the importer
+
+
+
+
+
+ The icon for the importer.
+
+
+
+ The interaction for the importer.
+
+
+
+ The label for the importer.
+
+
+
+ The URI of the location imported to.
+
+
+
+
+ Interface implemented for a #GcrImporter.
+
+
+ parent interface
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ whether the item was queued or not
+
+
+
+
+ an importer to add additional items to
+
+
+
+ a parsed item to import
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ the importer
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ called when the operation completes
+
+
+
+ data to be passed to the callback
+
+
+
+
+
+
+
+
+
+ whether the import succeeded or failed
+
+
+
+
+ the importer
+
+
+
+ an asynchronous result
+
+
+
+
+
+
+
+
+
+
+
+
+ The major version number of the Gcr library.
+
+
+
+
+ The micro version number of the Gcr library.
+
+
+
+
+ The minor version number of the Gcr library.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The purpose used to verify the client certificate in a TLS connection.
+
+
+
+
+ The purpose used to verify certificate used for the signature on signed code.
+
+
+
+
+ The purpose used to verify certificates that are used in email communication
+such as S/MIME.
+
+
+
+
+ The purpose used to verify the server certificate in a TLS connection. This
+is the most common purpose in use.
+
+
+
+
+ A parsed item parsed by a #GcrParser.
+
+
+ Get the attributes which make up the parsed item.
+
+
+ the attributes for the item; these
+ are owned by the parsed item and should not be freed
+
+
+
+
+ a parsed item
+
+
+
+
+
+ Get the raw data block for the parsed item.
+
+
+ the raw data of the parsed item, or %NULL
+
+
+
+
+ a parsed item
+
+
+
+
+
+ Get the raw data block for the parsed item.
+
+
+ the raw data of
+ the parsed item, or %NULL
+
+
+
+
+
+
+ a parsed item
+
+
+
+ location to store size of returned data
+
+
+
+
+
+ Get the descirption for a parsed item.
+
+
+ the description
+
+
+
+
+ a parsed item
+
+
+
+
+
+ Get the filename of the parsed item.
+
+
+ the filename of
+ the parsed item, or %NULL
+
+
+
+
+ a parsed item
+
+
+
+
+
+ Get the format of the parsed item.
+
+
+ the data format of the item
+
+
+
+
+ a parsed item
+
+
+
+
+
+ Get the label for the parsed item.
+
+
+ the label for the item
+
+
+
+
+ a parsed item
+
+
+
+
+
+ Add a reference to a parsed item. An item may not be shared across threads
+until it has been referenced at least once.
+
+
+ the parsed item
+
+
+
+
+ a parsed item
+
+
+
+
+
+ Unreferences a parsed item which was referenced with gcr_parsed_ref()
+
+
+
+
+
+
+ a parsed item
+
+
+
+
+
+
+ A parser for parsing various types of files or data.
+
+A `GcrParser` can parse various certificate and key files such as OpenSSL
+PEM files, DER encoded certifictes, PKCS#8 keys and so on. Each various
+format is identified by a value in the [enum@DataFormat] enumeration.
+
+In order to parse data, a new parser is created with gcr_parser_new() and
+then the [signal@Parser::authenticate] and [signal@Parser::parsed] signals
+should be connected to. Data is then fed to the parser via
+[method@Parser.parse_data] or [method@Parser.parse_stream].
+
+During the [signal@Parser::parsed] signal the attributes that make up the
+currently parsed item can be retrieved using the
+[method@Parser.get_parsed_attributes] function.
+
+
+ Create a new #GcrParser
+
+
+ a newly allocated #GcrParser
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Add a password to the set of passwords to try when parsing locked or encrypted
+items. This is usually called from the #GcrParser::authenticate signal.
+
+
+
+
+
+
+ The parser
+
+
+
+ a password to try
+
+
+
+
+
+ Disable parsing of the given format. Use %GCR_FORMAT_ALL to disable all the formats.
+
+
+
+
+
+
+ The parser
+
+
+
+ The format identifier
+
+
+
+
+
+ Enable parsing of the given format. Use %GCR_FORMAT_ALL to enable all the formats.
+
+
+
+
+
+
+ The parser
+
+
+
+ The format identifier
+
+
+
+
+
+ Check whether the given format is supported by the parser.
+
+
+ Whether the format is supported.
+
+
+
+
+ The parser
+
+
+
+ The format identifier
+
+
+
+
+
+ Get the filename of the parser item.
+
+
+ the filename set on the parser, or %NULL
+
+
+
+
+ a parser item
+
+
+
+
+
+ Get the currently parsed item
+
+
+ the currently parsed item
+
+
+
+
+ a parser
+
+
+
+
+
+ Get the attributes which make up the currently parsed item. This is generally
+only valid during the #GcrParser::parsed signal.
+
+
+ the attributes for the current item,
+ which are owned by the parser and should not be freed
+
+
+
+
+ The parser
+
+
+
+
+
+ Get the raw data block that represents this parsed object. This is only
+valid during the #GcrParser::parsed signal.
+
+
+ the raw data
+ block of the currently parsed item; the value is owned by the parser
+ and should not be freed
+
+
+
+
+
+
+ a parser
+
+
+
+ a location to place the size of the block
+
+
+
+
+
+ Get the raw data block that represents this parsed object. This is only
+valid during the #GcrParser::parsed signal.
+
+
+ the raw data block of the currently parsed item
+
+
+
+
+ a parser
+
+
+
+
+
+ Get a description for the type of the currently parsed item. This is generally
+only valid during the #GcrParser::parsed signal.
+
+
+ the description for the current item; this is owned by
+ the parser and should not be freed
+
+
+
+
+ The parser
+
+
+
+
+
+ Get the format of the raw data block that represents this parsed object.
+This corresponds with the data returned from gcr_parser_get_parsed_block().
+
+This is only valid during the #GcrParser::parsed signal.
+
+
+ the data format of the currently parsed item
+
+
+
+
+ a parser
+
+
+
+
+
+ Get the label of the currently parsed item. This is generally only valid
+during the #GcrParser::parsed signal.
+
+
+ the label of the currently parsed item. The value is
+ owned by the parser and should not be freed.
+
+
+
+
+ The parser
+
+
+
+
+
+ Parse the data. The #GcrParser::parsed and #GcrParser::authenticate signals
+may fire during the parsing.
+
+
+ Whether the data was parsed successfully or not.
+
+
+
+
+ The parser
+
+
+
+ the data to parse
+
+
+
+
+
+ Parse the data. The #GcrParser::parsed and #GcrParser::authenticate signals
+may fire during the parsing.
+
+A copy of the data will be made. Use gcr_parser_parse_bytes() to avoid this.
+
+
+ Whether the data was parsed successfully or not.
+
+
+
+
+ The parser
+
+
+
+ the data to parse
+
+
+
+
+
+ The length of the data
+
+
+
+
+
+ Parse items from the data in a #GInputStream. This function may block while
+reading from the input stream. Use gcr_parser_parse_stream_async() for
+a non-blocking variant.
+
+The #GcrParser::parsed and #GcrParser::authenticate signals
+may fire during the parsing.
+
+
+ Whether the parsing completed successfully or not.
+
+
+
+
+ The parser
+
+
+
+ The input stream
+
+
+
+ An optional cancellation object
+
+
+
+
+
+ Parse items from the data in a #GInputStream. This function completes
+asyncronously and doesn't block.
+
+The #GcrParser::parsed and #GcrParser::authenticate signals
+may fire during the parsing.
+
+
+
+
+
+
+ The parser
+
+
+
+ The input stream
+
+
+
+ An optional cancellation object
+
+
+
+ Called when the operation result is ready.
+
+
+
+ Data to pass to callback
+
+
+
+
+
+ Complete an operation to parse a stream.
+
+
+ Whether the parsing completed successfully or not.
+
+
+
+
+ The parser
+
+
+
+ The operation result
+
+
+
+
+
+ Sets the filename of the parser item.
+
+
+
+
+
+
+ a parser item
+
+
+
+ a string of the filename of the parser item
+
+
+
+
+
+ Get the attributes that make up the currently parsed item. This is
+generally only valid during a #GcrParser::parsed signal.
+
+
+
+ The description of the type of the currently parsed item. This is generally
+only valid during a #GcrParser::parsed signal.
+
+
+
+ The label of the currently parsed item. This is generally
+only valid during a #GcrParser::parsed signal.
+
+
+
+
+
+
+
+
+
+ This signal is emitted when an item needs to be unlocked or decrypted before
+it can be parsed. The @count argument specifies the number of times
+the signal has been emitted for a given item. This can be used to
+display a message saying the previous password was incorrect.
+
+Typically the gcr_parser_add_password() function is called in
+response to this signal.
+
+If %FALSE is returned, then the authentication was not handled. If
+no handlers return %TRUE then the item is not parsed and an error
+with the code %GCR_ERROR_CANCELLED will be raised.
+
+ Whether the authentication was handled.
+
+
+
+
+ the number of times this item has been authenticated
+
+
+
+
+
+ This signal is emitted when an item is sucessfully parsed. To access
+the information about the item use the gcr_parser_get_parsed_label(),
+gcr_parser_get_parsed_attributes() and gcr_parser_get_parsed_description()
+functions.
+
+
+
+
+
+
+ The class for #GcrParser
+
+
+ The parent class
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A certificate loaded from a PKCS#11 storage.
+It is also a valid [class@Gck.Object] and can be used as such.
+
+Use gcr_pkcs11_certificate_lookup_issuer() to lookup the issuer of a given
+certificate in the PKCS#11 store.
+
+Various common PKCS#11 certificate attributes are automatically loaded and
+are available via gcr_pkcs11_certificate_get_attributes().
+
+
+
+
+ Lookup a the issuer of a @certificate in the PKCS#11 storage. The
+lookup is done using the issuer DN of the certificate. No certificate chain
+verification is done. Use a crypto library to make trust decisions.
+
+This call may block, see gcr_pkcs11_certificate_lookup_issuer() for the
+non-blocking version.
+
+Will return %NULL if no issuer certificate is found. Use @error to determine
+if an error occurred.
+
+
+ a new #GcrPkcs11Certificate, or %NULL
+
+
+
+
+ a #GcrCertificate
+
+
+
+ a #GCancellable
+
+
+
+
+
+ Lookup a the issuer of a @certificate in the PKCS#11 storage. The
+lookup is done using the issuer DN of the certificate. No certificate chain
+verification is done. Use a crypto library to make trust decisions.
+
+When the operation is finished, callback will be called. You can then call
+gcr_pkcs11_certificate_lookup_issuer_finish() to get the result of the
+operation.
+
+
+
+
+
+
+ a #GcrCertificate
+
+
+
+ a #GCancellable
+
+
+
+ a #GAsyncReadyCallback to call when the operation completes
+
+
+
+ the data to pass to callback function
+
+
+
+
+
+ Finishes an asynchronous operation started by
+gcr_pkcs11_certificate_lookup_issuer_async().
+
+Will return %NULL if no issuer certificate is found. Use @error to determine
+if an error occurred.
+
+
+ a new #GcrPkcs11Certificate, or %NULL
+
+
+
+
+ the #GAsyncResult passed to the callback
+
+
+
+
+
+ Access the automatically loaded attributes for this certificate.
+
+
+ the certificate attributes
+
+
+
+
+ A #GcrPkcs11Certificate
+
+
+
+
+
+ Automatically loaded attributes for this certificate.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A prompt displayed to the user. It is an interface with various
+implementations.
+
+Various properties are set on the prompt, and then the prompt is displayed
+the various prompt methods like [method@Prompt.password_run].
+
+A `GcrPrompt` may be used to display multiple related prompts. Most
+implementions do not hide the window between display of multiple related
+prompts, and the #GcrPrompt must be closed or destroyed in order to make
+it go away. This allows the user to see that the prompts are related.
+
+Use `GcrPromptDialog` (part of gcr-ui) to create an in-process GTK+ dialog
+prompt. Use [class@SystemPrompt] to create a system prompt in a prompter
+process.
+
+The prompt implementation will always display the [property@Prompt:message]
+property, but may choose not to display the [property@Prompt:description] or
+[property@Prompt:title] properties.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Prompts for confirmation asking a cancel/continue style question.
+Set the various properties on the prompt before calling this method to
+represent the question correctly.
+
+This method will return immediately and complete asynchronously.
+
+
+
+
+
+
+ a prompt
+
+
+
+ optional cancellation object
+
+
+
+ called when the operation completes
+
+
+
+ data to pass to the callback
+
+
+
+
+
+ Complete an operation to prompt for confirmation.
+
+%GCR_PROMPT_REPLY_CONTINUE will be returned if the user confirms the prompt. The
+return value will also be %GCR_PROMPT_REPLY_CANCEL if the user cancels or if
+an error occurs. Check the @error argument to tell the difference.
+
+
+ the reply from the prompt
+
+
+
+
+ a prompt
+
+
+
+ asynchronous result passed to callback
+
+
+
+
+
+ Prompts for password. Set the various properties on the prompt before calling
+this method to explain which password should be entered.
+
+This method will return immediately and complete asynchronously.
+
+
+
+
+
+
+ a prompt
+
+
+
+ optional cancellation object
+
+
+
+ called when the operation completes
+
+
+
+ data to pass to the callback
+
+
+
+
+
+ Complete an operation to prompt for a password.
+
+A password will be returned if the user enters a password successfully.
+The returned password is valid until the next time a method is called
+to display another prompt.
+
+%NULL will be returned if the user cancels or if an error occurs. Check the
+@error argument to tell the difference.
+
+
+ the password owned by the prompt, or %NULL
+
+
+
+
+ a prompt
+
+
+
+ asynchronous result passed to callback
+
+
+
+
+
+ Closes the prompt so that in can no longer be used to prompt. The various
+prompt methods will return results as if the user dismissed the prompt.
+
+The prompt may also be closed by the implementor of the prompt object.
+
+This emits the [signal@Prompt::prompt-close] signal on the prompt object.
+
+
+
+
+
+
+ a prompt
+
+
+
+
+
+ Prompts for confirmation asking a cancel/continue style question.
+Set the various properties on the prompt before calling this function to
+represent the question correctly.
+
+This method will block until the a response is returned from the prompter.
+
+%GCR_PROMPT_REPLY_CONTINUE will be returned if the user confirms the prompt. The
+return value will also be %GCR_PROMPT_REPLY_CANCEL if the user cancels or if
+an error occurs. Check the @error argument to tell the difference.
+
+
+ the reply from the prompt
+
+
+
+
+ a prompt
+
+
+
+ optional cancellation object
+
+
+
+
+
+ Prompts for confirmation asking a cancel/continue style question.
+Set the various properties on the prompt before calling this method to
+represent the question correctly.
+
+This method will return immediately and complete asynchronously.
+
+
+
+
+
+
+ a prompt
+
+
+
+ optional cancellation object
+
+
+
+ called when the operation completes
+
+
+
+ data to pass to the callback
+
+
+
+
+
+ Complete an operation to prompt for confirmation.
+
+%GCR_PROMPT_REPLY_CONTINUE will be returned if the user confirms the prompt. The
+return value will also be %GCR_PROMPT_REPLY_CANCEL if the user cancels or if
+an error occurs. Check the @error argument to tell the difference.
+
+
+ the reply from the prompt
+
+
+
+
+ a prompt
+
+
+
+ asynchronous result passed to callback
+
+
+
+
+
+ Prompts for confirmation asking a cancel/continue style question.
+Set the various properties on the prompt before calling this function to
+represent the question correctly.
+
+This method will block until the a response is returned from the prompter
+and will run a main loop similar to a `gtk_dialog_run()`. The application
+will remain responsive but care must be taken to handle reentrancy issues.
+
+%GCR_PROMPT_REPLY_CONTINUE will be returned if the user confirms the prompt. The
+return value will also be %GCR_PROMPT_REPLY_CANCEL if the user cancels or if
+an error occurs. Check the @error argument to tell the difference.
+
+
+ the reply from the prompt
+
+
+
+
+ a prompt
+
+
+
+ optional cancellation object
+
+
+
+
+
+ Get the string handle of the caller's window.
+
+The caller window indicates to the prompt which window is prompting the
+user. The prompt may choose to ignore this information or use it in whatever
+way it sees fit.
+
+
+ a newly allocated string containing the string
+ handle of the window.
+
+
+
+
+ the prompt
+
+
+
+
+
+ Get the label for the cancel button.
+
+This is the button that results in a %GCR_PROMPT_REPLY_CANCEL reply
+from the prompt.
+
+
+ a newly allocated string containing the label
+
+
+
+
+ the prompt
+
+
+
+
+
+ Get whether the additional choice was chosen or not.
+
+The additional choice would have been setup using
+gcr_prompt_set_choice_label().
+
+
+ whether chosen
+
+
+
+
+ the prompt
+
+
+
+
+
+ Get the label for the additional choice.
+
+This will be %NULL if no additional choice is being displayed.
+
+
+ a newly allocated string containing the additional
+ choice or %NULL
+
+
+
+
+ the prompt
+
+
+
+
+
+ Get the label for the continue button.
+
+This is the button that results in a %GCR_PROMPT_REPLY_CONTINUE reply
+from the prompt.
+
+
+ a newly allocated string containing the label
+
+
+
+
+ the prompt
+
+
+
+
+
+ Get the detailed description of the prompt.
+
+A prompt implementation may choose not to display this detailed description.
+The prompt message should contain relevant information.
+
+
+ a newly allocated string containing the detailed
+ description of the prompt
+
+
+
+
+ the prompt
+
+
+
+
+
+ Gets the prompt message for the user.
+
+A prompt implementation should always display this message.
+
+
+ a newly allocated string containing the detailed
+ description of the prompt
+
+
+
+
+ the prompt
+
+
+
+
+
+ Get whether the prompt will prompt for a new password.
+
+This will cause the prompt implementation to ask the user to confirm the
+password and/or display other relevant user interface for creating a new
+password.
+
+
+ whether in new password mode or not
+
+
+
+
+ the prompt
+
+
+
+
+
+ Get indication of the password strength.
+
+Prompts will return a zero value if the password is empty, and a value
+greater than zero if the password has any characters.
+
+This is only valid after a successful prompt for a password.
+
+
+ zero if the password is empty, greater than zero if not
+
+
+
+
+ the prompt
+
+
+
+
+
+ Gets the title of the prompt.
+
+A prompt implementation may choose not to display the prompt title. The
+prompt message should contain relevant information.
+
+
+ a newly allocated string containing the prompt
+ title.
+
+
+
+
+ the prompt
+
+
+
+
+
+ Get a prompt warning displayed on the prompt.
+
+This is a warning like "The password is incorrect." usually displayed to the
+user about a previous 'unsuccessful' prompt.
+
+If this string is %NULL then no warning is displayed.
+
+
+ a newly allocated string containing the prompt
+ warning, or %NULL if no warning
+
+
+
+
+ the prompt
+
+
+
+
+
+ Prompts for password. Set the various properties on the prompt before calling
+this method to explain which password should be entered.
+
+This method will block until the a response is returned from the prompter.
+
+A password will be returned if the user enters a password successfully.
+The returned password is valid until the next time a method is called
+to display another prompt.
+
+%NULL will be returned if the user cancels or if an error occurs. Check the
+@error argument to tell the difference.
+
+
+ the password owned by the prompt, or %NULL
+
+
+
+
+ a prompt
+
+
+
+ optional cancellation object
+
+
+
+
+
+ Prompts for password. Set the various properties on the prompt before calling
+this method to explain which password should be entered.
+
+This method will return immediately and complete asynchronously.
+
+
+
+
+
+
+ a prompt
+
+
+
+ optional cancellation object
+
+
+
+ called when the operation completes
+
+
+
+ data to pass to the callback
+
+
+
+
+
+ Complete an operation to prompt for a password.
+
+A password will be returned if the user enters a password successfully.
+The returned password is valid until the next time a method is called
+to display another prompt.
+
+%NULL will be returned if the user cancels or if an error occurs. Check the
+@error argument to tell the difference.
+
+
+ the password owned by the prompt, or %NULL
+
+
+
+
+ a prompt
+
+
+
+ asynchronous result passed to callback
+
+
+
+
+
+ Prompts for password. Set the various properties on the prompt before calling
+this method to explain which password should be entered.
+
+This method will block until the a response is returned from the prompter
+and will run a main loop similar to a gtk_dialog_run(). The application
+will remain responsive but care must be taken to handle reentrancy issues.
+
+A password will be returned if the user enters a password successfully.
+The returned password is valid until the next time a method is called
+to display another prompt.
+
+%NULL will be returned if the user cancels or if an error occurs. Check the
+@error argument to tell the difference.
+
+
+ the password owned by the prompt, or %NULL
+
+
+
+
+ a prompt
+
+
+
+ optional cancellation object
+
+
+
+
+
+ Reset the contents and properties of the prompt.
+
+
+
+
+
+
+ the prompt
+
+
+
+
+
+ Set the string handle of the caller's window.
+
+The caller window indicates to the prompt which window is prompting the
+user. The prompt may choose to ignore this information or use it in whatever
+way it sees fit.
+
+
+
+
+
+
+ the prompt
+
+
+
+ the window id
+
+
+
+
+
+ Set the label for the continue button.
+
+This is the button that results in a %GCR_PROMPT_REPLY_CANCEL reply
+from the prompt.
+
+
+
+
+
+
+ the prompt
+
+
+
+ the label
+
+
+
+
+
+ Set whether the additional choice is chosen or not.
+
+The additional choice should be set up using gcr_prompt_set_choice_label().
+
+
+
+
+
+
+ the prompt
+
+
+
+ whether chosen
+
+
+
+
+
+ Set the label for the additional choice.
+
+If this is a non-%NULL value then an additional boolean choice will be
+displayed by the prompt allowing the user to select or deselect it.
+
+The initial value of the choice can be set with the
+gcr_prompt_set_choice_label() method.
+
+If this is %NULL, then no additional choice is being displayed.
+
+
+
+
+
+
+ the prompt
+
+
+
+ the additional choice or %NULL
+
+
+
+
+
+ Set the label for the continue button.
+
+This is the button that results in a %GCR_PROMPT_REPLY_CONTINUE reply
+from the prompt.
+
+
+
+
+
+
+ the prompt
+
+
+
+ the label
+
+
+
+
+
+ Set the detailed description of the prompt.
+
+A prompt implementation may choose not to display this detailed description.
+Use gcr_prompt_set_message() to set a general message containing relevant
+information.
+
+
+
+
+
+
+ the prompt
+
+
+
+ the detailed description
+
+
+
+
+
+ Sets the prompt message for the user.
+
+A prompt implementation should always display this message.
+
+
+
+
+
+
+ the prompt
+
+
+
+ the prompt message
+
+
+
+
+
+ Set whether the prompt will prompt for a new password.
+
+This will cause the prompt implementation to ask the user to confirm the
+password and/or display other relevant user interface for creating a new
+password.
+
+
+
+
+
+
+ the prompt
+
+
+
+ whether in new password mode or not
+
+
+
+
+
+ Sets the title of the prompt.
+
+A prompt implementation may choose not to display the prompt title. The
+prompt message should contain relevant information.
+
+
+
+
+
+
+ the prompt
+
+
+
+ the prompt title
+
+
+
+
+
+ Set a prompt warning displayed on the prompt.
+
+This is a warning like "The password is incorrect." usually displayed to the
+user about a previous 'unsuccessful' prompt.
+
+If this string is %NULL then no warning is displayed.
+
+
+
+
+
+
+ the prompt
+
+
+
+ the warning or %NULL
+
+
+
+
+
+ The string handle of the caller's window.
+
+The caller window indicates to the prompt which window is prompting the
+user. The prompt may choose to ignore this information or use it in whatever
+way it sees fit.
+
+In X11, this will be a stringified version of the XWindow handle; in
+Wayland this is the result of an export using the XDG foreign
+protocol.
+
+
+
+ The label for the cancel button in the prompt.
+
+
+
+ Whether the additional choice is chosen or not.
+
+The additional choice would have been setup using #GcrPrompt:choice-label.
+
+
+
+ The label for the additional choice.
+
+If this is a non-%NULL value then an additional boolean choice will be
+displayed by the prompt allowing the user to select or deselect it.
+
+If %NULL, then no additional choice is displayed.
+
+The initial value of the choice can be set with #GcrPrompt:choice-chosen.
+
+
+
+ The label for the continue button in the prompt.
+
+
+
+ The detailed description of the prompt.
+
+A prompt implementation may choose not to display this detailed description.
+The prompt message should contain relevant information.
+
+
+
+ The prompt message for the user.
+
+A prompt implementation should always display this message.
+
+
+
+ Whether the prompt will prompt for a new password.
+
+This will cause the prompt implementation to ask the user to confirm the
+password and/or display other relevant user interface for creating a new
+password.
+
+
+
+ Indication of the password strength.
+
+Prompts will return a zero value if the password is empty, and a value
+greater than zero if the password has any characters.
+
+This is only valid after a successful prompt for a password.
+
+
+
+ The title of the prompt.
+
+A prompt implementation may choose not to display the prompt title. The
+#GcrPrompt:message should contain relevant information.
+
+
+
+ A prompt warning displayed on the prompt, or %NULL for no warning.
+
+This is a warning like "The password is incorrect." usually displayed to the
+user about a previous 'unsuccessful' prompt.
+
+
+
+ Action signal fired when the prompt is to be closed. After the default
+handler has run, the prompt is closed. The various prompting methods
+will return results as if the user dismissed the prompt.
+
+You can use the [method@Prompt.close] method to emit this signal.
+
+
+
+
+
+
+ The interface for implementing [iface@Prompt].
+
+
+ parent interface
+
+
+
+
+
+
+
+
+
+
+ a prompt
+
+
+
+ optional cancellation object
+
+
+
+ called when the operation completes
+
+
+
+ data to pass to the callback
+
+
+
+
+
+
+
+
+
+ the password owned by the prompt, or %NULL
+
+
+
+
+ a prompt
+
+
+
+ asynchronous result passed to callback
+
+
+
+
+
+
+
+
+
+
+
+
+
+ a prompt
+
+
+
+ optional cancellation object
+
+
+
+ called when the operation completes
+
+
+
+ data to pass to the callback
+
+
+
+
+
+
+
+
+
+ the reply from the prompt
+
+
+
+
+ a prompt
+
+
+
+ asynchronous result passed to callback
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Various replies returned by [method@Prompt.confirm] and friends.
+
+
+ the prompt was cancelled
+
+
+ the user replied with 'ok'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The current secret exchange protocol. Key agreement is done using DH with the
+1536 bit IKE parameter group. Keys are derived using SHA256 with HKDF. The
+transport encryption is done with 128 bit AES.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Allows exchange of secrets between two processes on the same system without
+exposing those secrets to things like loggers, non-pageable memory etc.
+
+This does not protect against active attacks like MITM attacks.
+
+Each side creates a secret exchange object, and one of the sides calls
+[method@SecretExchange.begin]. This creates a string, which should be passed
+to the other side. Each side passes the strings it receives into
+[method@SecretExchange.receive].
+
+In order to send a reply (either with or without a secret) use
+[method@SecretExchange.send]. A side must have successfully called
+[method@SecretExchange.receive] before it can use
+[method@SecretExchange.send].
+
+The secret exchange objects can be used for multiple iterations of the
+conversation, or for just one request/reply. The only limitation being that
+the initial request cannot contain a secret.
+
+Caveat: Information about the approximate length (rounded up to the nearest
+16 bytes) may be leaked. If this is considered inacceptable, do not use
+[class@SecretExchange].
+
+
+ Create a new secret exchange object.
+
+Specify a protocol of %NULL to allow any protocol. This is especially
+relevant on the side of the exchange that does not call
+[method@SecretExchange.begin], that is the originator. Currently the only
+protocol supported is %GCR_SECRET_EXCHANGE_PROTOCOL_1.
+
+
+ A new #GcrSecretExchange object
+
+
+
+
+ the exchange protocol to use
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Begin the secret exchange. The resulting string should be sent to the other
+side of the exchange. The other side should use [method@SecretExchange.receive]
+to process the string.
+
+
+ A newly allocated string to be sent to the other
+ side of the secret exchange
+
+
+
+
+ a #GcrSecretExchange object
+
+
+
+
+
+ Will return %NULL if no protocol was specified, and either
+[method@SecretExchange.begin] or [method@SecretExchange.receive] have not
+been called successfully.
+
+
+ the protocol or %NULL
+
+
+
+
+ a #GcrSecretExchange object
+Get the secret exchange protocol.
+
+
+
+
+
+ Returns the last secret received. If no secret has yet been received this
+will return %NULL. The string is owned by the #GcrSecretExchange object
+and will be valid until the next time that gcr_secret_exchange_receive()
+is called on this object, or the object is destroyed.
+
+Depending on the secret passed into the other side of the secret exchange,
+the result may be a binary string. It does however have a null terminator,
+so if you're certain that it is does not contain arbitrary binary data,
+it can be used as a string.
+
+
+ the last secret received
+
+
+
+
+
+
+ a #GcrSecretExchange object
+
+
+
+ optionally, a location to store the length of returned secret
+
+
+
+
+
+ Receive a string from the other side of secret exchange. This string will
+have been created by [method@SecretExchange.begin] or
+[method@SecretExchange.send].
+
+After this call completes successfully the value returned from
+gcr_secret_exchange_get_secret() will have changed.
+
+
+ whether the string was successfully parsed and received
+
+
+
+
+ a #GcrSecretExchange object
+
+
+
+ the string received
+
+
+
+
+
+ Send a reply to the other side of the secret exchange, optionally sending a
+secret.
+
+[method@SecretExchange.receive] must have been successfully called at least
+once on this object. In other words this object must have received data
+from the other side of the secret exchange, before we can send a secret.
+
+
+ a newly allocated string to be sent to the other
+ side of the secret exchange
+
+
+
+
+ a #GcrSecretExchange object
+
+
+
+ optionally, a secret to send to the other side
+
+
+
+ length of @secret, or -1 if null terminated
+
+
+
+
+
+ The protocol being used for the exchange.
+
+Will be %NULL if no protocol was specified when creating this object,
+and either [method@SecretExchange.begin] or [method@SecretExchange.receive]
+have not been called successfully.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An implementation of [iface@Certificate] which loads a certificate from DER
+data already located in memory.
+
+To create an object, use the [ctor@SimpleCertificate.new] or
+[ctor@SimpleCertificate.new_static] functions.
+
+
+
+
+ Create a new #GcrSimpleCertificate for the raw DER data. The @data memory is
+copied so you can dispose of it after this function returns.
+
+
+ a new #GcrSimpleCertificate
+
+
+
+
+ the raw DER certificate data
+
+
+
+
+
+ The length of @data
+
+
+
+
+
+ Create a new #GcrSimpleCertificate for the raw DER data. The @data memory is
+not copied and must persist until the #GcrSimpleCertificate object is
+destroyed.
+
+
+ a new #GcrSimpleCertificate
+
+
+
+
+ The raw DER certificate data
+
+
+
+
+
+ The length of @data
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A simple implementation of [iface@Collection], which you can add and remove
+objects from.
+
+You can use [method@SimpleCollection.add] to add objects, and
+[method@SimpleCollection.remove] to remove them again.
+
+
+
+ Create a new #GcrSimpleCollection.
+
+
+ a newly allocated
+ collection, which should be freed with g_object_unref()
+
+
+
+
+ Add an object to this collection
+
+
+
+
+
+
+ The collection
+
+
+
+ The object to add
+
+
+
+
+
+ Remove an object from the collection.
+
+
+
+
+
+
+ The collection
+
+
+
+ The object to remove from the collection
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ When used as the setup function while spawning an ssh command like ssh-add
+or ssh, this allows callbacks for passwords on the provided interaction.
+
+
+ Create a new GcrSshAskpass object which can be used to spawn an
+ssh command and prompt for any necessary passwords.
+
+Use the gcr_ssh_askpass_child_setup() function as a callback with
+g_spawn_sync(), g_spawn_async() or g_spawn_async_with_pipes().
+
+
+ A new #GcrSshAskpass object
+
+
+
+
+ the interaction to use for prompting paswords
+
+
+
+
+
+ Use this function as a callback setup function passed to g_spawn_sync(),
+g_spawn_async(), g_spawn_async_with_pipes().
+
+
+
+
+
+
+ a #GcrSshAskpass object
+
+
+
+
+
+ Get the interaction associated with this object.
+
+
+ the interaction
+
+
+
+
+ a #GcrSshAskpass object
+
+
+
+
+
+ The interaction used to prompt for passwords.
+
+
+
+
+
+
+
+
+
+
+ A [iface@Prompt] implementation which calls to the system prompter to
+display prompts in a system modal fashion.
+
+Since the system prompter usually only displays one prompt at a time, you
+may have to wait for the prompt to be displayed. Use [func@SystemPrompt.open]
+or a related function to open a prompt. Since this can take a long time, you
+should always check that the prompt is still needed after it is opened. A
+previous prompt may have already provided the information needed and you
+may no longer need to prompt.
+
+Use [method@SystemPrompt.close] to close the prompt when you're done with it.
+
+
+
+
+
+
+
+
+
+
+
+ Opens a system prompt with the default prompter.
+
+Most system prompters only allow showing one prompt at a time, and if
+another prompt is shown then this method will block for up to
+@timeout_seconds seconds. If @timeout_seconds is equal to -1, then this
+will block indefinitely until the prompt can be opened. If @timeout_seconds
+expires, then this function will fail with a %GCR_SYSTEM_PROMPT_IN_PROGRESS
+error.
+
+
+ the prompt, or %NULL if
+ prompt could not be opened
+
+
+
+
+ the number of seconds to wait to access the prompt, or -1
+
+
+
+ optional cancellation object
+
+
+
+
+
+ Asynchronously open a system prompt with the default system prompter.
+
+Most system prompters only allow showing one prompt at a time, and if
+another prompt is shown then this method will block for up to
+@timeout_seconds seconds. If @timeout_seconds is equal to -1, then this
+will block indefinitely until the prompt can be opened. If @timeout_seconds
+expires, then this operation will fail with a %GCR_SYSTEM_PROMPT_IN_PROGRESS
+error.
+
+
+
+
+
+
+ the number of seconds to wait to access the prompt, or -1
+
+
+
+ optional cancellation object
+
+
+
+ called when the operation completes
+
+
+
+ data to pass the callback
+
+
+
+
+
+ Complete an operation to asynchronously open a system prompt.
+
+
+ the prompt, or %NULL if
+ prompt could not be opened
+
+
+
+
+ the asynchronous result
+
+
+
+
+
+ Opens a system prompt. If prompter_name is %NULL, then the default
+system prompter is used.
+
+Most system prompters only allow showing one prompt at a time, and if
+another prompt is shown then this method will block for up to
+@timeout_seconds seconds. If @timeout_seconds is equal to -1, then this
+will block indefinitely until the prompt can be opened. If @timeout_seconds
+expires, then this function will fail with a %GCR_SYSTEM_PROMPT_IN_PROGRESS
+error.
+
+
+ the prompt, or %NULL if
+ prompt could not be opened
+
+
+
+
+ the prompter dbus name
+
+
+
+ the number of seconds to wait to access the prompt, or -1
+
+
+
+ optional cancellation object
+
+
+
+
+
+ Opens a system prompt asynchronously. If prompter_name is %NULL, then the
+default system prompter is used.
+
+Most system prompters only allow showing one prompt at a time, and if
+another prompt is shown then this method will block for up to
+@timeout_seconds seconds. If @timeout_seconds is equal to -1, then this
+will block indefinitely until the prompt can be opened. If @timeout_seconds
+expires, then this operation will fail with a %GCR_SYSTEM_PROMPT_IN_PROGRESS
+error.
+
+
+
+
+
+
+ the prompter D-Bus name
+
+
+
+ the number of seconds to wait to access the prompt, or -1
+
+
+
+ optional cancellation object
+
+
+
+ called when the operation completes
+
+
+
+ data to pass the callback
+
+
+
+
+
+ Close this prompt. After calling this function, no further prompts will
+succeed on this object. The prompt object is not unreferenced by this
+function, and you must unreference it once done.
+
+This call may block, use the gcr_system_prompt_close_async() to perform
+this action indefinitely.
+
+Whether or not this function returns %TRUE, the system prompt object is
+still closed and may not be further used.
+
+
+ whether close was cleanly completed
+
+
+
+
+ the prompt
+
+
+
+ an optional cancellation object
+
+
+
+
+
+ Close this prompt asynchronously. After calling this function, no further
+methods may be called on this object. The prompt object is not unreferenced
+by this function, and you must unreference it once done.
+
+This call returns immediately and completes asynchronously.
+
+
+
+
+
+
+ the prompt
+
+
+
+ an optional cancellation object
+
+
+
+ called when the operation completes
+
+
+
+ data to pass to the callback
+
+
+
+
+
+ Complete operation to close this prompt.
+
+Whether or not this function returns %TRUE, the system prompt object is
+still closed and may not be further used.
+
+
+ whether close was cleanly completed
+
+
+
+
+ the prompt
+
+
+
+ asynchronous operation result
+
+
+
+
+
+ Get the current [class@SecretExchange] used to transfer secrets in this prompt.
+
+
+ the secret exchange
+
+
+
+
+ a prompter
+
+
+
+
+
+ The DBus bus name of the prompter to use for prompting, or %NULL
+for the default prompter.
+
+
+
+ The #GcrSecretExchange to use when transferring passwords. A default
+secret exchange will be used if this is not set.
+
+
+
+ The timeout in seconds to wait when opening the prompt.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No error returned by the #GcrSystemPrompt is suitable for display or
+to the user.
+
+If the system prompter can only show one prompt at a time, and there is
+already a prompt being displayed, and the timeout waiting to open the
+prompt expires, then %GCR_SYSTEM_PROMPT_IN_PROGRESS is returned.
+
+
+ another prompt is already in progress
+
+
+
+
+
+
+ A prompter used by implementations of system prompts.
+
+This is a D-Bus service which is rarely implemented. Use [class@SystemPrompt]
+to display system prompts.
+
+The system prompter service responds to D-Bus requests to create system
+prompts and creates #GcrPrompt type objects to display those prompts.
+
+Pass the GType of the implementation of [iface@Prompt] to
+[ctor@SystemPrompter.new].
+
+
+ Create a new system prompter service. This prompter won't do anything unless
+you connect to its signals and show appropriate prompts.
+
+If @prompt_type is zero, then the new-prompt signal must be handled and
+return a valid prompt object implementing the #GcrPrompt interface.
+
+If @prompt_type is non-zero then the #GType must implement the #GcrPrompt
+interface.
+
+
+ a new prompter service
+
+
+
+
+ the mode for the prompt
+
+
+
+ the gobject type for prompts created by this prompter
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Get the mode for this prompter.
+
+Most system prompters only display one prompt at a time and therefore
+return %GCR_SYSTEM_PROMPTER_SINGLE.
+
+
+ the prompter mode
+
+
+
+
+ the prompter
+
+
+
+
+
+ Get the #GType for prompts created by this prompter.
+
+The returned #GType will be a #GcrPrompt implementation.
+
+
+ the prompt #GType
+
+
+
+
+ the prompter
+
+
+
+
+
+ Get whether prompting or not.
+
+
+ whether prompting or not
+
+
+
+
+ the prompter
+
+
+
+
+
+ Register this system prompter on the DBus @connection.
+
+This makes the prompter available for clients to call. The prompter will
+remain registered until gcr_system_prompter_unregister() is called, or the
+prompter is unreferenced.
+
+
+
+
+
+
+ the system prompter
+
+
+
+ a DBus connection
+
+
+
+
+
+ Unregister this system prompter on the DBus @connection.
+
+The prompter must have previously been registered with gcr_system_prompter_register().
+
+If @wait is set then this function will wait until all prompts have been closed
+or cancelled. This is usually only used by tests.
+
+
+
+
+
+
+ the system prompter
+
+
+
+ whether to wait for closing prompts
+
+
+
+
+
+ The mode for this prompter.
+
+Most system prompters only display one prompt at a time and therefore
+return %GCR_SYSTEM_PROMPTER_SINGLE.
+
+
+
+ The #GType for prompts created by this prompter. This must be a
+#GcrPrompt implementation.
+
+
+
+ Whether the prompter is prompting or not.
+
+
+
+
+
+
+
+
+
+ Signal emitted to create a new prompt when needed.
+
+The default implementation of this signal creates a prompt of the type
+gcr_system_prompter_get_prompt_type().
+
+ the new prompt
+
+
+
+
+
+ The class for #GcrSystemPrompter.
+
+
+ parent class
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The mode for the system prompter. Most system prompters can only show
+one prompt at a time and would use the %GCR_SYSTEM_PROMPTER_SINGLE mode.
+
+
+ only one prompt shown at a time
+
+
+ more than one prompt shown at a time
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An implementation of #GcrCollection, which combines the objects in
+other [iface@Collection]s. Use [method@UnionCollection.add] to add and
+[method@UnionCollection.remove] to remove them.
+
+
+
+ Create a new #GcrUnionCollection.
+
+
+ a newly allocated
+ collection, which should be freed with g_object_unref()
+
+
+
+
+ Add objects from this collection to the union
+
+
+
+
+
+
+ The union collection
+
+
+
+ The collection whose objects to add
+
+
+
+
+
+ Get the collections that have been added to this union.
+
+
+ collections
+ added to the union
+
+
+
+
+
+
+ the union collection
+
+
+
+
+
+ Check whether the collection is present in the union.
+
+
+ whether present or not
+
+
+
+
+ the union collection
+
+
+
+ the collection to check
+
+
+
+
+
+ Remove an object from the collection.
+
+
+
+
+
+
+ The collection
+
+
+
+ The collection whose objects to remove
+
+
+
+
+
+ Return the number of collections in this union. This does not reflect
+the number of objects in the combined collection.
+
+
+ number of collections inlcuded
+
+
+
+
+ the union collection
+
+
+
+
+
+ Add objects from this collection to the union. Do not add an additional
+reference to the collection.
+
+
+
+
+
+
+ The union collection
+
+
+
+ The collection whose objects to add
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Compare one certificate against another. If the certificates are equal
+then zero is returned. If one certificate is %NULL or not a certificate,
+then a non-zero value is returned.
+
+The return value is useful in a stable sort, but has no user logical
+meaning.
+
+
+ zero if the certificates match, non-zero otherwise.
+
+
+
+
+ the certificate to compare
+
+
+
+ the certificate to compare against
+
+
+
+
+
+ Get the columns appropriate for a certificate
+
+
+ the columns
+
+
+
+
+ Initialize the certificate mixin for the class. This mixin implements the
+various required properties for the certificate.
+
+Call this function near the end of your derived class_init function. The
+derived class must implement the #GcrCertificate interface.
+
+
+
+
+
+
+ The GObjectClass for this class
+
+
+
+
+
+ Initialize a #GcrComparableIface to compare the current certificate.
+In general it's easier to use the GCR_CERTIFICATE_MIXIN_IMPLEMENT_COMPARABLE()
+macro instead of this function.
+
+
+
+
+
+
+ The interface
+
+
+
+
+
+ Implementation to get various required certificate properties. This should
+be called from your derived class get_property function, or used as a
+get_property virtual function.
+
+Example of use as called from derived class get_property function:
+
+<informalexample><programlisting>
+static void
+my_get_property (GObject *obj, guint prop_id, GValue *value, GParamSpec *pspec)
+{
+ switch (prop_id) {
+
+ ...
+
+ default:
+ gcr_certificate_mixin_get_property (obj, prop_id, value, pspec);
+ break;
+ }
+}
+</programlisting></informalexample>
+
+Example of use as get_property function:
+
+<informalexample><programlisting>
+static void
+my_class_init (MyClass *klass)
+{
+ GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+ gobject_class->get_property = gcr_certificate_mixin_get_property;
+
+ ...
+}
+</programlisting></informalexample>
+
+
+
+
+
+
+ The object
+
+
+
+ The property id
+
+
+
+ The value to fill in.
+
+
+
+ The param specification.
+
+
+
+
+
+ Compare two blocks of memory. The return value can be used to sort
+the blocks of memory.
+
+
+ Zero if the blocks are identical, negative if first
+ less than secend, possitive otherwise.
+
+
+
+
+ First block of memory
+
+
+
+
+
+ Length of first block
+
+
+
+ Second block of memory
+
+
+
+
+
+ Length of second block
+
+
+
+
+
+
+
+
+
+
+
+ Create a key fingerprint for a certificate, public key or private key.
+Note that this is not a fingerprint of certificate data, which you would
+use gcr_certificate_get_fingerprint() for.
+
+
+ the
+ fingerprint or %NULL if the input was invalid.
+
+
+
+
+
+
+ attributes for key or certificate
+
+
+
+ the type of fingerprint to create
+
+
+
+ the length of fingerprint returned
+
+
+
+
+
+ Create a key fingerprint for a DER encoded subjectPublicKeyInfo. The
+fingerprint is created so that it will be identical for a key and its
+corresponding certificate.
+
+Note that in the case of certificates this is not a fingerprint of the
+actual certificate data, but rather of the public key contained in a
+certificate.
+
+
+ the
+ fingerprint or %NULL if the input was invalid.
+
+
+
+
+
+
+ DER encoded subjectPublicKeyInfo structure
+
+
+
+
+
+ length of DER encoded structure
+
+
+
+ the type of fingerprint to create
+
+
+
+ the length of fingerprint returned
+
+
+
+
+
+ Get an appropriate icon for the token
+
+
+ the icon
+
+
+
+
+ the token info
+
+
+
+
+
+ Create a set of importers which can import this parsed item.
+The parsed item is represented by the state of the GcrParser at the
+time of calling this method.
+
+
+ a list of importers
+ which can import the parsed item, which should be freed with
+ g_object_unref(), or %NULL if no types of importers can be created
+
+
+
+
+
+
+ a parser with a parsed item to import
+
+
+
+
+
+ Queues an additional item to be imported in all compattible importers
+in the set. The parsed item is represented by the state of the #GcrParser
+at the time of calling this method.
+
+If the parsed item is incompatible with an importer, then that the item
+will not be queued on that importer.
+
+
+ a new set of importers
+ that queued the item, which should be freed with gck_list_unref_free()
+
+
+
+
+
+
+ a set of importers
+
+
+
+
+
+ a parsed item
+
+
+
+
+
+ Register an importer to handle parsed items that match the given attributes.
+
+If @attrs are a floating reference, then it is consumed.
+
+
+
+
+
+
+ the GType of the importer being registered
+
+
+
+ the attributes that this importer is compatible with
+
+
+
+
+
+ Register built-in PKCS#11 and GnuPG importers.
+
+
+
+
+
+
+ Disconnect the mock prompter
+
+
+
+
+
+
+ Queue an expected response on the mock prompter.
+
+Expects any prompt, and closes the prompt when it gets it.
+
+
+
+
+
+
+ Queue an expected response on the mock prompter.
+
+Expects a confirmation prompt, and then cancels that prompt.
+
+
+
+
+
+
+ Queue an expected response on the mock prompter.
+
+Expects a confirmation prompt, and then confirms that prompt by
+simulating a click on the ok button.
+
+Additional property pairs for the prompt can be added in the argument
+list, in the same way that you would with g_object_new().
+
+If the "choice-chosen" property is specified then that value will be
+set on the prompt as if the user had changed the value.
+
+All other properties will be checked against the prompt, and an error
+will occur if they do not match the value set on the prompt.
+
+
+
+
+
+
+ the first property name in the argument list or %NULL
+
+
+
+ properties to expect
+
+
+
+
+
+ Queue an expected response on the mock prompter.
+
+Expects a password prompt, and then cancels that prompt.
+
+
+
+
+
+
+ Queue an expected response on the mock prompter.
+
+Expects a password prompt, and returns @password as if the user had entered
+it and clicked the ok button.
+
+Additional property pairs for the prompt can be added in the argument
+list, in the same way that you would with g_object_new().
+
+If the "choice-chosen" property is specified then that value will be
+set on the prompt as if the user had changed the value.
+
+All other properties will be checked against the prompt, and an error
+will occur if they do not match the value set on the prompt.
+
+
+
+
+
+
+ the password to return from the prompt
+
+
+
+ the first property name in the argument list or %NULL
+
+
+
+ properties to expect
+
+
+
+
+
+ Get the delay in milliseconds before the mock prompter completes
+an expected prompt.
+
+
+ the delay
+
+
+
+
+ Check if the mock prompter is expecting a response. This will be %TRUE
+when one of the <literal>gcr_mock_prompter_expect_xxx<!-- -->()</literal>
+functions have been used to queue an expected prompt, but that prompt
+response has not be 'used' yet.
+
+
+ whether expecting a prompt
+
+
+
+
+ Check if the mock prompter is showing any prompts.
+
+
+ whether prompting
+
+
+
+
+ Set the delay in milliseconds before the mock prompter completes
+an expected prompt.
+
+
+
+
+
+
+ prompt response delay in milliseconds
+
+
+
+
+
+ Start the mock prompter. This is often used from the
+<literal>setup<!-- -->()</literal> function of tests.
+
+Starts the mock prompter in an additional thread. Use the returned DBus bus
+name with gcr_system_prompt_open_for_prompter() to connect to this prompter.
+
+
+ the bus name that the mock prompter is listening on
+
+
+
+
+ Stop the mock prompter. This is often used from the
+<literal>teardown<!-- -->()</literal> function of tests.
+
+
+
+
+
+
+ Unreferences a parsed item which was referenced with gcr_parsed_ref()
+
+
+
+
+
+
+ a parsed item
+
+
+
+
+
+ Add a #GckModule to the list of PKCS#11 modules that are used by the
+GCR library.
+
+It is not normally necessary to call this function. The available
+PKCS#11 modules installed on the system are automatically loaded
+by the GCR library.
+
+
+
+
+
+
+ a #GckModule
+
+
+
+
+
+ Initialize a PKCS#11 module and add it to the modules that are
+used by the GCR library. Note that is an error to initialize the same
+PKCS#11 module twice.
+
+It is not normally necessary to call this function. The available
+PKCS#11 modules installed on the system are automatically loaded
+by the GCR library.
+
+
+ whether the module was sucessfully added.
+
+
+
+
+ the full file path of the PKCS#11 module
+
+
+
+ unused
+
+
+
+
+
+ List all the PKCS#11 modules that are used by the GCR library.
+Each module is a [class@Gck.Module] object.
+
+An empty list of modules will be returned if [func@pkcs11_set_modules],
+or [func@pkcs11_initialize] has not yet run.
+
+When done with the list, free it with gck_list_unref_free().
+
+
+ a newly allocated list
+ of #GckModule objects
+
+
+
+
+
+
+ List all the PKCS#11 slots that are used by the GCR library for lookup
+of trust assertions. Each slot is a [class@Gck.Slot] object.
+
+This will return an empty list if the [func@pkcs11_initialize] function has
+not yet been called.
+
+
+ a list of #GckSlot
+ objects to use for lookup of trust, or the empty list if not
+ initialized or no appropriate trust stores could be found.
+
+
+
+
+
+
+ Get the PKCS#11 URIs that are used to identify which slots to use for
+lookup trust assertions.
+
+
+ the uri which identifies trust storage slot
+
+
+
+
+
+
+ Selects an appropriate PKCS#11 slot to store trust assertions. The slot
+to use is normally configured automatically by the system.
+
+This will only return a valid result after the [func@pkcs11_initialize]
+method has been called.
+
+When done with the #GckSlot, use g_object_unref() to release it.
+
+
+ the #GckSlot to use for trust
+ assertions, or null if not initialized or no appropriate
+ trust store could be found.
+
+
+
+
+ Get the PKCS#11 URI that is used to identify which slot to use for
+storing trust storage.
+
+
+ the uri which identifies trust storage slot
+
+
+
+
+ Asynchronously initialize the registered PKCS#11 modules.
+
+
+ whether the operation was successful or not.
+
+
+
+
+ optional cancellable used to cancel the operation
+
+
+
+
+
+ Asynchronously initialize the registered PKCS#11 modules.
+
+
+
+
+
+
+ optional cancellable used to cancel the operation
+
+
+
+ callback which will be called when the operation completes
+
+
+
+ data passed to the callback
+
+
+
+
+
+ Complete the asynchronous operation to initialize the registered PKCS#11
+modules.
+
+
+ whether the operation was successful or not.
+
+
+
+
+ the asynchronous result
+
+
+
+
+
+ Set the list of PKCS#11 modules that are used by the GCR library.
+Each module in the list is a [class@Gck.Module] object.
+
+It is not normally necessary to call this function. The available
+PKCS#11 modules installed on the system are automatically loaded
+by the GCR library.
+
+
+
+
+
+
+ a list of PKCS#11 modules
+
+
+
+
+
+
+
+ Set the PKCS#11 URIs that are used to identify which slots to use for
+lookup of trust assertions.
+
+It is not normally necessary to call this function. The relevant
+PKCS#11 slots are automatically configured by the GCR library.
+
+
+
+
+
+
+ the uris which identifies trust lookup slots
+
+
+
+
+
+ Set the PKCS#11 URI that is used to identify which slot to use for
+storing trust assertions.
+
+It is not normally necessary to call this function. The relevant
+PKCS#11 slot is automatically configured by the GCR library.
+
+
+
+
+
+
+ the uri which identifies trust storage slot
+
+
+
+
+
+ Allocate a block of non-pageable memory.
+
+If non-pageable memory cannot be allocated then normal memory will be
+returned.
+
+
+ new memory block which should be freed
+with gcr_secure_memory_free()
+
+
+
+
+ The new desired size of the memory block.
+
+
+
+
+
+ Free a block of non-pageable memory.
+
+Glib memory is also freed correctly when passed to this function. If called
+with a %NULL pointer then no action is taken.
+
+
+
+
+
+
+ pointer to the beginning of the block of memory to free
+
+
+
+
+
+ Check if a pointer is in non-pageable memory allocated by.
+
+
+ whether the memory is secure non-pageable memory allocated by the
+ Gcr library or not
+
+
+
+
+ pointer to check
+
+
+
+
+
+ Allocate objects in non-pageable memory.
+
+
+
+ C type of the objects to allocate
+
+
+ number of objects to allocate
+
+
+
+
+ Reallocate a block of non-pageable memory.
+
+Glib memory is also reallocated correctly. If called with a null pointer,
+then a new block of memory is allocated. If called with a zero size,
+then the block of memory is freed.
+
+If non-pageable memory cannot be allocated then normal memory will be
+returned.
+
+
+ new block, or %NULL if the block was
+freed; memory block should be freed with gcr_secure_memory_free()
+
+
+
+
+ pointer to reallocate or %NULL to allocate a new block
+
+
+
+ new desired size of the memory block, or 0 to free the memory
+
+
+
+
+
+ Copy a string into non-pageable memory. If the input string is %NULL, then
+%NULL will be returned.
+
+
+ copied string, should be freed with gcr_secure_memory_free()
+
+
+
+
+ null terminated string to copy
+
+
+
+
+
+ Free a string, whether securely allocated using these functions or not.
+This will also clear out the contents of the string so they do not
+remain in memory.
+
+
+
+
+
+
+ null terminated string to fere
+
+
+
+
+
+ Allocate a block of non-pageable memory.
+
+If non-pageable memory cannot be allocated, then %NULL is returned.
+
+
+ new block, or %NULL if memory cannot be
+allocated; memory block should be freed with gcr_secure_memory_free()
+
+
+
+
+ new desired size of the memory block
+
+
+
+
+
+ Reallocate a block of non-pageable memory.
+
+Glib memory is also reallocated correctly when passed to this function.
+If called with a null pointer, then a new block of memory is allocated.
+If called with a zero size, then the block of memory is freed.
+
+If memory cannot be allocated, %NULL is returned and the original block
+of memory remains intact.
+
+
+ the new block, or %NULL if memory cannot be
+allocated; the memory block should be freed with gcr_secure_memory_free()
+
+
+
+
+ pointer to reallocate or %NULL to allocate a new block
+
+
+
+ new desired size of the memory block
+
+
+
+
+
+ Add a pinned @certificate for connections to @peer for @purpose. A pinned
+certificate overrides all other certificate verification and should be
+used with care.
+
+If the same pinned certificate already exists, then this operation
+does not add another, and succeeds without error.
+
+This call may block, see gcr_trust_add_pinned_certificate_async() for the
+non-blocking version.
+
+
+ %TRUE if the pinned certificate is recorded successfully
+
+
+
+
+ a #GcrCertificate
+
+
+
+ the purpose string
+
+
+
+ the peer for this pinned certificate
+
+
+
+ a #GCancellable
+
+
+
+
+
+ Add a pinned certificate for communication with @peer for @purpose. A pinned
+certificate overrides all other certificate verification and should be used
+with care.
+
+If the same pinned certificate already exists, then this operation
+does not add another, and succeeds without error.
+
+When the operation is finished, callback will be called. You can then call
+[func@Gcr.trust_add_pinned_certificate_finish] to get the result of the
+operation.
+
+
+
+
+
+
+ a #GcrCertificate
+
+
+
+ the purpose string
+
+
+
+ the peer for this pinned certificate
+
+
+
+ a #GCancellable
+
+
+
+ a #GAsyncReadyCallback to call when the operation completes
+
+
+
+ the data to pass to callback function
+
+
+
+
+
+ Finishes an asynchronous operation started by
+gcr_trust_add_pinned_certificate_async().
+
+
+ %TRUE if the pinned certificate is recorded successfully
+
+
+
+
+ the #GAsyncResult passed to the callback
+
+
+
+
+
+ Check if the @certificate is a trust anchor for the given @purpose. A trust
+anchor is used to verify the signatures on other certificates when verifying
+a certificate chain. Also known as a trusted certificate authority.
+
+This call may block, see [func@Gcr.trust_is_certificate_anchored_async] for
+the non-blocking version.
+
+In the case of an error, %FALSE is also returned. Check @error to detect
+if an error occurred.
+
+
+ %TRUE if the certificate is a trust anchor
+
+
+
+
+ a #GcrCertificate to check
+
+
+
+ the purpose string
+
+
+
+ a #GCancellable
+
+
+
+
+
+ Check if the @certificate is a trust anchor for the given @purpose. A trust
+anchor is used to verify the signatures on other certificates when verifying
+a certificate chain. Also known as a trusted certificate authority.
+
+When the operation is finished, callback will be called. You can then call
+gcr_trust_is_certificate_anchored_finish() to get the result of the operation.
+
+
+
+
+
+
+ a #GcrCertificate to check
+
+
+
+ the purpose string
+
+
+
+ a #GCancellable
+
+
+
+ a #GAsyncReadyCallback to call when the operation completes
+
+
+
+ the data to pass to callback function
+
+
+
+
+
+ Finishes an asynchronous operation started by
+gcr_trust_is_certificate_anchored_async().
+
+In the case of an error, %FALSE is also returned. Check @error to detect
+if an error occurred.
+
+
+ %TRUE if the certificate is a trust anchor
+
+
+
+
+ the #GAsyncResult passed to the callback
+
+
+
+
+
+ Check if @certificate is pinned for @purpose to communicate with @peer.
+A pinned certificate overrides all other certificate verification.
+
+This call may block, see gcr_trust_is_certificate_pinned_async() for the
+non-blocking version.
+
+In the case of an error, %FALSE is also returned. Check @error to detect
+if an error occurred.
+
+
+ %TRUE if the certificate is pinned for the host and purpose
+
+
+
+
+ a #GcrCertificate to check
+
+
+
+ the purpose string
+
+
+
+ the peer for this pinned
+
+
+
+ a #GCancellable
+
+
+
+
+
+ Check if @certificate is pinned for @purpose to communicate with @peer. A
+pinned certificate overrides all other certificate verification.
+
+When the operation is finished, callback will be called. You can then call
+[func@Gcr.trust_is_certificate_pinned_finish] to get the result of the
+operation.
+
+
+
+
+
+
+ a #GcrCertificate to check
+
+
+
+ the purpose string
+
+
+
+ the peer for this pinned
+
+
+
+ a #GCancellable
+
+
+
+ a #GAsyncReadyCallback to call when the operation completes
+
+
+
+ the data to pass to callback function
+
+
+
+
+
+ Finishes an asynchronous operation started by
+gcr_trust_is_certificate_pinned_async().
+
+In the case of an error, %FALSE is also returned. Check @error to detect
+if an error occurred.
+
+
+ %TRUE if the certificate is pinned.
+
+
+
+
+ the #GAsyncResult passed to the callback
+
+
+
+
+
+ Remove a pinned certificate for communication with @peer for @purpose.
+
+If the same pinned certificate does not exist, or was already removed,
+then this operation succeeds without error.
+
+This call may block, see gcr_trust_remove_pinned_certificate_async() for the
+non-blocking version.
+
+
+ %TRUE if the pinned certificate no longer exists
+
+
+
+
+ a #GcrCertificate
+
+
+
+ the purpose string
+
+
+
+ the peer for this pinned certificate
+
+
+
+ a #GCancellable
+
+
+
+
+
+ Remove a pinned certificate for communication with @peer for @purpose.
+
+If the same pinned certificate does not exist, or was already removed,
+then this operation succeeds without error.
+
+When the operation is finished, callback will be called. You can then call
+gcr_trust_remove_pinned_certificate_finish() to get the result of the
+operation.
+
+
+
+
+
+
+ a #GcrCertificate
+
+
+
+ the purpose string
+
+
+
+ the peer for this pinned certificate
+
+
+
+ a #GCancellable
+
+
+
+ a #GAsyncReadyCallback to call when the operation completes
+
+
+
+ the data to pass to callback function
+
+
+
+
+
+ Finishes an asynchronous operation started by
+gcr_trust_remove_pinned_certificate_async().
+
+
+ %TRUE if the pinned certificate no longer exists
+
+
+
+
+ the #GAsyncResult passed to the callback
+
+
+
+
+
+
diff --git a/libphosh-rs/GnomeDesktop-3.0.gir b/libphosh-rs/GnomeDesktop-3.0.gir
new file mode 100644
index 000000000..b3ad76fdd
--- /dev/null
+++ b/libphosh-rs/GnomeDesktop-3.0.gir
@@ -0,0 +1,5650 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates a thumbnail for a certain frame, where 'frame' is somewhat
+vaguely defined as 'suitable point to show while single-stepping
+through the slideshow'.
+
+
+ the newly created thumbnail or
+or NULL if frame_num is out of bounds.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Create a surface that can be set as background for @window.
+
+
+ %NULL on error (e.g. out of X connections)
+
+
+
+
+ GnomeBG
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ a #GdkPixbuf showing the background as a thumbnail
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates a new object to manage crossfading a
+window background between two #cairo_surface_ts.
+
+
+ the new #GnomeBGCrossfade
+
+
+
+
+ The width of the crossfading window
+
+
+
+ The height of the crossfading window
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This function reveals whether or not @fade is currently
+running on a window. See gnome_bg_crossfade_start() for
+information on how to initiate a crossfade.
+
+
+ %TRUE if fading, or %FALSE if not fading
+
+
+
+
+ a #GnomeBGCrossfade
+
+
+
+
+
+ Before initiating a crossfade with gnome_bg_crossfade_start()
+a start and end surface have to be set. This function sets
+the surface shown at the end of the crossfade effect.
+
+
+ %TRUE if successful, or %FALSE if the surface
+could not be copied.
+
+
+
+
+ a #GnomeBGCrossfade
+
+
+
+ The cairo surface to fade to
+
+
+
+
+
+ Before initiating a crossfade with gnome_bg_crossfade_start()
+a start and end surface have to be set. This function sets
+the surface shown at the beginning of the crossfade effect.
+
+
+ %TRUE if successful, or %FALSE if the surface
+could not be copied.
+
+
+
+
+ a #GnomeBGCrossfade
+
+
+
+ The cairo surface to fade from
+
+
+
+
+
+ This function initiates a quick crossfade between two surfaces on
+the background of @window. Before initiating the crossfade both
+gnome_bg_crossfade_start() and gnome_bg_crossfade_end() need to
+be called. If animations are disabled, the crossfade is skipped,
+and the window background is set immediately to the end surface.
+
+
+
+
+
+
+ a #GnomeBGCrossfade
+
+
+
+ The #GdkWindow to draw crossfade on
+
+
+
+
+
+ This function stops any in progress crossfades that may be
+happening. It's harmless to call this function if @fade is
+already stopped.
+
+
+
+
+
+
+ a #GnomeBGCrossfade
+
+
+
+
+
+ When a crossfade is running, this is height of the fading
+surface.
+
+
+
+ When a crossfade is running, this is width of the fading
+surface.
+
+
+
+
+
+
+
+
+
+ When a crossfade finishes, @window will have a copy
+of the end surface as its background, and this signal will
+get emitted.
+
+
+
+
+
+ the #GdkWindow the crossfade happend on.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates a new object to manage a slide show.
+window background between two #cairo_surface_ts.
+
+
+ the new #GnomeBGSlideShow
+
+
+
+
+ The filename of the slide show
+
+
+
+
+
+ Returns the current slides progress.
+
+
+
+
+
+
+ a #GnomeBGSlideShow
+
+
+
+ monitor width
+
+
+
+ monitor height
+
+
+
+ slide progress
+
+
+
+ slide duration
+
+
+
+ if slide is fixed
+
+
+
+ first file in slide
+
+
+
+ second file in slide
+
+
+
+
+
+ gets whether or not the slide show has multiple sizes for different monitors
+
+
+ %TRUE if multiple sizes
+
+
+
+
+ a #GnomeBGSlideShow
+
+
+
+
+
+ Returns number of slides in slide show
+
+
+
+
+
+
+ a #GnomeBGSlideShow
+
+
+
+
+
+ Retrieves slide by frame number
+
+
+ %TRUE if successful
+
+
+
+
+ a #GnomeBGSlideShow
+
+
+
+ frame number
+
+
+
+ monitor width
+
+
+
+ monitor height
+
+
+
+ slide progress
+
+
+
+ slide duration
+
+
+
+ if slide is fixed
+
+
+
+ first file in slide
+
+
+
+ second file in slide
+
+
+
+
+
+ gets the start time of the slide show
+
+
+ a timestamp
+
+
+
+
+ a #GnomeBGSlideShow
+
+
+
+
+
+ gets the total duration of the slide show
+
+
+ a timestamp
+
+
+
+
+ a #GnomeBGSlideShow
+
+
+
+
+
+ Tries to load the slide show.
+
+
+ %TRUE if successful
+
+
+
+
+ a #GnomeBGSlideShow
+
+
+
+
+
+ Tries to load the slide show asynchronously.
+
+
+
+
+
+
+ a #GnomeBGSlideShow
+
+
+
+ a #GCancellable
+
+
+
+ the callback
+
+
+
+ user data
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates a new #GnomeDesktopThumbnailFactory.
+
+This function must be called on the main thread and is non-blocking.
+
+
+ a new #GnomeDesktopThumbnailFactory
+
+
+
+
+ The thumbnail size to use
+
+
+
+
+
+ Returns TRUE if this GnomeDesktopThumbnailFactory can (at least try) to thumbnail
+this file. Thumbnails or files with failed thumbnails won't be thumbnailed.
+
+Usage of this function is threadsafe and does blocking I/O.
+
+
+ TRUE if the file can be thumbnailed.
+
+
+
+
+ a #GnomeDesktopThumbnailFactory
+
+
+
+ the uri of a file
+
+
+
+ the mime type of the file
+
+
+
+ the mtime of the file
+
+
+
+
+
+ Creates a failed thumbnail for the file so that we don't try
+to re-thumbnail the file later.
+
+Usage of this function is threadsafe and does blocking I/O.
+
+
+ TRUE if everything went fine; FALSE if there was an error.
+
+
+
+
+ a #GnomeDesktopThumbnailFactory
+
+
+
+ the uri of a file
+
+
+
+ the modification time of the file
+
+
+
+ a GCancellable object, or NULL
+
+
+
+
+
+ Asynchronous version of gnome_desktop_thumbnail_factory_create_failed_thumbnail()
+
+Since 43.0
+
+
+
+
+
+
+ a #GnomeDesktopThumbnailFactory
+
+
+
+ the uri of a file
+
+
+
+ the modification time of the original file
+
+
+
+ a Cancellable object
+
+
+
+ a function that will be called when the task has ended
+
+
+
+ user data
+
+
+
+
+
+
+
+ TRUE if the operation was correct; FALSE if there was an error
+
+Since 43.0
+
+
+
+
+ a #GnomeDesktopThumbnailFactory
+
+
+
+ the result of the operation
+
+
+
+
+
+ Tries to generate a thumbnail for the specified file. If it succeeds
+it returns a pixbuf that can be used as a thumbnail.
+
+Usage of this function is threadsafe and does blocking I/O.
+
+
+ thumbnail pixbuf if thumbnailing succeeded, %NULL otherwise and error will be set
+
+
+
+
+ a #GnomeDesktopThumbnailFactory
+
+
+
+ the uri of a file
+
+
+
+ the mime type of the file
+
+
+
+ a #GCancellable object or NULL
+
+
+
+
+
+ Asynchronous version of gnome_desktop_thumbnail_factory_generate_thumbnail()
+
+Since 43.0
+
+
+
+
+
+
+ a #GnomeDesktopThumbnailFactory
+
+
+
+ the URI of a file
+
+
+
+ the MIME type of the file
+
+
+
+ a Cancellable object
+
+
+
+ a function that will be called when the task has ended
+
+
+
+ user data
+
+
+
+
+
+
+
+ thumbnail pixbuf if thumbnailing succeeded, %NULL otherwise.
+
+Since 43.0
+
+
+
+
+ a #GnomeDesktopThumbnailFactory
+
+
+
+ the result of the operation
+
+
+
+
+
+ Tries to locate an failed thumbnail for the file specified. Writing
+and looking for failed thumbnails is important to avoid to try to
+thumbnail e.g. broken images several times.
+
+Usage of this function is threadsafe and does blocking I/O.
+
+
+ TRUE if there is a failed thumbnail for the file.
+
+
+
+
+ a #GnomeDesktopThumbnailFactory
+
+
+
+ the uri of a file
+
+
+
+ the mtime of the file
+
+
+
+
+
+ Tries to locate an existing thumbnail for the file specified.
+
+Usage of this function is threadsafe and does blocking I/O.
+
+
+ The absolute path of the thumbnail, or %NULL if none exist.
+
+
+
+
+ a #GnomeDesktopThumbnailFactory
+
+
+
+ the uri of a file
+
+
+
+ the mtime of the file
+
+
+
+
+
+ Saves @thumbnail at the right place. If the save fails a
+failed thumbnail is written.
+
+Usage of this function is threadsafe and does blocking I/O.
+
+
+ TRUE if everything went fine; FALSE if there was an error.
+
+
+
+
+ a #GnomeDesktopThumbnailFactory
+
+
+
+ the thumbnail as a pixbuf
+
+
+
+ the uri of a file
+
+
+
+ the modification time of the original file
+
+
+
+ a GCancellable object, or NULL
+
+
+
+
+
+ Asynchronous version of gnome_desktop_thumbnail_factory_save_thumbnail()
+
+Since 43.0
+
+
+
+
+
+
+ a #GnomeDesktopThumbnailFactory
+
+
+
+ the thumbnail as a pixbuf
+
+
+
+ the uri of a file
+
+
+
+ the modification time of the original file
+
+
+
+ a Cancellable object
+
+
+
+ a function that will be called when the task has ended
+
+
+
+ user data
+
+
+
+
+
+
+
+ TRUE if the operation was correct; FALSE if there was an error
+
+Since 43.0
+
+
+
+
+ a #GnomeDesktopThumbnailFactory
+
+
+
+ the result of the operation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ a new #GnomeIdleMonitor that tracks the server-global
+idletime for all devices.
+
+
+
+
+
+
+ a watch id
+
+Adds a watch for a specific idle time. The callback will be called
+when the user has accumulated @interval_msec milliseconds of idle time.
+This function will return an ID that can either be passed to
+gnome_idle_monitor_remove_watch(), or can be used to tell idle time
+watches apart if you have more than one.
+
+Also note that this function will only care about positive transitions
+(user's idle time exceeding a certain time). If you want to know about
+when the user has become active, use
+gnome_idle_monitor_add_user_active_watch().
+
+
+
+
+ A #GnomeIdleMonitor
+
+
+
+ The idletime interval, in milliseconds. It must be
+ a strictly positive value (> 0).
+
+
+
+ The callback to call when the user has
+ accumulated @interval_msec milliseconds of idle time.
+
+
+
+ The user data to pass to the callback
+
+
+
+ A #GDestroyNotify
+
+
+
+
+
+
+
+ a watch id
+
+Add a one-time watch to know when the user is active again.
+Note that this watch is one-time and will de-activate after the
+function is called, for efficiency purposes. It's most convenient
+to call this when an idle watch, as added by
+gnome_idle_monitor_add_idle_watch(), has triggered.
+
+
+
+
+ A #GnomeIdleMonitor
+
+
+
+ The callback to call when the user is
+ active again.
+
+
+
+ The user data to pass to the callback
+
+
+
+ A #GDestroyNotify
+
+
+
+
+
+
+
+ The current idle time, in milliseconds
+
+
+
+
+ A #GnomeIdleMonitor
+
+
+
+
+
+ Removes an idle time watcher, previously added by
+gnome_idle_monitor_add_idle_watch() or
+gnome_idle_monitor_add_user_active_watch().
+
+
+
+
+
+
+ A #GnomeIdleMonitor
+
+
+
+ A watch ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a reference to a #GnomePnpIds object, or creates
+a new one if none have been created.
+
+
+ a #GnomePnpIds object.
+
+
+
+
+ Find the full manufacturer name for the given PNP ID.
+
+
+ a new string representing the manufacturer name,
+or %NULL when not found.
+
+
+
+
+ a #GnomePnpIds object
+
+
+
+ the PNP ID to look for
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ whether at least two outputs are at (0, 0) offset and they
+have the same width/height. Those outputs are of course connected and on
+(i.e. they have a CRTC assigned).
+
+
+
+
+
+
+
+
+
+
+
+ the output configuration for this #GnomeRRConfig
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ the current mode of this crtc
+
+
+
+
+ a #GnomeRRCrtc
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ %TRUE for success
+
+
+
+
+ a #GnomeRRCrtc
+
+
+
+
+
+
+ the minimum width
+
+
+
+ the maximum width
+
+
+
+ the minimum height
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ a #GnomeRRCrtc
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns TRUE if this mode is a tiled
+mode created for span a tiled monitor.
+
+
+
+
+
+
+ a #GnomeRRMode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The currently set backlight brightness
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ a #GnomeRROutput
+
+
+
+
+
+
+
+ the current mode of this output
+
+
+
+
+ a #GnomeRROutput
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ a #GnomeRROutput
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The minimum backlight step available in percent
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ a #GnomeRROutput
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ a #GnomeRROutput
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ a #GnomeRROutput
+
+
+
+
+
+
+
+
+
+
+
+ a #GnomeRROutput
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ a #GnomeRROutput
+
+
+
+
+
+
+
+ %TRUE for success
+
+
+
+
+
+
+
+ the absolute value which is 0 >= this <= 100
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ the display name of this output
+
+
+
+
+
+
+
+
+
+ Get the geometry for the monitor connected to the specified output.
+If the monitor is a tiled monitor, it returns the geometry for the complete monitor.
+
+
+
+
+
+
+ a #GnomeRROutputInfo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ the output name
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ a #GnomeRROutputInfo
+
+
+
+
+
+
+
+ whether there is a CRTC assigned to this output (i.e. a signal is being sent to it)
+
+
+
+
+
+
+
+
+
+
+
+ whether the output is physically connected to a monitor
+
+
+
+
+
+
+
+
+
+
+
+ %TRUE if the specified output is connected to
+the primary tile of a monitor or to an untiled monitor,
+%FALSE if the output is connected to a secondary tile.
+
+
+
+
+ a #GnomeRROutputInfo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Set the geometry for the monitor connected to the specified output.
+If the monitor is a tiled monitor, it sets the geometry for the complete monitor.
+
+
+
+
+
+
+ a #GnomeRROutputInfo
+
+
+
+ x offset for monitor
+
+
+
+ y offset for monitor
+
+
+
+ monitor width
+
+
+
+ monitor height
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates a unique #GnomeRRScreen instance for the specified @screen.
+
+
+ a unique #GnomeRRScreen instance, specific to the @screen, or NULL
+if this could not be created, for instance if the driver does not support
+Xrandr 1.2. Each #GdkScreen thus has a single instance of #GnomeRRScreen.
+
+
+
+
+ the #GdkScreen on which to operate
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ the CRTC identified by @id
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The current #GnomeRRDpmsMode of this screen
+
+
+
+
+
+
+
+ the output identified by @id
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ the output identified by @name
+
+
+
+
+
+
+
+
+
+
+
+
+ Get the ranges of the screen
+
+
+
+
+
+
+ a #GnomeRRScreen
+
+
+
+ the minimum width
+
+
+
+ the maximum width
+
+
+
+ the minimum height
+
+
+
+ the maximum height
+
+
+
+
+
+ List available XRandR clone modes
+
+
+
+
+
+
+
+
+
+
+
+
+
+ List all CRTCs
+
+
+
+
+
+
+
+
+
+
+
+
+
+ List available XRandR modes
+
+
+
+
+
+
+
+
+
+
+
+
+
+ List all outputs
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Refreshes the screen configuration, and calls the screen's callback if it
+exists and if the screen's configuration changed.
+
+
+ TRUE if the screen's configuration changed; otherwise, the
+function returns FALSE and a NULL error if the configuration didn't change,
+or FALSE and a non-NULL error if there was an error while refreshing the
+configuration.
+
+
+
+
+ a #GnomeRRScreen
+
+
+
+
+
+ This method also disables the DPMS timeouts.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This signal is emitted when a display device is connected to a
+port, or a port is hotplugged with an active output. The latter
+can happen if a laptop is docked, and the dock provides a new
+active output.
+
+The @output value is not a #GObject. The returned @output value can
+only assume to be valid during the emission of the signal (i.e. within
+your signal handler only), as it may change later when the @screen
+is modified due to an event from the X server, or due to another
+place in the application modifying the @screen and the @output.
+Therefore, deal with changes to the @output right in your signal
+handler, instead of keeping the @output reference for an async or
+idle function.
+
+
+
+
+
+ the #GnomeRROutput that was connected
+
+
+
+
+
+ This signal is emitted when a display device is disconnected from
+a port, or a port output is hot-unplugged. The latter can happen
+if a laptop is undocked, and the dock provided the output.
+
+The @output value is not a #GObject. The returned @output value can
+only assume to be valid during the emission of the signal (i.e. within
+your signal handler only), as it may change later when the @screen
+is modified due to an event from the X server, or due to another
+place in the application modifying the @screen and the @output.
+Therefore, deal with changes to the @output right in your signal
+handler, instead of keeping the @output reference for an async or
+idle function.
+
+
+
+
+
+ the #GnomeRROutput that was disconnected
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates a new #GnomeWallClock
+
+
+ the new clock
+
+
+
+
+ Returns the string representing the current time of this clock
+according to the user settings.
+
+
+ the time of the clock as a string.
+ This string points to internally allocated storage and
+ must not be freed, modified or stored.
+
+
+
+
+ a #GnomeWallClock
+
+
+
+
+
+ Returns the current local time zone used by this clock.
+
+
+ the #GTimeZone of the clock.
+
+
+
+
+ a #GnomeWallClock
+
+
+
+
+
+
+
+ a newly allocated string representing the date & time
+passed, with the options applied.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A formatted string representing the current clock display.
+
+
+
+ If %TRUE, the formatted clock will always have seconds precision and the
+'clock' property will always be updated every second, irrespective of
+system configuration.
+
+
+
+ If %TRUE, the formatted clock will never include a date or the
+day of the week, irrespective of configuration.
+
+
+
+ The timezone used for this clock
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ a new #GnomeXkbInfo instance.
+
+
+
+
+
+
+ the translated description for the group @group_id.
+
+
+
+
+ a #GnomeXkbInfo
+
+
+
+ identifier for group
+
+
+
+
+
+
+
+ the translated description for the option @id.
+
+
+
+
+ a #GnomeXkbInfo
+
+
+
+ identifier for group containing the option
+
+
+
+ option identifier
+
+
+
+
+
+ Returns a list of all layout identifiers we know about.
+
+
+ the list
+of layout names. The caller takes ownership of the #GList but not
+of the strings themselves, those are internally allocated and must
+not be modified.
+
+
+
+
+
+
+ a #GnomeXkbInfo
+
+
+
+
+
+ Returns a list of all option group identifiers we know about.
+
+
+ the list
+of option group ids. The caller takes ownership of the #GList but
+not of the strings themselves, those are internally allocated and
+must not be modified.
+
+
+
+
+
+
+ a #GnomeXkbInfo
+
+
+
+
+
+ Returns a list of all languages supported by a layout, given by
+@layout_id.
+
+
+ the list of
+ISO 639 code strings. The caller takes ownership of the #GList but
+not of the strings themselves, those are internally allocated and
+must not be modified.
+
+
+
+
+
+
+ a #GnomeXkbInfo
+
+
+
+ a layout identifier
+
+
+
+
+
+ Retrieves information about a layout. Both @display_name and
+@short_name are suitable to show in UIs and might be localized if
+translations are available.
+
+Some layouts don't provide a short name (2 or 3 letters) or don't
+specify a XKB variant, in those cases @short_name or @xkb_variant
+are empty strings, i.e. "".
+
+If the given layout doesn't exist the return value is %FALSE and
+all the (out) parameters are set to %NULL.
+
+
+ %TRUE if the layout exists or %FALSE otherwise.
+
+
+
+
+ a #GnomeXkbInfo
+
+
+
+ layout's identifier about which to retrieve the info
+
+
+
+ location to store
+the layout's display name, or %NULL
+
+
+
+ location to store
+the layout's short name, or %NULL
+
+
+
+ location to store
+the layout's XKB name, or %NULL
+
+
+
+ location to store
+the layout's XKB variant, or %NULL
+
+
+
+
+
+ Returns a list of all layout identifiers we know about for
+@country_code.
+
+
+ the list
+of layout ids. The caller takes ownership of the #GList but not of
+the strings themselves, those are internally allocated and must not
+be modified.
+
+
+
+
+
+
+ a #GnomeXkbInfo
+
+
+
+ an ISO 3166 code string
+
+
+
+
+
+ Returns a list of all layout identifiers we know about for
+@language_code.
+
+
+ the list
+of layout ids. The caller takes ownership of the #GList but not of
+the strings themselves, those are internally allocated and must not
+be modified.
+
+
+
+
+
+
+ a #GnomeXkbInfo
+
+
+
+ an ISO 639 code string
+
+
+
+
+
+ Returns a list of all option identifiers we know about for group
+@group_id.
+
+
+ the list
+of option ids. The caller takes ownership of the #GList but not of
+the strings themselves, those are internally allocated and must not
+be modified.
+
+
+
+
+
+
+ a #GnomeXkbInfo
+
+
+
+ group's identifier about which to retrieve the options
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns whether the thumbnail has the correct uri and mtime embedded in the
+png options. This function is threadsafe and does no blocking I/O.
+
+
+ TRUE if the thumbnail has the right @uri and @mtime
+
+
+
+
+ an loaded thumbnail #GdkPixbuf
+
+
+
+ a uri
+
+
+
+ the mtime
+
+
+
+
+
+ Returns the filename that a thumbnail of size @size for @uri would have.
+This function is threadsafe and does no blocking I/O.
+
+
+ an absolute filename
+
+
+
+
+ an uri
+
+
+
+ a thumbnail size
+
+
+
+
+
+ Gets all locales.
+
+
+
+ a newly allocated %NULL-terminated string array containing the
+ all locales. Free with g_strfreev().
+
+
+
+
+
+
+ Gets the country name for @code. If @translation is provided the
+returned string is translated accordingly.
+
+
+ the country name. Caller takes
+ownership.
+
+
+
+
+ an ISO 3166 code string
+
+
+
+ a locale string
+
+
+
+
+
+ Gets the country description for @locale. If @translation is
+provided the returned string is translated accordingly.
+
+
+ the country description. Caller
+takes ownership.
+
+
+
+
+ a locale string
+
+
+
+ a locale string
+
+
+
+
+
+ Gets the default input source's type and identifier for a given
+locale.
+
+
+ %TRUE if a input source exists or %FALSE otherwise.
+
+
+
+
+ a locale string
+
+
+
+ location to store the input source
+type
+
+
+
+ location to store the input source
+identifier
+
+
+
+
+
+ Gets the language name for @code. If @translation is provided the
+returned string is translated accordingly.
+
+
+ the language name. Caller takes
+ownership.
+
+
+
+
+ an ISO 639 code string
+
+
+
+ a locale string
+
+
+
+
+
+ Gets the language description for @locale. If @translation is
+provided the returned string is translated accordingly.
+
+
+ the language description. Caller
+takes ownership.
+
+
+
+
+ a locale string
+
+
+
+ a locale string
+
+
+
+
+
+ Returns an integer with the major version of GNOME. Useful for
+dynamic languages like Javascript or Python (static languages like
+C should use %GNOME_DESKTOP_PLATFORM_VERSION). If this
+function doesn't exist, it can be presumed that the GNOME platform
+version is 42 or previous.
+
+
+ an integer with the major version of GNOME.
+
+
+
+
+ Gets a translation of the raw @modifier string. If @translation
+is provided the returned string is translated accordingly.
+
+
+ the translated modifier string.
+Caller takes ownership.
+
+
+
+
+ the modifier part of a locale name
+
+
+
+ a locale string
+
+
+
+
+
+ #GnomeDesktopThumbnailFactory allows generation and loading of thumbnails for
+local and remote files and directories. It uses a collection of programs
+called <firstterm>thumbnailers</firstterm>, each one generating thumbnails
+for a specific set of content-types of files. For example,
+<application>totem-video-thumbnailer</application> generates thumbnails for
+video files using GStreamer; <application>evince-thumbnailer</application>
+generates thumbnails for PDFs and other document files. If no specific
+thumbnailer exists for a file, or if the thumbnailer fails, gdk-pixbuf is
+used as a fallback.
+
+To generate a thumbnail, an appropriate thumbnailer program is selected then
+executed, passing it the URI of the file to thumbnail, plus a path to write
+the thumbnail image to. If thumbnailing succeeds, the thumbnailer should have
+written the image to disk before terminating; but if thumbnailing fails, no
+image should be written, and the thumbnailer should return a non-zero exit
+status. #GnomeDesktopThumbnailFactory will then fall back to using gdk-pixbuf
+to generate a thumbnail, if possible.
+
+Thumbnailers are chosen by examining a series of
+<filename>.thumbnailer</filename> files in
+<filename><replaceable>$PREFIX</replaceable>/share/thumbnailers</filename>.
+Each is in a simple key-file format:
+<informalexample><programlisting>
+[Thumbnailer Entry]
+Exec=evince-thumbnailer -s %s %u %o
+MimeType=application/pdf;application/x-bzpdf;application/x-gzpdf;
+</programlisting></informalexample>
+
+The <filename>.thumbnailer</filename> format supports three keys:
+<variablelist>
+<varlistentry><term><code>Exec</code></term><listitem><para>
+Required. The command to execute the thumbnailer. It supports a few different
+parameters which are replaced before calling the thumbnailer:
+<replaceable>%u</replaceable> is the URI of the file being thumbnailed;
+<replaceable>%i</replaceable> is its path; <replaceable>%o</replaceable>
+is the path of the image file to be written to;
+<replaceable>%s</replaceable> is the maximum desired size of the thumbnail
+image (the maximum width or height, in pixels); and
+<replaceable>%%</replaceable> is a literal percent character.
+</para></listitem></varlistentry>
+<varlistentry><term><code>MimeType</code></term><listitem><para>
+Required. A semicolon-separated list of MIME types which the thumbnailer
+supports generating thumbnails for.
+</para></listitem></varlistentry>
+</variablelist>
+
+So in the example <filename>.thumbnailer</filename> file above, the command
+passes the requested thumbnail size, then the input file’s URI, then the
+path for the output image file to
+<application>evince-thumbnailer</application>.
+
+The code to examine and call a thumbnailer is contained in
+#GnomeDesktopThumbnailFactory, which handles looking up the right thumbnailer
+script, building and executing the command for it, and loading the resulting
+thumbnail image into a #GdkPixbuf.
+
+Thumbnail caching is also supported by #GnomeDesktopThumbnailFactory. When
+calling a thumbnailer, the path passed for the output image file is in
+<filename><envar>$XDG_CACHE_HOME</envar>/thumbnails/
+<replaceable>$SIZE</replaceable>/</filename>. The cached image file is given
+a (probably) unique filename, generated by hashing the original file’s URI,
+so the thumbnail can be looked up in future. #GnomeDesktopThumbnailFactory
+supports two sizes of thumbnails: %GNOME_DESKTOP_THUMBNAIL_SIZE_NORMAL and
+%GNOME_DESKTOP_THUMBNAIL_SIZE_LARGE. Normal thumbnails are up to 128×128
+pixels, whereas large thumbnails are up to 256×256 pixels. Thumbnails which
+are larger than this are scaled down before being cached, and non-square
+thumbnails are scaled so their largest dimension is at most 128 or 256
+pixels.
+
+#GnomeDesktopThumbnailFactory also handles failed thumbnails. If a
+thumbnailer can’t generate a thumbnail for a file (e.g. because the file is
+corrupt or because the right video codecs aren’t available), it returns a
+non-zero exit status. The thumbnail factory then writes an entry to
+<filename><envar>$XDG_CACHE_HOME</envar>/thumbnails/fail/
+gnome-thumbnail-factory/</filename> which is named after the hash of the
+input file URI (just like a successful cached thumbnail). For future queries
+for thumbnails for that file, #GnomeDesktopThumbnailFactory can immediately
+return an error after looking up the fail entry.
+
+If a file changes content, #GnomeDesktopThumbnailFactory will generate a new
+thumbnail because each cached image has associated metadata (stored as PNG
+tEXt keys) storing the full URI of the thumbnailed file (to check for hash
+collisions) and its last modification time at the point of thumbnailing. If
+the stored modification time doesn’t match the file’s current one, a new
+thumbnail is generated.
+
+
+ Returns %TRUE if there are translations for language @code.
+
+
+ %TRUE if there are translations for language @code.
+
+
+
+
+ an ISO 639 code string
+
+
+
+
+
+ Gets the normalized locale string in the form
+[language[_country][.codeset][@modifier]] for @name.
+
+
+ normalized locale string. Caller
+takes ownership.
+
+
+
+
+ a locale string
+
+
+
+
+
+ Extracts the various components of a locale string in XPG format.
+([language[_country][.codeset][@modifier]]). See
+http://en.wikipedia.org/wiki/Locale.
+
+
+ %TRUE if parsing was successful.
+
+
+
+
+ a locale string
+
+
+
+ location to
+store the language code, or %NULL
+
+
+
+ location to
+store the country code, or %NULL
+
+
+
+ location to
+store the codeset, or %NULL
+
+
+
+ location to
+store the modifier, or %NULL
+
+
+
+
+
+ Returns the #GQuark that will be used for #GError values returned by the
+GnomeRR API.
+
+ a #GQuark used to identify errors coming from the GnomeRR API.
+
+
+
+
+ If the current process is running inside a user systemd instance, then move
+the launched PID into a transient scope. The given @name will be used to
+create a unit name. It should be the application ID or the executable in all
+other cases. If a desktop-id is passed then the .desktop suffix will be
+stripped.
+
+It is advisable to use this function every time where the started application
+can be considered reasonably independent of the launching application. Placing
+it in a scope creates proper separation between the programs rather than being
+considered a single entity by systemd.
+
+It is always safe to call this function. Note that a successful return code
+does not imply that a unit has been created. It solely means that no error
+condition was hit sending the request.
+
+If @connection is %NULL then g_dbus_get() will be called internally.
+
+Note that most callers will not need to handle errors. As such, it is normal
+to pass a %NULL @callback.
+
+
+
+
+
+
+ Name for the application
+
+
+
+ The PID of the application
+
+
+
+ A description to use for the unit, or %NULL
+
+
+
+ An #GDBusConnection to the session bus, or %NULL
+
+
+
+ #GCancellable to use
+
+
+
+ Callback to call when the operation is done
+
+
+
+ Data to be passed to @callback
+
+
+
+
+
+ Finish an asynchronous operation to create a transient scope that was
+started with gnome_start_systemd_scope().
+
+Note that a successful return code does not imply that a unit has been
+created. It solely means that no error condition was hit sending the request.
+
+
+ %FALSE on error, %TRUE otherwise
+
+
+
+
+ A #GAsyncResult
+
+
+
+
+
+
diff --git a/libphosh-rs/Handy-1.gir b/libphosh-rs/Handy-1.gir
new file mode 100644
index 000000000..dacab264b
--- /dev/null
+++ b/libphosh-rs/Handy-1.gir
@@ -0,0 +1,17212 @@
+
+
+
+
+
+
+
+
+
+ A [class@Gtk.ListBoxRow] used to present actions.
+
+The `HdyActionRow` widget can have a title, a subtitle and an icon. The row
+can receive additional widgets at its end, or prefix widgets at its start.
+
+It is convenient to present a preference and its related actions.
+
+`HdyActionRow` is unactivatable by default, giving it an activatable widget
+will automatically make it activatable, but unsetting it won't change the
+row's activatability.
+
+## HdyActionRow as GtkBuildable
+
+The `HdyActionRow` implementation of the [iface@Gtk.Buildable] interface
+supports adding a child at its end by specifying “suffix” or omitting the
+“type” attribute of a <child> element.
+
+It also supports adding a child as a prefix widget by specifying “prefix” as
+the “type” attribute of a <child> element.
+
+## CSS nodes
+
+`HdyActionRow` has a main CSS node with name `row`.
+
+It contains the subnode `box.header` for its main horizontal box, and
+`box.title` for the vertical box containing the title and subtitle labels.
+
+It contains subnodes `label.title` and `label.subtitle` representing
+respectively the title label and subtitle label.
+
+
+
+
+
+ Creates a new `HdyActionRow`.
+
+
+ the newly created `HdyActionRow`
+
+
+
+
+ Activates @self.
+
+
+
+
+
+
+ an action row
+
+
+
+
+
+ Activates @self.
+
+
+
+
+
+
+ an action row
+
+
+
+
+
+ Adds a prefix widget to @self.
+
+
+
+
+
+
+ an action row
+
+
+
+ the prefix widget
+
+
+
+
+
+
+ Gets the widget activated when @self is activated.
+
+
+ the activatable widget for @self
+
+
+
+
+ an action row
+
+
+
+
+
+
+ Gets the icon name for @self.
+
+
+ the icon name for @self
+
+
+
+
+ an action row
+
+
+
+
+
+
+ Gets the subtitle for @self.
+
+
+ the subtitle for @self
+
+
+
+
+ an action row
+
+
+
+
+
+
+ Gets the number of lines at the end of which the subtitle label will be
+ellipsized.
+
+If the value is 0, the number of lines won't be limited.
+
+
+ the number of lines at the end of which the subtitle label will be
+ ellipsized
+
+
+
+
+ an action row
+
+
+
+
+
+
+ Gets the number of lines at the end of which the title label will be
+ellipsized.
+
+If the value is 0, the number of lines won't be limited.
+
+
+ the number of lines at the end of which the title label will be
+ ellipsized
+
+
+
+
+ an action row
+
+
+
+
+
+
+ Gets whether an embedded underline in the title or subtitle indicates a
+mnemonic.
+
+
+ whether an embedded underline in the title or subtitle indicates a
+ mnemonic
+
+
+
+
+ an action row
+
+
+
+
+
+
+ Sets the widget to activate when @self is activated.
+
+
+
+
+
+
+ an action row
+
+
+
+ the target widget
+
+
+
+
+
+
+ Sets the icon name for @self.
+
+
+
+
+
+
+ an action row
+
+
+
+ the icon name
+
+
+
+
+
+
+ Sets the subtitle for @self.
+
+
+
+
+
+
+ an action row
+
+
+
+ the subtitle
+
+
+
+
+
+
+ Sets the number of lines at the end of which the subtitle label will be
+ellipsized.
+
+If the value is 0, the number of lines won't be limited.
+
+
+
+
+
+
+ an action row
+
+
+
+ the number of lines at the end of which the subtitle label will be ellipsized
+
+
+
+
+
+
+ Sets the number of lines at the end of which the title label will be
+ellipsized.
+
+If the value is 0, the number of lines won't be limited.
+
+
+
+
+
+
+ an action row
+
+
+
+ the number of lines at the end of which the title label will be ellipsized
+
+
+
+
+
+
+ Sets whether an embedded underline in the title or subtitle indicates a
+mnemonic.
+
+
+
+
+
+
+ an action row
+
+
+
+ `TRUE` if underlines in the text indicate mnemonics
+
+
+
+
+
+
+
+ The activatable widget for this row.
+
+The widget is activated, either by clicking on it, by calling
+[method@ActionRow.activate], or via mnemonics in the title or the subtitle.
+See the [property@ActionRow:use-underline] property to enable mnemonics.
+
+The target widget will be activated by emitting the
+[signal@Gtk.Widget::mnemonic-activate] signal on it.
+
+
+
+
+
+ The icon name for this row.
+
+
+
+
+
+ The subtitle for this row.
+
+
+
+
+
+ The number of lines at the end of which the subtitle label will be
+ellipsized.
+
+If the value is 0, the number of lines won't be limited.
+
+
+
+
+
+ The number of lines at the end of which the title label will be ellipsized.
+
+If the value is 0, the number of lines won't be limited.
+
+
+
+
+
+ Whether embedded underlines in the title or subtitle indicates a mnemonic.
+
+If true, an underline in the text of the title or subtitle labels indicates
+the next character should be used for the mnemonic accelerator key.
+
+
+
+
+
+
+ This signal is emitted after the row has been activated.
+
+
+
+
+
+
+
+
+ the parent class
+
+
+
+
+
+
+
+
+
+
+ an action row
+
+
+
+
+
+
+
+
+
+
+
+
+ A freeform application window.
+
+`HdyApplicationWindow` is a [class@Gtk.ApplicationWindow] subclass providing
+the same features as [class@Window].
+
+See [class@Window] for details.
+
+Using [method@Gtk.Application.set_app_menu] and
+[method@Gtk.Application.set_menubar] is not supported and may result in
+visual glitches.
+
+
+
+
+
+
+ Creates a new `HdyApplicationWindow`.
+
+
+ the newly created `HdyApplicationWindow`
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A widget displaying an image, with a generated fallback.
+
+`HdyAvatar` is a widget to display a round avatar.
+
+A provided image is made round before displaying, if no image is given this
+widget generates a round fallback with the initials of the
+[property@Avatar:text] on top of a colored background.
+
+The color is picked based on the hash of the [property@Avatar:text].
+
+If [property@Avatar:show-initials] is set to `FALSE`,
+`avatar-default-symbolic` is shown instead of the initials.
+
+Use [method@Avatar.set_loadable_icon] or [property@Avatar:loadable-icon] to
+set a custom image.
+
+## CSS nodes
+
+`HdyAvatar` has a single CSS node with name `avatar`.
+
+
+
+
+ Creates a new `HdyAvatar`.
+
+
+ the newly created `HdyAvatar`
+
+
+
+
+ the size of the avatar
+
+
+
+ the text used to get the initials and color
+
+
+
+ whether to use initials instead of an icon as fallback
+
+
+
+
+
+ Renders @self into a [class@GdkPixbuf.Pixbuf] at @size and @scale_factor.
+
+This can be used to export the fallback avatar.
+
+
+ the pixbuf
+
+
+
+
+ an avatar
+
+
+
+ the size of the pixbuf
+
+
+
+ the scale factor
+
+
+
+
+
+ Renders asynchronously @self into a pixbuf at @size and @scale_factor.
+
+This can be used to export the fallback avatar.
+
+
+
+
+
+
+ an avatar
+
+
+
+ the size of the pixbuf
+
+
+
+ the scale factor
+
+
+
+ a cancellable
+
+
+
+ a [callback@Gio.AsyncReadyCallback] to call when
+ the avatar is generated
+
+
+
+ the data to pass to callback function
+
+
+
+
+
+ Finishes an asynchronous draw of an avatar to a pixbuf.
+
+
+ the resulting pixbuf
+
+
+
+
+ an avatar
+
+
+
+ a [iface@Gio.AsyncResult]
+
+
+
+
+
+
+ Gets the name of an icon to use as a fallback.
+
+
+ the icon name
+
+
+
+
+ an avatar
+
+
+
+
+
+
+ Gets the [iface@Gio.LoadableIcon] set via [method@Avatar.set_loadable_icon].
+
+
+ the [iface@Gio.LoadableIcon]
+
+
+
+
+ an avatar
+
+
+
+
+
+
+ Gets whether initials are used instead of an icon on the fallback avatar.
+
+
+ whether initials are used instead of an icon as fallback
+
+
+
+
+ an avatar
+
+
+
+
+
+
+ Gets the size of the avatar.
+
+
+ the size of the avatar
+
+
+
+
+ an avatar
+
+
+
+
+
+
+ Gets the text used to generate the fallback initials and color.
+
+
+ the text used to generate the fallback initials and
+ color
+
+
+
+
+ an avatar
+
+
+
+
+
+
+ Sets the name of an icon to use as a fallback.
+
+If no name is set, `avatar-default-symbolic` will be used.
+
+
+
+
+
+
+ an avatar
+
+
+
+ the name of the icon from the icon theme
+
+
+
+
+
+ A callback which is called when the custom image needs to be reloaded.
+
+It will be called on [property@Avatar:size] or
+[property@Gtk.Widget:scale-factor] changes.
+ use [method@Avatar.set_loadable_icon] instead.
+
+
+
+
+
+
+ an avatar
+
+
+
+ callback to set a custom image
+
+
+
+ user data passed to @load_image
+
+
+
+ destroy notifier for @user_data
+
+
+
+
+
+
+ Sets the [iface@Gio.LoadableIcon] to use as an avatar.
+
+The previous avatar is displayed till the new avatar is loaded, to
+immediately remove the custom avatar set the loadable-icon to `NULL`.
+
+The [iface@Gio.LoadableIcon] set via this function is preferred over a set
+[callback@AvatarImageLoadFunc].
+
+
+
+
+
+
+ an avatar
+
+
+
+ a [iface@Gio.LoadableIcon]
+
+
+
+
+
+
+ Sets whether to use initials instead of an icon on the fallback avatar.
+
+
+
+
+
+
+ an avatar
+
+
+
+ whether to use initials instead of an icon as fallback
+
+
+
+
+
+
+ Sets the size of the avatar.
+
+
+
+
+
+
+ an avatar
+
+
+
+ the size to be used for the avatar
+
+
+
+
+
+
+ Set the text used to generate the fallback initials color.
+
+
+
+
+
+
+ an avatar
+
+
+
+ the text used to get the initials and color
+
+
+
+
+
+
+
+ The name of an icon to use as a fallback.
+
+If no name is set, the avatar-default-symbolic icon will be used. If the
+name doesn't match a valid icon, it is an error and no icon will be
+displayed. If the icon theme is changed, the image will be updated
+automatically.
+
+
+
+
+
+ A [iface@Gio.LoadableIcon] used to load the avatar.
+
+
+
+
+
+ Whether to show the initials or the fallback icon on the generated avatar.
+
+
+
+
+
+ The avatar size of the avatar.
+
+
+
+
+
+ Sets the text used to generate the fallback initials and color.
+
+It's only used to generate the color if [property@Avatar:show-initials] is
+`FALSE`.
+
+
+
+
+
+
+
+
+
+
+ Callback for loading an [class@Avatar]'s image.
+
+The returned [class@GdkPixbuf.Pixbuf] is expected to be square with width and
+height set to @size. The image is cropped to a circle without any scaling or
+transformation.
+ use [method@Avatar.set_loadable_icon] instead.
+
+
+ the pixbuf to use as a custom avatar or
+ `NULL` to fallback to the generated avatar
+
+
+
+
+ the required size of the avatar
+
+
+
+ user data
+
+
+
+
+
+ A paginated scrolling widget.
+
+The `HdyCarousel` widget can be used to display a set of pages with
+swipe-based navigation between them.
+
+[class@CarouselIndicatorDots] and [class@CarouselIndicatorLines] can be used
+to provide page indicators for `HdyCarousel`.
+
+## CSS nodes
+
+`HdyCarousel` has a single CSS node with name `carousel`.
+
+
+
+
+
+
+ Creates a new `HdyCarousel`.
+
+
+ the newly created `HdyCarousel`
+
+
+
+
+
+ Gets whether to allow swiping for more than one page at a time.
+
+
+ `TRUE` if long swipes are allowed
+
+
+
+
+ a carousel
+
+
+
+
+
+
+ Sets whether @self can be dragged with mouse pointer.
+
+
+ `TRUE` if @self can be dragged with mouse
+
+
+
+
+ a carousel
+
+
+
+
+
+
+ Gets whether @self will respond to scroll wheel events.
+
+
+ `TRUE` if @self will respond to scroll wheel events
+
+
+
+
+ a carousel
+
+
+
+
+
+
+ Gets animation duration used by [method@Carousel.scroll_to].
+
+
+ animation duration, in milliseconds
+
+
+
+
+ a carousel
+
+
+
+
+
+
+ Gets whether @self can be navigated.
+
+
+ `TRUE` if @self can be swiped
+
+
+
+
+ a carousel
+
+
+
+
+
+
+ Gets the number of pages in @self.
+
+
+ the number of pages in @self
+
+
+
+
+ a carousel
+
+
+
+
+
+
+ Gets current scroll position in @self. It's unitless, 1 matches 1 page.
+
+
+ the scroll position
+
+
+
+
+ a carousel
+
+
+
+
+
+
+ Gets duration of the animation used when adding or removing pages, in
+milliseconds.
+
+
+ the duration
+
+
+
+
+ a carousel
+
+
+
+
+
+
+ Gets spacing between pages in pixels.
+
+
+ spacing between pages
+
+
+
+
+ a carousel
+
+
+
+
+
+ Inserts @child into @self at position @position.
+
+If position is -1, or larger than the number of pages, @child will be
+appended to the end.
+
+
+
+
+
+
+ a carousel
+
+
+
+ a widget to add
+
+
+
+ the position to insert @child in
+
+
+
+
+
+ Prepends @child to @self.
+
+
+
+
+
+
+ a carousel
+
+
+
+ a widget to add
+
+
+
+
+
+ Moves @child into position @position.
+
+If position is -1, or larger than the number of pages, @child will be moved
+to the end.
+
+
+
+
+
+
+ a carousel
+
+
+
+ a widget to add
+
+
+
+ the position to move @child to
+
+
+
+
+
+ Scrolls to @widget position with an animation.
+
+[property@Carousel:animation-duration] property can be used for controlling
+the duration.
+
+
+
+
+
+
+ a carousel
+
+
+
+ a child of @self
+
+
+
+
+
+ Scrolls to @widget position with an animation.
+
+
+
+
+
+
+ a carousel
+
+
+
+ a child of @self
+
+
+
+ animation duration, in milliseconds
+
+
+
+
+
+
+ Sets whether to allow swiping for more than one page at a time.
+
+
+
+
+
+
+ a carousel
+
+
+
+ whether to allow long swipes
+
+
+
+
+
+
+ Sets whether @self can be dragged with mouse pointer.
+
+If @allow_mouse_drag is `FALSE`, dragging is only available on touch.
+
+
+
+
+
+
+ a carousel
+
+
+
+ whether @self can be dragged with mouse pointer
+
+
+
+
+
+
+ Sets whether @self will respond to scroll wheel events.
+
+
+
+
+
+
+ a carousel
+
+
+
+ whether @self will respond to scroll wheel events
+
+
+
+
+
+
+ Sets animation duration used by [method@Carousel.scroll_to].
+
+
+
+
+
+
+ a carousel
+
+
+
+ animation duration, in milliseconds
+
+
+
+
+
+
+ Sets whether @self can be navigated.
+
+This can be used to temporarily disable a [class@Carousel] to only allow
+swiping in a certain state.
+
+
+
+
+
+
+ a carousel
+
+
+
+ whether @self can be swiped
+
+
+
+
+
+
+ Sets duration of the animation used when adding or removing pages, in
+milliseconds.
+
+
+
+
+
+
+ a carousel
+
+
+
+ the new reveal duration value
+
+
+
+
+
+
+ Sets spacing between pages in pixels.
+
+
+
+
+
+
+ a carousel
+
+
+
+ the new spacing value
+
+
+
+
+
+
+
+ Whether to allow swiping for more than one page at a time.
+
+If the value is `FALSE`, each swipe can only move to the adjacent pages.
+
+
+
+
+
+ Sets whether the [class@Carousel] can be dragged with mouse pointer.
+
+If the value is `FALSE`, dragging is only available on touch.
+
+
+
+
+
+ Whether the widget will respond to scroll wheel events.
+
+If the value is `FALSE`, wheel events will be ignored.
+
+
+
+
+
+ Animation duration used by [method@Carousel.scroll_to], in milliseconds.
+
+
+
+
+
+ Whether the carousel can be navigated.
+
+This can be used to temporarily disable a `HdyCarousel` to only allow
+navigating it in a certain state.
+
+
+
+
+ The number of pages in a [class@Carousel].
+
+
+
+
+ Current scrolling position, unitless.
+
+1 matches 1 page. Use [method@Carousel.scroll_to] for changing it.
+
+
+
+
+
+ Page reveal duration, in milliseconds.
+
+
+
+
+
+ Spacing between pages in pixels.
+
+
+
+ This signal is emitted after a page has been changed.
+
+It can be used to implement "infinite scrolling" by amending the pages
+after every scroll.
+
+
+
+
+
+ the current page
+
+
+
+
+
+
+
+
+
+
+
+
+ A dots indicator for [class@Carousel].
+
+The `HdyCarouselIndicatorDots` widget shows a set of dots for each page of a
+given [class@Carousel]. The dot representing the carousel's active page is
+larger and more opaque than the others, the transition to the active and
+inactive state is gradual to match the carousel's position.
+
+See also [class@CarouselIndicatorLines].
+
+## CSS nodes
+
+`HdyCarouselIndicatorDots` has a single CSS node with name
+`carouselindicatordots`.
+
+
+
+
+
+ Creates a new `HdyCarouselIndicatorDots`.
+
+
+ The newly created `HdyCarouselIndicatorDots`
+
+
+
+
+
+ Get the [class@Carousel] the indicator uses.
+
+
+ the [class@Carousel]
+
+
+
+
+ an indicator
+
+
+
+
+
+
+ Sets the [class@Carousel] to use.
+
+
+
+
+
+
+ an indicator
+
+
+
+ a carousel
+
+
+
+
+
+
+
+ The [class@Carousel] the indicator uses.
+
+
+
+
+
+
+
+
+
+
+ A lines indicator for [class@Carousel].
+
+The `HdyCarouselIndicatorLines` widget shows a set of lines for each page of
+a given [class@Carousel]. The carousel's active page is shown as another line
+that moves between them to match the carousel's position.
+
+See also [class@CarouselIndicatorDots].
+
+## CSS nodes
+
+`HdyCarouselIndicatorLines` has a single CSS node with name
+`carouselindicatorlines`.
+
+
+
+
+
+ Creates a new `HdyCarouselIndicatorLines`.
+
+
+ the newly created `HdyCarouselIndicatorLines`
+
+
+
+
+
+ Gets the displayed carousel.
+
+
+ the displayed carousel
+
+
+
+
+ an indicator
+
+
+
+
+
+
+ Sets the [class@Carousel] to use.
+
+
+
+
+
+
+ an indicator
+
+
+
+ a carousel
+
+
+
+
+
+
+
+ The displayed carousel.
+
+
+
+
+
+
+
+
+
+
+ Describes title centering behavior of a [class@HeaderBar] widget.
+
+ Keep the title centered when possible
+
+
+ Keep the title centered at all cost
+
+
+
+ A widget constraining its child to a given size.
+
+The `HdyClamp` widget constrains the size of the widget it contains to a
+given maximum size. It will constrain the width if it is horizontal, or the
+height if it is vertical. The expansion of the child from its minimum to its
+maximum size is eased out for a smooth transition.
+
+If the child requires more than the requested maximum size, it will be
+allocated the minimum size it can fit in instead.
+
+## CSS nodes
+
+`HdyClamp` has a single CSS node with name `clamp`.
+
+The node will get the style classes `.large` when its child reached its
+maximum size, `.small` when the clamp allocates its full size to its child,
+`.medium` in-between, or none if it didn't compute its size yet.
+
+
+
+
+
+ Creates a new `HdyClamp`.
+
+
+ the newly created `HdyClamp`
+
+
+
+
+
+ Gets the maximum size allocated to the children.
+
+
+ the maximum size to allocate to the children
+
+
+
+
+ a clamp
+
+
+
+
+
+
+ Gets the size above which the children are clamped.
+
+
+ the size above which the children are clamped
+
+
+
+
+ a clamp
+
+
+
+
+
+
+ Sets the maximum size allocated to the children.
+
+
+
+
+
+
+ a clamp
+
+
+
+ the maximum size
+
+
+
+
+
+
+ Sets the size above which the children are clamped.
+
+
+
+
+
+
+ a clamp
+
+
+
+ the tightening threshold
+
+
+
+
+
+
+
+ The maximum size to allocate the children.
+
+It is the width if the clamp is horizontal, or the height if it is
+vertical.
+
+
+
+
+
+ The size above which the child is clamped.
+
+Starting from this size, the layout will tighten its grip on the children,
+slowly allocating less and less of the available size up to the maximum
+allocated size. Below that threshold and below the maximum size, the
+children will be allocated all the available size.
+
+If the threshold is greater than the maximum size to allocate to the
+children, they will be allocated the whole size up to the maximum. If the
+threshold is lower than the minimum size to allocate to the children, that
+size will be used as the tightening threshold.
+
+Effectively, tightening the grip on a child before it reaches its maximum
+size makes transitions to and from the maximum size smoother when resizing.
+
+
+
+
+
+
+
+
+
+
+ Application color schemes for [property@StyleManager:color-scheme].
+
+ Inherit the parent color-scheme. When set on the
+ [class@StyleManager] returned by [func@StyleManager.get_default], it's
+ equivalent to `HDY_COLOR_SCHEME_FORCE_LIGHT`.
+
+
+ Always use light appearance.
+
+
+ Use light appearance unless the system
+ prefers dark colors.
+
+
+ Use dark appearance unless the system prefers
+ light colors.
+
+
+ Always use dark appearance.
+
+
+
+ A [class@Gtk.ListBoxRow] used to choose from a list of items.
+
+The `HdyComboRow` widget allows the user to choose from a list of valid
+choices. The row displays the selected choice. When activated, the row
+displays a popover which allows the user to make a new choice.
+
+The [class@ComboRow] uses the model-view pattern; the list of valid choices
+is specified in the form of a [iface@Gio.ListModel], and the display of the
+choices can be adapted to the data in the model via widget creation
+functions.
+
+`HdyComboRow` is [property@Gtk.ListBoxRow:activatable] if a model is set.
+
+## CSS nodes
+
+`HdyComboRow` has a main CSS node with name `row`.
+
+Its popover has the node name popover with the `.combo` style class, it
+contains a [class@Gtk.ScrolledWindow], which in turn contains a
+[class@Gtk.ListBox], both are accessible via their regular nodes.
+
+A checkmark of node and style class `image.checkmark` in the popover denotes
+the current item.
+
+
+
+
+
+ Creates a new `HdyComboRow`.
+
+
+ the newly created `HdyComboRow`
+
+
+
+
+ Binds @model to @self.
+
+If @self was already bound to a model, that previous binding is destroyed.
+
+The contents of @self are cleared and then filled with widgets that represent
+items from @model. @self is updated whenever @model changes. If @model is
+`NULL`, @self is left empty.
+
+
+
+
+
+
+ a combo row
+
+
+
+ the [iface@Gio.ListModel] to be bound to @self
+
+
+
+ a function that creates
+ widgets for items to display in the list, or `NULL` in case you also passed
+ `NULL` as @model
+
+
+
+ a function that creates
+ widgets for items to display as the selected item, or `NULL` in case you
+ also passed `NULL` as @model
+
+
+
+ user data passed to @create_list_widget_func and
+ @create_current_widget_func
+
+
+
+ function for freeing @user_data
+
+
+
+
+
+ Binds @model to @self.
+
+If @self was already bound to a model, that previous binding is destroyed.
+
+The contents of @self are cleared and then filled with widgets that represent
+items from @model. @self is updated whenever @model changes. If @model is
+`NULL`, @self is left empty.
+
+This is more convenient to use than [method@ComboRow.bind_model] if you want
+to represent items of the model with names.
+
+
+
+
+
+
+ a combo row
+
+
+
+ the [iface@Gio.ListModel] to be bound to @self
+
+
+
+ a function that creates names for items, or
+ `NULL` in case you also passed `NULL` as @model
+
+
+
+ user data passed to @get_name_func
+
+
+
+ function for freeing @user_data
+
+
+
+
+
+ Gets the model bound to @self.
+
+
+ the [iface@Gio.ListModel] bound to @self
+
+
+
+
+ a combo row
+
+
+
+
+
+
+ Gets the index of the selected item in its [iface@Gio.ListModel].
+
+
+ the index of the selected item, or -1 if no item is selected
+
+
+
+
+ a combo row
+
+
+
+
+
+
+ Gets whether the current value of @self should be displayed as its subtitle.
+
+
+ whether the current value of @self should be displayed as its
+ subtitle
+
+
+
+
+ a combo row
+
+
+
+
+
+ Creates a model for @enum_type and binds it to @self.
+
+The items of the model will be [class@EnumValueObject] objects.
+
+If @self was already bound to a model, that previous binding is destroyed.
+
+The contents of @self are cleared and then filled with widgets that represent
+items from @model. @self is updated whenever @model changes. If @model is
+`NULL`, @self is left empty.
+
+This is more convenient to use than [method@ComboRow.bind_name_model] if you
+want to represent values of an enumeration with names.
+
+See [func@enum_value_row_name].
+
+
+
+
+
+
+ a combo row
+
+
+
+ the enumeration [alias@GLib.Type] to be bound to @self
+
+
+
+ a function that creates names for items, or
+ `NULL` in case you also passed `NULL` as @model
+
+
+
+ user data passed to @get_name_func
+
+
+
+ function for freeing @user_data
+
+
+
+
+
+ Sets a closure to convert items into names.
+
+See [property@ComboRow:use-subtitle].
+
+
+
+
+
+
+ a combo row
+
+
+
+ a function that creates names for items, or
+ `NULL` in case you also passed `NULL` as @model
+
+
+
+ user data passed to @get_name_func
+
+
+
+ function for freeing @user_data
+
+
+
+
+
+
+ Sets the index of the selected item in its [iface@Gio.ListModel].
+
+
+
+
+
+
+ a combo row
+
+
+
+ the index of the selected item
+
+
+
+
+
+
+ Sets whether the current value of @self should be displayed as its subtitle.
+
+If `TRUE`, you should not access [property@ActionRow:subtitle].
+
+
+
+
+
+
+ a combo row
+
+
+
+ `TRUE` to set the current value as the subtitle
+
+
+
+
+
+
+
+ The index of the selected item in its [iface@Gio.ListModel].
+
+
+
+
+
+ Whether to use the current value as the subtitle.
+
+If you use a custom widget creation function, you will need to give the row
+a name conversion closure with [method@ComboRow.set_get_name_func].
+
+If `TRUE`, you should not access [property@ActionRow:subtitle].
+
+
+
+
+
+
+
+
+
+ the parent class
+
+
+
+
+
+
+
+
+
+ Callback for getting the name of a row from an enum.
+
+Called for combo rows that are bound to an enumeration with
+[method@ComboRow.set_for_enum] for each value from that enumeration.
+
+See also: [func@enum_value_row_name].
+
+
+ a displayable name that represents @value
+
+
+
+
+ the value from the enum from which to get a name
+
+
+
+ user data
+
+
+
+
+
+ Callback for getting the name of a row.
+
+Called for combo rows that are bound to a [iface@Gio.ListModel] with
+[method@ComboRow.bind_name_model] for each item that gets added to the model.
+
+
+ a displayable name that represents @item
+
+
+
+
+ the item from the model from which to get a name
+
+
+
+ user data
+
+
+
+
+
+ A swipeable widget showing one of the visible children at a time.
+
+The `HdyDeck` widget displays one of the visible children, similar to a
+[class@Gtk.Stack]. The children are strictly ordered and can be navigated
+using swipe gestures.
+
+The “over” and “under” stack the children one on top of the other, while the
+“slide” transition puts the children side by side. While navigating to a
+child on the side or below can be performed by swiping the current child
+away, navigating to an upper child requires dragging it from the edge where
+it resides. This doesn't affect non-dragging swipes.
+
+The “over” and “under” transitions can draw their shadow on top of the
+window's transparent areas, like the rounded corners. This is a side-effect
+of allowing shadows to be drawn on top of OpenGL areas. It can be mitigated
+by using [class@Window] or [class@ApplicationWindow] as they will crop
+anything drawn beyond the rounded corners.
+
+## CSS nodes
+
+`HdyDeck` has a single CSS node with name `deck`.
+
+
+
+
+
+
+ Creates a new `HdyDeck`.
+
+
+ the newly created `HdyDeck`
+
+
+
+
+ Finds the previous or next navigatable child.
+
+Gets the previous or next child. This will be the same widget
+[method@Deck.navigate] will navigate to.
+
+If there's no child to navigate to, `NULL` will be returned instead.
+
+
+ the previous or next child
+
+
+
+
+ a deck
+
+
+
+ the direction
+
+
+
+
+
+
+ Gets whether swipe gestures for navigating backward are enabled.
+
+
+ Whether swipe gestures are enabled.
+
+
+
+
+ a deck
+
+
+
+
+
+
+ Gets whether swipe gestures for navigating forward enabled.
+
+
+ Whether swipe gestures are enabled.
+
+
+
+
+ a deck
+
+
+
+
+
+ Finds the child of @self with @name.
+
+Returns `NULL` if there is no child with this name.
+
+
+ the requested child of @self
+
+
+
+
+ a deck
+
+
+
+ the name of the child to find
+
+
+
+
+
+ Gets whether @self is homogeneous for the given orientation.
+
+
+ whether @self is homogeneous for the given orientation
+
+
+
+
+ a deck
+
+
+
+ the orientation
+
+
+
+
+
+
+ Gets whether @self will interpolate its size when changing the visible child.
+
+
+ whether child sizes are interpolated
+
+
+
+
+ a deck
+
+
+
+
+
+
+ Gets the mode transition animation duration for @self.
+
+
+ the mode transition duration, in milliseconds.
+
+
+
+
+ a deck
+
+
+
+
+
+
+ Gets whether a transition is currently running for @self.
+
+
+ whether a transition is currently running
+
+
+
+
+ a deck
+
+
+
+
+
+
+ Gets the type of animation used for transitions between children.
+
+
+ the current transition type of @self
+
+
+
+
+ a deck
+
+
+
+
+
+
+ Gets the visible child widget.
+
+
+ the visible child widget
+
+
+
+
+ a deck
+
+
+
+
+
+
+ Gets the name of the currently visible child widget.
+
+
+ the name of the visible child
+
+
+
+
+ a deck
+
+
+
+
+
+ Inserts @child in the position after @sibling in the list of children.
+
+If @sibling is `NULL`, inserts @child at the first position.
+
+
+
+
+
+
+ a deck
+
+
+
+ the widget to insert
+
+
+
+ the sibling after which to insert @child
+
+
+
+
+
+ Navigates to the previous or next child.
+
+The switch is similar to performing a swipe gesture to go in @direction.
+
+
+ whether the visible child was changed
+
+
+
+
+ a deck
+
+
+
+ the direction
+
+
+
+
+
+ Inserts @child at the first position in @self.
+
+
+
+
+
+
+ a deck
+
+
+
+ the widget to prepend
+
+
+
+
+
+ Moves @child to the position after @sibling in the list of children.
+
+If @sibling is `NULL`, move @child to the first position.
+
+
+
+
+
+
+ a deck
+
+
+
+ the widget to move, must be a child of @self
+
+
+
+ the sibling to move @child after
+
+
+
+
+
+
+ Sets whether swipe gestures for navigating backward are enabled.
+
+
+
+
+
+
+ a deck
+
+
+
+ the new value
+
+
+
+
+
+
+ Sets whether swipe gestures for navigating forward are enabled.
+
+
+
+
+
+
+ a deck
+
+
+
+ the new value
+
+
+
+
+
+ Sets whether @self is homogeneous for a given orientation.
+
+If set to `FALSE`, different children can have different size along the
+opposite orientation.
+
+
+
+
+
+
+ a deck
+
+
+
+ the orientation
+
+
+
+ `TRUE` to make @self homogeneous
+
+
+
+
+
+
+ Sets whether @self will interpolate its size when changing the visible child.
+
+@self will interpolate its size between the current one and the one it'll
+take after changing the visible child, according to the set transition
+duration.
+
+
+
+
+
+
+ a deck
+
+
+
+ the new value
+
+
+
+
+
+
+ Sets the mode transition animation duration for @self.
+
+
+
+
+
+
+ a deck
+
+
+
+ the new duration, in milliseconds
+
+
+
+
+
+
+ Sets the type of animation used for transitions between children.
+
+The transition type can be changed without problems at runtime, so it is
+possible to change the animation based on the child that is about to become
+current.
+
+
+
+
+
+
+ a deck
+
+
+
+ the new transition type
+
+
+
+
+
+
+ Sets the currently visible widget.
+
+
+
+
+
+
+ a deck
+
+
+
+ the new child
+
+
+
+
+
+
+ Makes the child with the name @name visible.
+
+See [method@Deck.set_visible_child] for more details.
+
+
+
+
+
+
+ a deck
+
+
+
+ the name of a child
+
+
+
+
+
+
+
+ Whether swipe gestures allow switching to the previous child.
+
+
+
+
+
+ Whether swipe gestures allow switching to the next child.
+
+
+
+
+
+ Horizontally homogeneous sizing.
+
+
+
+
+
+ Whether or not the size should smoothly change when changing between
+differently sized children.
+
+
+
+
+
+ The transition animation duration, in milliseconds.
+
+
+
+
+ Whether or not the transition is currently running.
+
+
+
+
+
+ The type of animation that will be used for transitions between children.
+
+The transition type can be changed without problems at runtime, so it is
+possible to change the animation based on the child that is about to become
+current.
+
+
+
+
+
+ Vertically homogeneous sizing.
+
+
+
+
+
+ The widget currently visible.
+
+The transition is determined by [property@Deck:transition-type] and
+[property@Deck:transition-duration]. The transition can be cancelled by the
+user, in which case visible child will change back to the previously
+visible child.
+
+
+
+
+
+ The name of the widget currently visible.
+
+
+
+
+
+
+
+
+
+ the parent class
+
+
+
+
+
+
+
+
+
+ Describes the possible transitions in a [class@Deck] widget.
+
+New values may be added to this enumeration over time.
+
+ Cover the old page or uncover the new page,
+ sliding from or towards the end according to orientation, text direction
+ and children order
+
+
+ Uncover the new page or cover the old page,
+ sliding from or towards the start according to orientation, text direction
+ and children order
+
+
+ Slide from left, right, up or down according
+ to the orientation, text direction and the children order
+
+
+
+ An object representing an [struct@GObject.EnumValue].
+
+The `HdyEnumValueObject` object represents a [struct@GObject.EnumValue],
+allowing it to be used with [iface@Gio.ListModel].
+
+
+ Creates a new `HdyEnumValueObject`.
+
+
+ the newly created `HdyEnumValueObject`
+
+
+
+
+
+
+
+
+
+ Gets the name of @self.
+
+
+ the name of @self
+
+
+
+
+ an enum value object
+
+
+
+
+
+ Gets the nick of @self.
+
+
+ the nick of @self
+
+
+
+
+ an enum value object
+
+
+
+
+
+ Gets the value of @self.
+
+
+ the value of @self
+
+
+
+
+ an enum value object
+
+
+
+
+
+
+
+
+
+
+
+
+ A [class@Gtk.ListBoxRow] used to reveal widgets.
+
+The `HdyExpanderRow` widget allows the user to reveal or hide widgets below
+it. It also allows the user to enable the expansion of the row, allowing to
+disable all that the row contains.
+
+## HdyExpanderRow as GtkBuildable
+
+The `HdyExpanderRow` implementation of the [iface@Gtk.Buildable] interface
+supports adding a child as an action widget by specifying “action” as the
+“type” attribute of a <child> element.
+
+It also supports adding it as a prefix widget by specifying “prefix” as the
+“type” attribute of a <child> element.
+
+## CSS nodes
+
+`HdyExpanderRow` has a main CSS node with name `row`, and the `.expander`
+style class. It has the `.empty` style class when it contains no children.
+
+It contains the subnodes `row.header` for its main embedded row,
+`list.nested` for the list it can expand, and `image.expander-row-arrow` for
+its arrow.
+
+When expanded, `HdyExpanderRow` will add the
+`.checked-expander-row-previous-sibling` style class to its previous sibling,
+and remove it when retracted.
+
+
+
+
+
+ Creates a new `HdyExpanderRow`.
+
+
+ the newly created `HdyExpanderRow`
+
+
+
+
+ Adds an action widget to @self.
+
+
+
+
+
+
+ a expander row
+
+
+
+ the action widget
+
+
+
+
+
+ Adds a prefix widget to @self.
+
+
+
+
+
+
+ a expander row
+
+
+
+ the prefix widget
+
+
+
+
+
+
+ Gets whether the expansion of @self is enabled.
+
+
+ whether the expansion of @self is enabled
+
+
+
+
+ a expander row
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the icon name for @self.
+
+
+ the icon name for @self
+
+
+
+
+ a expander row
+
+
+
+
+
+
+ Gets whether the switch enabling the expansion of @self is visible.
+
+
+ whether the switch enabling the expansion of @self is visible
+
+
+
+
+ a expander row
+
+
+
+
+
+
+ Gets the subtitle for @self.
+
+
+ the subtitle for @self
+
+
+
+
+ a expander row
+
+
+
+
+
+
+ Gets whether an embedded underline in the title or subtitle labels indicates
+a mnemonic.
+
+
+ whether an embedded underlines indicates a mnemonic
+
+
+
+
+ a expander row
+
+
+
+
+
+
+ Sets whether the expansion of @self is enabled.
+
+
+
+
+
+
+ a expander row
+
+
+
+ `TRUE` to enable the expansion
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sets the icon name for @self.
+
+
+
+
+
+
+ a expander row
+
+
+
+ the icon name
+
+
+
+
+
+
+ Sets whether the switch enabling the expansion of @self is visible.
+
+
+
+
+
+
+ a expander row
+
+
+
+ `TRUE` to show the switch enabling the expansion
+
+
+
+
+
+
+ Sets the subtitle for @self.
+
+
+
+
+
+
+ a expander row
+
+
+
+ the subtitle
+
+
+
+
+
+
+ Sets whether an embedded underline in the title or subtitle labels indicates
+a mnemonic.
+
+
+
+
+
+
+ a expander row
+
+
+
+ `TRUE` if underlines in the text indicate mnemonics
+
+
+
+
+
+
+
+ Whether expansion is enabled.
+
+
+
+
+
+ Whether the row is expanded.
+
+
+
+
+
+ The icon name for this row.
+
+
+
+
+
+ Whether the switch enabling the expansion is visible.
+
+
+
+
+
+ The subtitle for this row.
+
+
+
+
+
+ Whether an embedded underline in the title or subtitle labels indicates a
+mnemonic.
+
+
+
+
+
+
+
+
+
+ the parent class
+
+
+
+
+
+
+
+
+
+ An adaptive container acting like a box or an overlay.
+
+The `HdyFlap` widget can display its children like a [class@Gtk.Box] does or
+like a [class@Gtk.Overlay] does, according to the
+[property@Flap:fold-policy] value.
+
+`HdyFlap` has at most three children: [property@Flap:content],
+[property@Flap:flap] and [property@Flap:separator]. Content is the primary
+child, flap is displayed next to it when unfolded, or overlays it when
+folded. Flap can be shown or hidden by changing the
+[property@Flap:reveal-flap] value, as well as via swipe gestures if
+[property@Flap:swipe-to-open] and/or [property@Flap:swipe-to-close] are set
+to `TRUE`.
+
+Optionally, a separator can be provided, which would be displayed between the
+content and the flap when there's no shadow to separate them, depending on
+the transition type.
+
+[property@Flap:flap] is transparent by default; add the `.background` style
+class to it if this is unwanted.
+
+If [property@Flap:modal] is set to `TRUE`, content becomes completely
+inaccessible when the flap is revealed while folded.
+
+The position of the flap and separator children relative to the content is
+determined by orientation, as well as the [property@Flap:flap-position]
+value.
+
+Folding the flap will automatically hide the flap widget, and unfolding it
+will automatically reveal it. If this behavior is not desired, the
+[property@Flap:locked] property can be used to override it.
+
+Common use cases include sidebars, header bars that need to be able to
+overlap the window content (for example, in fullscreen mode) and bottom
+sheets.
+
+## HdyFlap as GtkBuildable
+
+The `HdyFlap` implementation of the [iface@Gtk.Buildable] interface supports
+setting the flap child by specifying “flap” as the “type” attribute of a
+<child> element, and separator by specifying “separator”. Specifying
+“content” child type or omitting it results in setting the content child.
+
+## CSS nodes
+
+`HdyFlap` has a single CSS node with name `flap`. The node will get the style
+classes `.folded` when it is folded, and `.unfolded` when it's not.
+
+
+
+
+
+
+ Creates a new `HdyFlap`.
+
+
+ the newly created `HdyFlap`
+
+
+
+
+
+ Gets the content widget for @self
+
+
+ the content widget for @self
+
+
+
+
+ a flap
+
+
+
+
+
+
+ Gets the flap widget for @self
+
+
+ the flap widget for @self
+
+
+
+
+ a flap
+
+
+
+
+
+
+ Gets the flap position for @self.
+
+
+ the flap position for @self
+
+
+
+
+ a flap
+
+
+
+
+
+
+ Gets the amount of time that fold transitions will take.
+
+
+ the fold transition duration, in milliseconds
+
+
+
+
+ a flap
+
+
+
+
+
+
+ Gets the current fold policy of @self.
+
+
+ the current fold policy of @self
+
+
+
+
+ a flap
+
+
+
+
+
+
+ Gets whether @self is currently folded.
+
+
+ `TRUE` if @self is currently folded
+
+
+
+
+ a flap
+
+
+
+
+
+
+ Gets whether @self is locked.
+
+
+ whether @self is locked
+
+
+
+
+ a flap
+
+
+
+
+
+
+ Gets whether the @self is modal.
+
+
+ whether @self is modal
+
+
+
+
+ a flap
+
+
+
+
+
+
+ Gets the amount of time that reveal transitions will take.
+
+
+ the reveal transition duration, in milliseconds
+
+
+
+
+ a flap
+
+
+
+
+
+
+ Gets whether the flap widget is revealed for @self.
+
+
+ whether flap widget is revealed
+
+
+
+
+ a flap
+
+
+
+
+
+
+ Gets the current reveal transition progress for @self.
+
+
+ the current reveal progress for @self
+
+
+
+
+ a flap
+
+
+
+
+
+
+ Gets the separator widget for @self.
+
+
+ the separator widget for @self
+
+
+
+
+ a flap
+
+
+
+
+
+
+ Gets whether @self can be closed with a swipe gesture.
+
+
+ `TRUE` if @self can be closed with a swipe gesture
+
+
+
+
+ a flap
+
+
+
+
+
+
+ Gets whether @self can be opened with a swipe gesture.
+
+
+ `TRUE` if @self can be opened with a swipe gesture
+
+
+
+
+ a flap
+
+
+
+
+
+
+ Gets the type of animation used for reveal and fold transitions in @self.
+
+
+ the current transition type of @self
+
+
+
+
+ a flap
+
+
+
+
+
+
+ Sets the content widget for @self.
+
+It is always displayed when unfolded, and partially visible when folded.
+
+
+
+
+
+
+ a flap
+
+
+
+ the content widget
+
+
+
+
+
+
+ Sets the flap widget for @self.
+
+
+
+
+
+
+ a flap
+
+
+
+ the flap widget
+
+
+
+
+
+
+ Sets the flap position for @self.
+
+
+
+
+
+
+ a flap
+
+
+
+ the new value
+
+
+
+
+
+
+ Sets the duration that fold transitions will take.
+
+
+
+
+
+
+ a flap
+
+
+
+ the new duration, in milliseconds
+
+
+
+
+
+
+ Sets the current fold policy for @self.
+
+
+
+
+
+
+ a flap
+
+
+
+ a fold policy
+
+
+
+
+
+
+ Sets whether @self is locked.
+
+If `FALSE`, folding @self when the flap is revealed automatically closes it,
+and unfolding it when the flap is not revealed opens it. If `TRUE`,
+[property@Flap:reveal-flap] value never changes on its own.
+
+
+
+
+
+
+ a flap
+
+
+
+ the new value
+
+
+
+
+
+
+ Sets whether the @self can be closed with a click.
+
+If @modal is `TRUE`, clicking the content widget while flap is revealed, or
+pressing the <kbd>Esc</kbd> key, will close the flap. If `FALSE`, clicks are
+passed through to the content widget.
+
+
+
+
+
+
+ a flap
+
+
+
+ whether @self can be closed with a click
+
+
+
+
+
+
+ Sets the duration that reveal transitions in @self will take.
+
+
+
+
+
+
+ a flap
+
+
+
+ the new duration, in milliseconds
+
+
+
+
+
+
+ Sets whether the flap widget is revealed for @self.
+
+
+
+
+
+
+ a flap
+
+
+
+ `TRUE` to reveal the flap widget, `FALSE` otherwise
+
+
+
+
+
+
+ Sets the separator widget for @self.
+
+
+
+
+
+
+ a flap
+
+
+
+ the separator widget
+
+
+
+
+
+
+ Sets whether @self can be closed with a swipe gesture.
+
+The area that can be swiped depends on the [property@Flap:transition-type] value.
+
+
+
+
+
+
+ a flap
+
+
+
+ whether @self can be closed with a swipe gesture
+
+
+
+
+
+
+ Sets whether @self can be opened with a swipe gesture.
+
+The area that can be swiped depends on the [property@Flap:transition-type]
+value.
+
+
+
+
+
+
+ a flap
+
+
+
+ whether @self can be opened with a swipe gesture
+
+
+
+
+
+
+ Sets the type of animation used for reveal and fold transitions in @self.
+
+
+
+
+
+
+ a flap
+
+
+
+ the new transition type
+
+
+
+
+
+
+
+ The content widget.
+
+It's always displayed when unfolded, and partially visible
+when folded.
+
+
+
+
+
+ The flap widget.
+
+It's only visible when [property@Flap:reveal-progress] is greater than 0.
+
+
+
+
+
+ The flap position.
+
+If `GTK_PACK_START`, the flap is displayed before the content, if
+`GTK_PACK_END`, it's displayed after the content.
+
+
+
+
+
+ The fold transition animation duration, in milliseconds.
+
+
+
+
+
+ The current fold policy.
+
+See [enum@FlapFoldPolicy] for available policies.
+
+
+
+
+ Whether the flap is currently folded.
+
+See [property@Flap:fold-policy].
+
+
+
+
+
+ Whether the flap is locked.
+
+If `FALSE`, folding when the flap is revealed automatically closes it, and
+unfolding it when the flap is not revealed opens it. If `TRUE`,
+[property@Flap:reveal-flap] value never changes on its own.
+
+
+
+
+
+ Whether the flap is modal.
+
+If `TRUE`, clicking the content widget while flap is revealed, as well as
+pressing the <kbd>Esc</kbd> key, will close the flap. If `FALSE`, clicks
+are passed through to the content widget.
+
+
+
+
+
+ The reveal transition animation duration, in milliseconds.
+
+
+
+
+
+ Whether the flap widget is revealed.
+
+
+
+
+ The current reveal transition progress.
+
+0 means fully hidden, 1 means fully revealed. See
+[property@Flap:reveal-flap].
+
+
+
+
+
+ The separator widget.
+
+It's displayed between content and flap when there's no shadow to display.
+When exactly it's visible depends on the [property@Flap:transition-type]
+value. If `NULL`, no separator will be used.
+
+
+
+
+
+ Whether the flap can be closed with a swipe gesture.
+
+The area that can be swiped depends on the [property@Flap:transition-type]
+value.
+
+
+
+
+
+ Whether the flap can be opened with a swipe gesture.
+
+The area that can be swiped depends on the [property@Flap:transition-type]
+value.
+
+
+
+
+
+ the type of animation used for reveal and fold transitions.
+
+[property@Flap:flap] is transparent by default, which means the content
+will be seen through it with `HDY_FLAP_TRANSITION_TYPE_OVER` transitions;
+add the `.background` style class to it if this is unwanted.
+
+
+
+
+
+
+
+
+
+
+ Describes the possible folding behavior of a [class@Flap] widget.
+
+ Disable folding, the flap cannot reach narrow
+ sizes.
+
+
+ Keep the flap always folded.
+
+
+ Fold and unfold the flap based on available
+ space.
+
+
+
+ Describes transitions types of a [class@Flap] widget.
+
+These enumeration values describe the possible transitions between children
+in a [class@Flap] widget, as well as which areas can be swiped via
+[property@Flap:swipe-to-open] and [property@Flap:swipe-to-close].
+
+New values may be added to this enum over time.
+
+ The flap slides over the content, which is
+ dimmed. When folded, only the flap can be swiped.
+
+
+ The content slides over the flap. Only the
+ content can be swiped.
+
+
+ The flap slides offscreen when hidden,
+ neither the flap nor content overlap each other. Both widgets can be
+ swiped.
+
+
+
+ A title bar widget.
+
+`HdyHeaderBar` is similar to [class@Gtk.HeaderBar] but is designed to fix
+some of its shortcomings for adaptive applications.
+
+`HdyHeaderBar` doesn't force the custom title widget to be vertically
+centered, hence allowing it to fill up the whole height, which is e.g. needed
+for [class@ViewSwitcher].
+
+When used in a mobile dialog, `HdyHeaderBar` will replace its window
+decorations by a back button allowing to close it. It doesn't have to be its
+direct child and you can use any complex contraption you like as the dialog's
+titlebar.
+
+`HdyHeaderBar` can be used in window's content area rather than titlebar, and
+will still be draggable and will handle right click, middle click and double
+click as expected from a titlebar. This is particularly useful with
+[class@Window] or [class@ApplicationWindow].
+
+## CSS nodes
+
+`HdyHeaderBar` has a single CSS node with name `headerbar`.
+
+
+
+
+ Creates a new `HdyHeaderBar`.
+
+
+ the newly created `HdyHeaderBar`.
+
+
+
+
+
+ Gets the policy @self follows to horizontally align its center widget.
+
+
+ the centering policy
+
+
+
+
+ a header bar
+
+
+
+
+
+
+ Retrieves the custom title widget of the header.
+
+
+ the custom title widget of the header
+
+
+
+
+ a header bar
+
+
+
+
+
+
+ Gets the decoration layout.
+
+
+ the decoration layout
+
+
+
+
+ a header bar
+
+
+
+
+
+
+ Gets whether space is reserved for a subtitle, regardless if one is currently
+set or not.
+
+
+ `TRUE` if the header bar reserves space for a subtitle
+
+
+
+
+ a header bar
+
+
+
+
+
+
+ Gets whether @self should interpolate its size on visible child change.
+
+
+ whether @self interpolates its size on visible child change
+
+
+
+
+ a header bar
+
+
+
+
+
+
+ Gets whether this header bar shows the standard window decorations.
+
+
+ whether decorations are shown
+
+
+
+
+ a header bar
+
+
+
+
+
+
+ Gets the subtitle of the header.
+
+
+ the subtitle of the header
+
+
+
+
+ a header bar
+
+
+
+
+
+
+ Retrieves the title of the header.
+
+
+ the title of the header.
+
+
+
+
+ a header bar
+
+
+
+
+
+
+ Gets the amount of time that transitions between pages will take.
+
+
+ the transition duration, in milliseconds
+
+
+
+
+ a header bar
+
+
+
+
+
+
+ Gets whether the @self is currently in a transition from one page to another.
+
+
+ whether the transition is currently running
+
+
+
+
+ a header bar
+
+
+
+
+
+ Adds @child to @self, packed with reference to the end of the @self.
+
+
+
+
+
+
+ a header bar
+
+
+
+ the widget to be added to @self
+
+
+
+
+
+ Adds @child to @self, packed with reference to the start of the @self.
+
+
+
+
+
+
+ a header bar
+
+
+
+ the widget to be added to @self
+
+
+
+
+
+
+ Sets the policy @self must follow to horizontally align its center widget.
+
+
+
+
+
+
+ a header bar
+
+
+
+ the centering policy
+
+
+
+
+
+
+ Sets a custom title for the header bar.
+
+The title should help a user identify the current view. This supersedes any
+title set by [method@HeaderBar.set_title] or [method@HeaderBar.set_subtitle].
+To achieve the same style as the builtin title and subtitle, use the `.title`
+and `.subtitle` style classes.
+
+You should set the custom title to `NULL`, for the header title label to be
+visible again.
+
+
+
+
+
+
+ a header bar
+
+
+
+ a custom widget to use for a title
+
+
+
+
+
+
+ Sets the decoration layout for this header bar.
+
+
+
+
+
+
+ a header bar
+
+
+
+ a decoration layout
+
+
+
+
+
+
+ Sets whether space is reserved for a subtitle, even if none is currently set.
+
+
+
+
+
+
+ a header bar
+
+
+
+ `TRUE` to reserve space for a subtitle
+
+
+
+
+
+
+ Sets whether @self should interpolate its size on visible child change.
+
+
+
+
+
+
+ a header bar
+
+
+
+ `TRUE` to interpolate the size
+
+
+
+
+
+
+ Sets whether this header bar shows the standard window decorations.
+
+
+
+
+
+
+ a header bar
+
+
+
+ `TRUE` to show standard window decorations
+
+
+
+
+
+
+ Sets the subtitle of the header bar.
+
+The title should give a user an additional detail to help them identify the
+current view.
+
+Note that [class@HeaderBar] by default reserves room for the subtitle, even
+if none is currently set. If this is not desired, set the
+[property@HeaderBar:has-subtitle] property to `FALSE`.
+
+
+
+
+
+
+ a header bar
+
+
+
+ a subtitle
+
+
+
+
+
+
+ Sets the title of the [class@HeaderBar].
+
+The title should help a user identify the current view. A good title should
+not include the application name.
+
+
+
+
+
+
+ a header bar
+
+
+
+ a title
+
+
+
+
+
+
+ Sets the duration that transitions between pages will take.
+
+
+
+
+
+
+ a header bar
+
+
+
+ the new duration, in milliseconds
+
+
+
+
+
+
+
+ The policy for aligning the center widget.
+
+
+
+
+
+ Custom title widget to display.
+
+
+
+
+
+ The decoration layout for buttons.
+
+If this property is not set, the
+[property@Gtk.Settings:gtk-decoration-layout] setting is used.
+
+There can be valid reasons for overriding the setting, such as a header bar
+design that does not allow for buttons to take room on the right, or only
+offers room for a single close button. Split header bars are another example
+for overriding the setting.
+
+The format of the string is button names, separated by commas. A colon
+separates the buttons that should appear on the start from those on the
+end. Recognized button names are minimize, maximize, close, icon (the
+window icon) and menu (a menu button for the fallback app menu).
+
+For example, “menu:minimize,maximize,close” specifies a menu on the left, and
+minimize, maximize and close buttons on the right.
+
+
+
+ Whether [property@HeaderBar:decoration-layout] is set.
+
+
+
+
+
+ Whether to reserve space for a subtitle, even if none is currently set.
+
+
+
+
+
+ Whether the size should smoothly change when changing between children.
+
+If `TRUE`, the header bar will interpolate its size between the one of the
+previous visible child and the one of the new visible child, according to
+the set transition duration and the orientation, e.g. if the orientation is
+horizontal, it will interpolate the its height.
+
+
+
+
+
+ Whether to show window decorations.
+
+Which buttons are actually shown and where is determined by the
+[property@HeaderBar:decoration-layout] property, and by the state of the
+window (e.g. a close button will not be shown if the window can't be
+closed).
+
+
+
+ The amount of space between children.
+
+
+
+
+
+ The subtitle to display.
+
+
+
+
+
+ The title to display.
+
+
+
+
+
+ The transition duration, in milliseconds.
+
+
+
+
+ Whether or not the transition is currently running.
+
+
+
+
+
+
+
+
+
+ the parent class
+
+
+
+
+
+
+
+
+
+ An object handling composite title bars.
+
+The `HdyHeaderGroup` object handles the header bars of a composite title bar.
+It splits the window decoration across the header bars, giving the left side
+of the decorations to the leftmost header bar, and the right side of the
+decorations to the rightmost header bar. See
+[method@HeaderBar.set_decoration_layout].
+
+The [property@HeaderGroup:decorate-all] property can be used in conjunction
+with [property@Leaflet:folded] when the title bar is split across the pages
+of a [class@Leaflet] to automatically display the decorations on all the
+pages when the leaflet is folded.
+
+You can nest header groups, which is convenient when you nest leaflets too:
+
+```xml
+<object class="HdyHeaderGroup" id="inner_header_group">
+ <property name="decorate-all" bind-source="inner_leaflet" bind-property="folded" bind-flags="sync-create"/>
+ <headerbars>
+ <headerbar name="inner_header_bar_1"/>
+ <headerbar name="inner_header_bar_2"/>
+ </headerbars>
+</object>
+<object class="HdyHeaderGroup" id="outer_header_group">
+ <property name="decorate-all" bind-source="outer_leaflet" bind-property="folded" bind-flags="sync-create"/>
+ <headerbars>
+ <headerbar name="inner_header_group"/>
+ <headerbar name="outer_header_bar"/>
+ </headerbars>
+</object>
+```
+
+
+
+ Creates a new `HdyHeaderGroup`.
+
+
+ the newly created `HdyHeaderGroup`
+
+
+
+
+ Adds @header_bar to @self.
+
+When the widget is destroyed or no longer referenced elsewhere, it will be
+removed from the header group.
+
+
+
+
+
+
+ a header group
+
+
+
+ the header bar to add
+
+
+
+
+
+ Adds @header_bar to @self.
+
+When the widget is destroyed or no longer referenced elsewhere, it will be
+removed from the header group.
+
+
+
+
+
+
+ a header group
+
+
+
+ the header bar to add
+
+
+
+
+
+ Adds @header_group to @self.
+
+When the nested group is no longer referenced elsewhere, it will be removed
+from the header group.
+
+
+
+
+
+
+ a header group
+
+
+
+ the header group to add
+
+
+
+
+
+ Returns the list of children associated with @self.
+
+
+ the list of
+ children
+
+
+
+
+
+
+ a header group
+
+
+
+
+
+
+ Gets whether the elements of the group should all receive the full
+decoration.
+
+
+ whether the elements of the group should all receive the full
+ decoration
+
+
+
+
+ a header group
+
+
+
+
+
+ Removes @child from @self.
+
+
+
+
+
+
+ a header group
+
+
+
+ the header group child to remove
+
+
+
+
+
+ Removes @header_bar from @self.
+
+
+
+
+
+
+ a header group
+
+
+
+ the header bar to remove
+
+
+
+
+
+ Removes @header_bar from @self.
+
+
+
+
+
+
+ a header group
+
+
+
+ the header bar to remove
+
+
+
+
+
+ Removes a nested `HdyHeaderGroup` from @self.
+
+
+
+
+
+
+ a header group
+
+
+
+ the header group to remove
+
+
+
+
+
+
+ Sets whether the elements of the group should all receive the full
+decoration.
+
+
+
+
+
+
+ a header group
+
+
+
+ whether the elements of the group should all receive the full
+ decoration
+
+
+
+
+
+
+
+ Whether the elements of the group should all receive the full decoration.
+
+This is useful in conjunction with [property@Leaflet:folded] when the
+leaflet contains the header bars of the group, as you want them all to
+display the complete decoration when the leaflet is folded.
+
+
+
+ This signal is emitted before updating the decoration layouts.
+
+
+
+
+
+
+ A child object for [class@HeaderGroup].
+
+
+ Gets the child type.
+
+
+ the child type
+
+
+
+
+ a header group child
+
+
+
+
+
+ Gets the child [class@Gtk.HeaderBar].
+
+Use [method@HeaderGroupChild.get_child_type] to check the child type.
+
+
+ the child header bar
+
+
+
+
+ a header group child
+
+
+
+
+
+ Gets the child [class@HeaderBar].
+
+Use [method@HeaderGroupChild.get_child_type] to check the child type.
+
+
+ the child headerbar
+
+
+
+
+ a header group child
+
+
+
+
+
+ Gets the child [class@HeaderGroup].
+
+Use [method@HeaderGroupChild.get_child_type] to check the child type.
+
+
+ the child header bar
+
+
+
+
+ a header group child
+
+
+
+
+
+
+
+
+
+
+
+
+ Describes the child types handled by [class@HeaderGroup].
+
+New values may be added to this enumeration over time.
+
+ The child is a [class@HeaderBar]
+
+
+ The child is a
+ [class@Gtk.HeaderBar]
+
+
+ The child is a
+ [class@HeaderGroup]
+
+
+
+
+
+
+
+
+
+ A keypad for dialing numbers
+
+The `HdyKeypad` widget is a keypad for entering numbers such as phone numbers
+or PIN codes.
+
+## CSS nodes
+
+`HdyKeypad` has a single CSS node with name `keypad`.
+
+
+
+
+ Creates a new `HdyKeypad`.
+
+
+ the newly created `HdyKeypad`
+
+
+
+
+ whether the hash, plus, and asterisk symbols should be visible
+
+
+
+ whether the letters below the digits should be visible
+
+
+
+
+
+
+ Returns the amount of space between the columns of @self.
+
+
+ the column spacing of @self
+
+
+
+
+ a keypad
+
+
+
+
+
+
+ Gets the widget for the lower right corner (or left, in RTL locales).
+
+
+ the end action widget
+
+
+
+
+ a keypad
+
+
+
+
+
+
+ Gets the connected entry.
+
+
+ the entry set
+
+
+
+
+ a keypad
+
+
+
+
+
+
+ Gets whether standard letters are displayed below the digits on the buttons.
+
+
+ whether the letters below the digits should be visible
+
+
+
+
+ a keypad
+
+
+
+
+
+
+ Returns the amount of space between the rows of @self.
+
+
+ the row spacing of @self
+
+
+
+
+ a keypad
+
+
+
+
+
+
+ Gets the widget for the lower left corner (or right, in RTL locales).
+
+
+ the start action widget
+
+
+
+
+ a keypad
+
+
+
+
+
+
+ Gets whether symbols are displayed.
+
+
+ whether symboles are visible
+
+
+
+
+ a keypad
+
+
+
+
+
+
+ Sets the amount of space between columns of @self.
+
+
+
+
+
+
+ a keypad
+
+
+
+ the amount of space to insert between columns
+
+
+
+
+
+
+ Sets the widget for the lower right corner (or left, in RTL locales).
+
+
+
+
+
+
+ a keypad
+
+
+
+ the end action widget
+
+
+
+
+
+
+ Binds @entry to @self.
+
+
+
+
+
+
+ a keypad
+
+
+
+ an entry
+
+
+
+
+
+
+ Sets whether standard letters are displayed below the digits on the buttons.
+
+
+
+
+
+
+ a keypad
+
+
+
+ whether the letters below the digits should be visible
+
+
+
+
+
+ Sets the amount of space between rows of @self.
+
+
+
+
+
+
+ a keypad
+
+
+
+ the amount of space to insert between rows
+
+
+
+
+
+
+ Sets the widget for the lower left corner (or right, in RTL locales).
+
+
+
+
+
+
+ a keypad
+
+
+
+ the start action widget
+
+
+
+
+
+
+ Sets whether standard letters are displayed below the digits on the buttons.
+
+
+
+
+
+
+ a keypad
+
+
+
+ whether the hash, plus, and asterisk symbols should be visible
+
+
+
+
+
+
+
+ The amount of space between two consecutive columns.
+
+
+
+
+
+ The widget for the lower end corner of @self.
+
+
+
+
+
+ The entry widget connected to the keypad.
+
+The entry will block any input not possible to type with the keypad.
+
+
+
+
+
+ Whether standard letters should be displayed below the digits on the
+buttons.
+
+
+
+
+
+ The amount of space between two consecutive rows.
+
+
+
+
+
+ The widget for the lower start corner of @self.
+
+
+
+
+
+ Whether to display symbols.
+
+This includes hash and asterisk buttons, and the plus symbol at the bottom
+of its 0 button.
+
+
+
+
+
+
+
+
+
+ the parent class
+
+
+
+
+
+
+
+
+
+ An adaptive container acting like a box or a stack.
+
+The `HdyLeaflet` widget can display its children like a [class@Gtk.Box] does
+or like a [class@Gtk.Stack] does, adapting to size changes by switching
+between the two modes.
+
+When there is enough space the children are displayed side by side, otherwise
+only one is displayed and the leaflet is said to be “folded”. The threshold
+is dictated by the preferred minimum sizes of the children. When a leaflet is
+folded, the children can be navigated using swipe gestures.
+
+The “over” and “under” transition types stack the children one on top of the
+other, while the “slide” transition puts the children side by side. While
+navigating to a child on the side or below can be performed by swiping the
+current child away, navigating to an upper child requires dragging it from
+the edge where it resides. This doesn't affect non-dragging swipes.
+
+The “over” and “under” transitions can draw their shadow on top of the
+window's transparent areas, like the rounded corners. This is a side-effect
+of allowing shadows to be drawn on top of OpenGL areas. It can be mitigated
+by using [class@Window] or [class@ApplicationWindow] as they will crop
+anything drawn beyond the rounded corners.
+
+The child property `navigatable` can be set on `HdyLeaflet` children to
+determine whether they can be navigated to when folded. If `FALSE`, the child
+will be ignored by [method@Leaflet.get_adjacent_child],
+[method@Leaflet.navigate], and swipe gestures. This can be used used to
+prevent switching to widgets like separators.
+
+## CSS nodes
+
+`HdyLeaflet` has a single CSS node with name `leaflet`. The node will get the
+style classes `.folded` when it is folded, `.unfolded` when it's not, or none
+if it didn't compute its fold yet.
+
+
+
+
+
+
+ Creates a new `HdyLeaflet`.
+
+
+ the newly created `HdyLeaflet`
+
+
+
+
+ Finds the previous or next navigatable child.
+
+This will be the same widget [method@Leaflet.navigate] will navigate to.
+
+If there's no child to navigate to, `NULL` will be returned instead.
+
+
+ the previous or next child
+
+
+
+
+ a leaflet
+
+
+
+ the direction
+
+
+
+
+
+
+ Gets whether swipe gestures switch to the previous navigatable child.
+
+
+ `TRUE` if back swipe is enabled
+
+
+
+
+ a leaflet
+
+
+
+
+
+
+ Gets whether swipe gestures switch to the next navigatable child.
+
+
+ `TRUE` if forward swipe is enabled
+
+
+
+
+ a leaflet
+
+
+
+
+
+ Finds the child of @self with the name given as the argument.
+
+Returns `NULL` if there is no child with this name.
+
+
+ the requested child of @self
+
+
+
+
+ a leaflet
+
+
+
+ the name of the child to find
+
+
+
+
+
+
+ Gets the amount of time that transitions between children will take.
+
+
+ the child transition duration, in milliseconds
+
+
+
+
+ a leaflet
+
+
+
+
+
+
+ Returns whether @self is currently in a transition from one page to another.
+
+
+ whether a transition is currently running
+
+
+
+
+ a leaflet
+
+
+
+
+
+
+ Gets whether @self is folded.
+
+
+ whether @self is folded
+
+
+
+
+ a leaflet
+
+
+
+
+
+ Gets whether @self is homogeneous for the given fold and orientation.
+
+
+ whether @self is homogeneous for the given fold and orientation
+
+
+
+
+ a leaflet
+
+
+
+ the fold
+
+
+
+ the orientation
+
+
+
+
+
+
+ Gets whether to interpolate between the sizes of children on page switches.
+
+
+ `TRUE` if child sizes are interpolated
+
+
+
+
+ a leaflet
+
+
+
+
+
+
+ Gets the amount of time that transitions between modes in @self will take.
+
+
+ the mode transition duration, in milliseconds
+
+
+
+
+ a leaflet
+
+
+
+
+
+
+ Gets the animation type that will be used for transitions between modes and
+children.
+
+
+ the current transition type of @self
+
+
+
+
+ a leaflet
+
+
+
+
+
+
+ Gets the visible child widget.
+
+
+ the visible child widget
+
+
+
+
+ a leaflet
+
+
+
+
+
+
+ Gets the name of the currently visible child widget.
+
+
+ the name of the visible child
+
+
+
+
+ a leaflet
+
+
+
+
+
+ Inserts @child in the position after @sibling in the list of children.
+
+If @sibling is `NULL`, inserts @child at the first position.
+
+
+
+
+
+
+ a leaflet
+
+
+
+ the widget to insert
+
+
+
+ the sibling after which to insert @child
+
+
+
+
+
+ Navigates to the previous or next navigatable child.
+
+The switch is similar to performing a swipe gesture to go in @direction.
+
+
+ whether the visible child was changed
+
+
+
+
+ a leaflet
+
+
+
+ the direction
+
+
+
+
+
+ Inserts @child at the first position in @self.
+
+
+
+
+
+
+ a leaflet
+
+
+
+ the widget to prepend
+
+
+
+
+
+ Moves @child to the position after @sibling in the list of children.
+
+If @sibling is `NULL`, move @child to the first position.
+
+
+
+
+
+
+ a leaflet
+
+
+
+ the widget to move, must be a child of @self
+
+
+
+ the sibling to move @child after
+
+
+
+
+
+
+ Sets whether swipe gestures switch to the previous navigatable child.
+
+
+
+
+
+
+ a leaflet
+
+
+
+ the new value
+
+
+
+
+
+
+ Sets whether swipe gestures switch to the next navigatable child.
+
+
+
+
+
+
+ a leaflet
+
+
+
+ the new value
+
+
+
+
+
+
+ Sets the duration that transitions between children in @self will take.
+
+
+
+
+
+
+ a leaflet
+
+
+
+ the new duration, in milliseconds
+
+
+
+
+
+ Sets whether to be homogeneous for the given fold and orientation.
+
+If it is homogeneous, the [class@Leaflet] will request the same
+width or height for all its children depending on the orientation. If it
+isn't and it is folded, the leaflet may change width or height when a
+different child becomes visible.
+
+
+
+
+
+
+ a leaflet
+
+
+
+ the fold
+
+
+
+ the orientation
+
+
+
+ `TRUE` to make @self homogeneous
+
+
+
+
+
+
+ Sets whether @self will interpolate its size when changing the visible child.
+
+If the [property@Leaflet:interpolate-size] property is set to `TRUE`, @self
+will interpolate its size between the current one and the one it'll take
+after changing the visible child, according to the set transition duration.
+
+
+
+
+
+
+ a leaflet
+
+
+
+ the new value
+
+
+
+
+
+
+ Sets the duration that transitions between modes in @self will take.
+
+
+
+
+
+
+ a leaflet
+
+
+
+ the new duration, in milliseconds
+
+
+
+
+
+
+ Sets the animation type that will be used for transitions between modes and
+children.
+
+The transition type can be changed without problems at runtime, so it is
+possible to change the animation based on the mode or child that is about to
+become current.
+
+
+
+
+
+
+ a leaflet
+
+
+
+ the new transition type
+
+
+
+
+
+
+ Sets the currently visible widget when the leaflet is folded.
+
+
+
+
+
+
+ a leaflet
+
+
+
+ the new child
+
+
+
+
+
+
+ Makes the child with the name @name visible.
+
+See [method@Leaflet.set_visible_child] for more details.
+
+
+
+
+
+
+ a leaflet
+
+
+
+ the name of a child
+
+
+
+
+
+
+
+ Whether swipe gestures allow switching to the previous navigatable child.
+
+
+
+
+
+ Whether swipe gestures allow switching to the next navigatable child.
+
+
+
+
+
+ The child transition animation duration, in milliseconds.
+
+
+
+
+ Whether a child transition is currently running.
+
+
+
+
+ Whether the leaflet is folded.
+
+The leaflet will be folded if the size allocated to it is smaller than the
+sum of the natural size of its children, it will be unfolded otherwise.
+
+
+
+
+
+ Whether to allocate the same width for all children when folded.
+
+
+
+
+
+ Whether to allocate the same width for all children when unfolded.
+
+
+
+
+
+ Whether the size should smoothly change when changing between children.
+
+
+
+
+
+ The mode transition animation duration, in milliseconds.
+
+
+
+
+
+ The animation type used for transitions between modes and children.
+
+The transition type can be changed without problems at runtime, so it is
+possible to change the animation based on the mode or child that is about
+to become current.
+
+
+
+
+
+ Whether to allocates the same height for all children when folded.
+
+
+
+
+
+ Whether to allocate the same height for all children when unfolded.
+
+
+
+
+
+ The widget currently visible when the leaflet is folded.
+
+The transition is determined by [property@Leaflet:transition-type] and
+[property@Leaflet:child-transition-duration]. The transition can be
+cancelled by the user, in which case visible child will change back to the
+previously visible child.
+
+
+
+
+
+ The name of the widget currently visible when the leaflet is folded.
+
+See [property@Leaflet:visible-child].
+
+
+
+
+
+
+
+
+
+ the parent class
+
+
+
+
+
+
+
+
+
+ Describes the possible transitions in a [class@Leaflet] widget.
+
+New values may be added to this enumeration over time.
+
+ Cover the old page or uncover the new
+ page, sliding from or towards the end according to orientation, text
+ direction and children order
+
+
+ Uncover the new page or cover the old
+ page, sliding from or towards the start according to orientation, text
+ direction and children order
+
+
+ Slide from left, right, up or down
+ according to the orientation, text direction and the children order
+
+
+
+ Describes the direction of a swipe navigation gesture.
+
+ Corresponds to start or top, depending on
+ orientation and text direction
+
+
+ Corresponds to end or bottom, depending on
+ orientation and text direction
+
+
+
+ A group of preference rows.
+
+A `HdyPreferencesGroup` represents a group or tightly related preferences,
+which in turn are represented by [class@PreferencesRow].
+
+To summarize the role of the preferences it gathers, a group can have both a
+title and a description. The title will be used by [class@PreferencesWindow]
+to let the user look for a preference.
+
+## CSS nodes
+
+`HdyPreferencesGroup` has a single CSS node with name `preferencesgroup`.
+
+
+
+
+ Creates a new `HdyPreferencesGroup`.
+
+
+ the newly created `HdyPreferencesGroup`
+
+
+
+
+
+
+
+ the description of @self
+
+
+
+
+ a preferences group
+
+
+
+
+
+
+ Gets the title of @self.
+
+
+ the title of @self
+
+
+
+
+ a preferences group
+
+
+
+
+
+
+ Gets whether @self uses markup for the title and description.
+
+
+ whether @self uses markup for its labels
+
+
+
+
+ a preferences group
+
+
+
+
+
+
+ Sets the description for @self.
+
+
+
+
+
+
+ a preferences group
+
+
+
+ the description
+
+
+
+
+
+
+ Sets the title for @self.
+
+
+
+
+
+
+ a preferences group
+
+
+
+ the title
+
+
+
+
+
+
+ Sets whether @self uses markup for the title and description.
+
+
+
+
+
+
+ a preferences group
+
+
+
+ whether to use markup
+
+
+
+
+
+
+
+ The description for this group of preferences.
+
+
+
+
+
+ The title for this group of preferences.
+
+
+
+
+
+ Whether to use markup for the title and description.
+
+
+
+
+
+
+
+
+
+ the parent class
+
+
+
+
+
+
+
+
+
+ A page from [class@PreferencesWindow].
+
+The `HdyPreferencesPage` widget gathers preferences groups into a single page
+of a preferences window.
+
+## CSS nodes
+
+`HdyPreferencesPage` has a single CSS node with name `preferencespage`.
+
+
+
+
+ Creates a new `HdyPreferencesPage`.
+
+
+ the newly created `HdyPreferencesPage`
+
+
+
+
+
+ Gets the icon name for @self.
+
+
+ the icon name for @self
+
+
+
+
+ a preferences page
+
+
+
+
+
+
+ Gets the title of @self.
+
+
+ the title of the @self
+
+
+
+
+ a preferences page
+
+
+
+
+
+
+ Sets the icon name for @self.
+
+
+
+
+
+
+ a preferences page
+
+
+
+ the icon name
+
+
+
+
+
+
+ Sets the title of @self.
+
+
+
+
+
+
+ a preferences page
+
+
+
+ the title of the page
+
+
+
+
+
+
+
+ The icon name for this page of preferences.
+
+
+
+
+
+ The title for this page of preferences.
+
+
+
+
+
+
+
+
+
+ the parent class
+
+
+
+
+
+
+
+
+
+ A [class@Gtk.ListBoxRow] used to present preferences.
+
+The `HdyPreferencesRow` widget has a title that [class@PreferencesWindow]
+will use to let the user look for a preference. It doesn't present the title
+in any way and lets you present the preference as you please.
+
+[class@ActionRow] and its derivatives are convenient to use as preference
+rows as they take care of presenting the preference's title while letting you
+compose the inputs of the preference around it.
+
+
+
+
+
+ Creates a new `HdyPreferencesRow`.
+
+
+ the newly created `HdyPreferencesRow`
+
+
+
+
+
+ Gets the title of the preference represented by @self.
+
+
+ the title of the preference represented
+ by @self
+
+
+
+
+ a preferences row
+
+
+
+
+
+
+ Gets whether an embedded underline in the title indicates a mnemonic.
+
+
+ whether an embedded underline in the title indicates a mnemonic
+
+
+
+
+ a preferences row
+
+
+
+
+
+
+ Sets the title of the preference represented by @self.
+
+
+
+
+
+
+ a preferences row
+
+
+
+ the title
+
+
+
+
+
+
+ Sets whether an embedded underline in the title indicates a mnemonic.
+
+
+
+
+
+
+ a preferences row
+
+
+
+ `TRUE` if underlines in the text indicate mnemonics
+
+
+
+
+
+
+
+ The title of the preference represented by this row.
+
+
+
+
+
+ Whether an embedded underline in the title indicates a mnemonic.
+
+
+
+
+
+
+
+
+
+ the parent class
+
+
+
+
+
+
+
+
+
+ A window to present an application's preferences.
+
+The `HdyPreferencesWindow` widget presents an application's preferences
+gathered into pages and groups. The preferences are searchable by the user.
+
+## CSS nodes
+
+`HdyPreferencesWindow` has a main CSS node with the name `window` and the
+style class `.preferences`.
+
+
+
+
+ Creates a new `HdyPreferencesWindow`.
+
+
+ the newly created `HdyPreferencesWindow`
+
+
+
+
+ Closes the current subpage.
+
+If there is no presented subpage, this does nothing.
+
+
+
+
+
+
+ a preferences window
+
+
+
+
+
+
+ Gets whether swipe gestures allow switching from a subpage to the
+preferences.
+
+
+ `TRUE` if back swipe is enabled
+
+
+
+
+ a preferences window
+
+
+
+
+
+
+ Gets whether search is enabled for @self.
+
+
+ whether search is enabled for @self
+
+
+
+
+ a preferences window
+
+
+
+
+
+ Sets @subpage as the window's subpage and opens it.
+
+The transition can be cancelled by the user, in which case visible child will
+change back to the previously visible child.
+
+
+
+
+
+
+ a preferences window
+
+
+
+ the subpage
+
+
+
+
+
+
+ Sets whether swipe gestures allow switching from a subpage to the
+preferences.
+
+
+
+
+
+
+ a preferences window
+
+
+
+ the new value
+
+
+
+
+
+
+ Sets whether search is enabled for @self.
+
+
+
+
+
+
+ a preferences window
+
+
+
+ `TRUE` to enable search, `FALSE` to disable it
+
+
+
+
+
+
+
+ Whether the window allows closing the subpage via a swipe gesture.
+
+
+
+
+
+ Whether search is enabled.
+
+
+
+
+
+
+
+
+
+ the parent class
+
+
+
+
+
+
+
+
+
+ A toolbar to integrate a search entry with.
+
+`HdySearchBar` is a container made to have a search entry (possibly with
+additional connex widgets, such as drop-down menus, or buttons) built-in. The
+search bar would appear when a search is started through typing on the
+keyboard, or the application’s search mode is toggled on.
+
+For keyboard presses to start a search, events will need to be forwarded from
+the top-level window that contains the search bar. See
+[method@SearchBar.handle_event] for example code. Common shortcuts such as
+<kbd>Ctrl</kbd>+<kbd>F</kbd> should be handled as an application action, or
+through the menu items.
+
+You will also need to tell the search bar about which entry you are using as
+your search entry using [method@SearchBar.connect_entry]. The following
+example shows you how to create a more complex search entry.
+
+`HdySearchBar` is very similar to [class@Gtk.SearchBar], the main difference
+being that it allows the search entry to fill all the available space. This
+allows you to control your search entry's width with a [class@Clamp].
+
+## CSS nodes
+
+`HdySearchBar` has a single CSS node with name `searchbar`.
+
+
+
+
+ Creates a new `HdySearchBar.
+
+You will need to tell it about which widget is going to be your text entry
+using [method@SearchBar.connect_entry].
+
+
+ the newly created `HdySearchBar`
+
+
+
+
+ Sets the entry widget passed as the one to be used in this search bar.
+
+The entry should be a descendant of the search bar. This is only required if
+the entry isn’t the direct child of the search bar (as in our main example).
+
+
+
+
+
+
+ a search bar
+
+
+
+ an entry
+
+
+
+
+
+
+ Gets whether the search mode is on.
+
+
+ whether search mode is toggled on
+
+
+
+
+ a search bar
+
+
+
+
+
+
+ Gets whether the close button is shown.
+
+
+ whether the close button is shown
+
+
+
+
+ a search bar
+
+
+
+
+
+ Handles key press events.
+
+This function should be called when the top-level window which contains the
+search bar received a key event.
+
+If the key event is handled by the search bar, the bar will be shown, the
+entry populated with the entered text and `GDK_EVENT_STOP` will be returned.
+The caller should ensure that events are not propagated further.
+
+If no entry has been connected to the search bar, using
+[method@SearchBar.connect_entry], this function will return immediately with
+a warning.
+
+## Showing the search bar on key presses
+
+```c
+static gboolean
+on_key_press_event (GtkWidget *widget,
+ GdkEvent *event,
+ gpointer user_data)
+{
+ HdySearchBar *bar = HDY_SEARCH_BAR (user_data);
+ return hdy_search_bar_handle_event (self, event);
+}
+
+static void
+create_toplevel (void)
+{
+ GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ GtkWindow *search_bar = hdy_search_bar_new ();
+
+ // Add more widgets to the window...
+
+ g_signal_connect (window,
+ "key-press-event",
+ G_CALLBACK (on_key_press_event),
+ search_bar);
+}
+```
+
+
+ `GDK_EVENT_STOP` if the key press event resulted in text being
+ entered in the search entry (and revealing the search bar if necessary),
+ `GDK_EVENT_PROPAGATE` otherwise.
+
+
+
+
+ a search bar
+
+
+
+ a [struct@Gdk.Event] containing key press events
+
+
+
+
+
+
+ Switches the search mode on or off.
+
+
+
+
+
+
+ a search bar
+
+
+
+ the new state of the search mode
+
+
+
+
+
+
+ Shows or hides the close button.
+
+Applications that already have a “search” toggle button should not show a
+close button in their search bar, as it duplicates the role of the toggle
+button.
+
+
+
+
+
+
+ a search bar
+
+
+
+ whether the close button will be shown or not
+
+
+
+
+
+
+
+ Whether the search mode is on and the search bar shown.
+
+
+
+
+
+ Whether to show the close button in the toolbar.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A best fit container.
+
+The `HdySqueezer` widget is a container which only shows the first of its
+children that fits in the available size. It is convenient to offer different
+widgets to represent the same data with different levels of detail, making
+the widget seem to squeeze itself to fit in the available space.
+
+Transitions between children can be animated as fades. This can be controlled
+with [method@Squeezer.set_transition_type].
+
+## CSS nodes
+
+`HdySqueezer` has a single CSS node with name `squeezer`.
+
+
+
+
+
+ Creates a new `HdySqueezer`.
+
+
+ the newly created `HdySqueezer`
+
+
+
+
+ Gets whether @child is enabled.
+
+See [method@Squeezer.set_child_enabled].
+
+
+ whether @child is enabled
+
+
+
+
+ a squeezer
+
+
+
+ a child of @self
+
+
+
+
+
+
+ Gets whether @self is homogeneous.
+
+
+ whether @self is homogeneous
+
+
+
+
+ a squeezer
+
+
+
+
+
+
+ Gets whether @self should interpolate its size on visible child change.
+
+
+ whether @self interpolates its size on visible child change
+
+
+
+
+ a squeezer
+
+
+
+
+
+
+ Gets the amount of time that transitions between children will take.
+
+
+ the transition duration, in milliseconds
+
+
+
+
+ a squeezer
+
+
+
+
+
+
+ Gets whether a transition is currently running for @self.
+
+
+ whether a transition is currently running
+
+
+
+
+ a squeezer
+
+
+
+
+
+
+ Gets the animation type that will be used for transitions between children.
+
+
+ the current transition type of @self
+
+
+
+
+ a squeezer
+
+
+
+
+
+
+ Gets the currently visible child of @self.
+
+
+ the visible child
+
+
+
+
+ a squeezer
+
+
+
+
+
+
+ Gets the horizontal alignment.
+
+
+ the xalign property
+
+
+
+
+ a squeezer
+
+
+
+
+
+
+ Gets the vertical alignment.
+
+
+ the yalign property
+
+
+
+
+ a squeezer
+
+
+
+
+
+ Sets whether @child is enabled.
+
+If a child is disabled, it will be ignored when looking for the child fitting
+the available size best. This allows to programmatically and prematurely hide
+a child of @self even if it fits in the available space.
+
+This can be used e.g. to ensure a certain child is hidden below a certain
+window width, or any other constraint you find suitable.
+
+
+
+
+
+
+ a squeezer
+
+
+
+ a child of @self
+
+
+
+ whether to enable the child
+
+
+
+
+
+
+ Sets whether all children have the same size for the opposite orientation.
+
+
+
+
+
+
+ a squeezer
+
+
+
+ `TRUE` to make @self homogeneous
+
+
+
+
+
+
+ Sets whether @self should interpolate its size on visible child change.
+
+
+
+
+
+
+ a squeezer
+
+
+
+ `TRUE` to interpolate the size
+
+
+
+
+
+
+ Sets the duration that transitions between children in @self will take.
+
+
+
+
+
+
+ a squeezer
+
+
+
+ the new duration, in milliseconds
+
+
+
+
+
+
+ Sets the animation type that will be used for transitions between children.
+
+
+
+
+
+
+ a squeezer
+
+
+
+ the new transition type
+
+
+
+
+
+
+ Sets the horizontal alignment.
+
+
+
+
+
+
+ a squeezer
+
+
+
+ the new xalign value, between 0 and 1
+
+
+
+
+
+
+ Sets the vertical alignment.
+
+
+
+
+
+
+ a squeezer
+
+
+
+ the new yalign value, between 0 and 1
+
+
+
+
+
+
+
+ Whether all children have the same size for the opposite orientation.
+
+For example, if a squeezer is horizontal and is homogeneous, it will request
+the same height for all its children. If it isn't, the squeezer may change
+size when a different child becomes visible.
+
+
+
+
+
+ Whether the squeezer interpolates its size when changing the visible child.
+
+If `TRUE`, the squeezer will interpolate its size between the one of the
+previous visible child and the one of the new visible child, according to
+the set transition duration and the orientation, e.g. if the squeezer is
+horizontal, it will interpolate the its height.
+
+
+
+
+
+ The animation duration, in milliseconds.
+
+
+
+
+ Whether a transition is currently running.
+
+
+
+
+
+ The type of animation used for transitions between children.
+
+Available types include various kinds of fades and slides.
+
+The transition type can be changed without problems at runtime, so it is
+possible to change the animation based on the child that is about to become
+current.
+
+
+
+
+ The currently visible child.
+
+
+
+
+
+ The horizontal alignment, from 0 (start) to 1 (end).
+
+The xalign property determines the horizontal alignment of the children
+inside the squeezer's size allocation. Compare this to
+[property@Gtk.Widget:halign], which determines how the squeezer's size
+allocation is positioned in the space available for the squeezer.
+
+This will affect the position of children too wide to fit in the squeezer
+as they are fading out.
+
+
+
+
+
+ The vertical alignment, from 0 (start) to 1 (end).
+
+The yalign property determines the vertical alignment of the children
+inside the squeezer's size allocation. Compare this to
+[property@Gtk.Widget:valign], which determines how the squeezer's size
+allocation is positioned in the space available for the squeezer.
+
+This will affect the position of children too tall to fit in the squeezer
+as they are fading out.
+
+
+
+
+
+
+
+
+
+
+ Describes the possible transitions in a [class@Squeezer] widget.
+
+ No transition
+
+
+ A cross-fade
+
+
+
+ A page used for empty/error states and similar use-cases.
+
+The `HdyStatusPage` widget can have an icon, a title, a description and a
+custom widget which is displayed below them.
+
+## CSS nodes
+
+`HdyStatusPage` has a main CSS node with name `statuspage`.
+
+
+
+
+ Creates a new `HdyStatusPage`.
+
+
+ the newly created `HdyStatusPage`
+
+
+
+
+
+ Gets the description for @self.
+
+
+ the description for @self
+
+
+
+
+ a status page
+
+
+
+
+
+
+ Gets the icon name for @self.
+
+
+ the icon name for @self
+
+
+
+
+ a status page
+
+
+
+
+
+
+ Gets the title for @self.
+
+
+ the title for @self
+
+
+
+
+ a status page
+
+
+
+
+
+
+ Sets the description for @self.
+
+
+
+
+
+
+ a status page
+
+
+
+ the description
+
+
+
+
+
+
+ Sets the icon name for @self.
+
+
+
+
+
+
+ a status page
+
+
+
+ the icon name
+
+
+
+
+
+
+ Sets the title for @self.
+
+
+
+
+
+
+ a status page
+
+
+
+ the title
+
+
+
+
+
+
+
+ The description to be displayed below the title.
+
+
+
+
+
+ The name of the icon to be used.
+
+
+
+
+
+ The title to be displayed below the icon.
+
+
+
+
+
+
+
+
+
+
+ A class for managing application-wide styling.
+
+`HdyStyleManager` provides a way to query and influence the application
+styles, such as whether to use dark or high contrast appearance.
+
+It allows to set the color scheme via the
+[property@StyleManager:color-scheme] property, and to query the current
+appearance, as well as whether a system-wide color scheme preference exists.
+
+Important: [property@Gtk.Settings:gtk-application-prefer-dark-theme] should
+not be used together with `HdyStyleManager` and will result in a warning.
+Color schemes should be used instead.
+
+
+ Gets the default [class@StyleManager] instance.
+
+It manages all [class@Gdk.Display] instances unless the style manager for
+that display has an override.
+
+See [func@StyleManager.get_for_display].
+
+
+ the default style manager
+
+
+
+
+ Gets the [class@StyleManager] instance managing @display.
+
+It can be used to override styles for that specific display instead of the
+whole application.
+
+Most applications should use [func@StyleManager.get_default] instead.
+
+
+ the style manager for @display
+
+
+
+
+ a display
+
+
+
+
+
+
+ Gets the requested application color scheme.
+
+
+ the color scheme
+
+
+
+
+ a style manager
+
+
+
+
+
+
+ Gets whether the application is using dark appearance.
+
+
+ whether the application is using dark appearance
+
+
+
+
+ a style manager
+
+
+
+
+
+
+ Gets the display the style manager is associated with.
+
+The display will be `NULL` for the style manager returned by
+[func@StyleManager.get_default].
+
+
+ (nullable): the display
+
+
+
+
+ a style manager
+
+
+
+
+
+
+ Gets whether the application is using high contrast appearance.
+
+
+ whether the application is using high contrast appearance
+
+
+
+
+ a style manager
+
+
+
+
+
+
+ Gets whether the system supports color schemes.
+
+
+ whether the system supports color schemes
+
+
+
+
+ a style manager
+
+
+
+
+
+
+ Sets the requested application color scheme.
+
+The effective appearance will be decided based on the application color
+scheme and the system preferred color scheme. The
+[property@StyleManager:dark] property can be used to query the current
+effective appearance.
+
+
+
+
+
+
+ a style manager
+
+
+
+ the color scheme
+
+
+
+
+
+
+
+ The requested application color scheme.
+
+The effective appearance will be decided based on the application color
+scheme and the system preferred color scheme. The
+[property@StyleManager:dark] property can be used to query the current
+effective appearance.
+
+The `HDY_COLOR_SCHEME_PREFER_LIGHT` color scheme results in the application
+using light appearance unless the system prefers dark colors. This is the
+default value.
+
+The `HDY_COLOR_SCHEME_PREFER_DARK` color scheme results in the application
+using dark appearance, but can still switch to the light appearance if the
+system can prefers it, for example, when the high contrast preference is
+enabled.
+
+The `HDY_COLOR_SCHEME_FORCE_LIGHT` and `HDY_COLOR_SCHEME_FORCE_DARK` values
+ignore the system preference entirely, they are useful if the application
+wants to match its UI to its content or to provide a separate color scheme
+switcher.
+
+If a per-[class@Gdk.Display] style manager has its color scheme set to
+`HDY_COLOR_SCHEME_DEFAULT`, it will inherit the color scheme from the
+default style manager.
+
+For the default style manager, `HDY_COLOR_SCHEME_DEFAULT` is equivalent to
+`HDY_COLOR_SCHEME_FORCE_LIGHT`.
+
+The [property@StyleManager:system-supports-color-schemes] property can be
+used to check if the current environment provides a color scheme
+preference.
+
+
+
+
+ Whether the application is using dark appearance.
+
+This property can be used to query the current appearance, as requested via
+[property@StyleManager:color-scheme].
+
+
+
+
+ The display the style manager is associated with.
+
+The display will be `NULL` for the style manager returned by
+[func@StyleManager.get_default].
+
+
+
+
+ Whether the application is using high contrast appearance.
+
+This cannot be overridden by applications.
+
+
+
+
+ Whether the system supports color schemes.
+
+This property can be used to check if the current environment provides a
+color scheme preference. For example, applications might want to show a
+separate appearance switcher if it's set to `FALSE`.
+
+It's only set at startup and cannot change its value later.
+
+See [property@StyleManager:color-scheme].
+
+
+
+
+
+
+
+
+
+
+ An object for syncing swipeable widgets.
+
+The `HdySwipeGroup` object can be used to sync multiple swipeable widgets
+that implement the [iface@Swipeable] interface, such as [class@Carousel], so
+that animating one of them also animates all the other widgets in the group.
+
+This can be useful for syncing widgets between a window's titlebar and
+content area.
+
+## HdySwipeGroup as GtkBuildable
+
+`HdySwipeGroup` can be created in an UI definition. The list of swipeable
+widgets is specified with a <swipeables> element containing multiple
+<swipeable> elements with their ”name” attribute specifying the id of
+the widgets.
+
+```xml
+<object class="HdySwipeGroup">
+ <swipeables>
+ <swipeable name="carousel1"/>
+ <swipeable name="carousel2"/>
+ </swipeables>
+</object>
+```
+
+`HdySwipeGroup` has been deprecated, [class@Window] and
+[class@ApplicationWindow] allow using a single leaflet for both content and
+header bar, without the need to sync them.
+
+
+
+ Creates a new `HdySwipeGroup`.
+
+
+ the newly created `HdySwipeGroup`
+
+
+
+
+ Adds a swipeable to @self.
+
+When the widget is destroyed or no longer referenced elsewhere, it will be
+removed from the swipe group.
+
+
+
+
+
+
+ a swipe group
+
+
+
+ the [iface@Swipeable] to add
+
+
+
+
+
+ Gets the list of swipeables associated with @self.
+
+
+ a list of swipeables
+
+
+
+
+
+
+ a swipe group
+
+
+
+
+
+ Removes a widget from a [class@SwipeGroup].
+
+
+
+
+
+
+ a swipe group
+
+
+
+ the [iface@Swipeable] to remove
+
+
+
+
+
+
+
+
+
+
+
+
+ Swipe tracker used in [class@Carousel] and [class@Leaflet].
+
+The `HdySwipeTracker` object can be used for implementing widgets with swipe
+gestures. It supports touch-based swipes, pointer dragging, and touchpad
+scrolling.
+
+The widgets will probably want to expose [property@SwipeTracker:enabled]
+property. If they expect to use horizontal orientation,
+[property@SwipeTracker:reversed] property can be used for supporting RTL text
+direction.
+
+
+
+ Creates a new `HdySwipeTracker` object on @widget.
+
+
+ the newly created `HdySwipeTracker`
+
+
+
+
+ a swipeable to add the tracker on
+
+
+
+
+
+
+ Whether to allow swiping for more than one snap point at a time.
+
+If the value is `FALSE`, each swipe can only move to the adjacent snap
+points.
+
+
+ whether long swipes are allowed
+
+
+
+
+ a swipe tracker
+
+
+
+
+
+
+ Get whether @self can be dragged with mouse pointer.
+
+
+ `TRUE` is mouse dragging is allowed
+
+
+
+
+ a swipe tracker
+
+
+
+
+
+
+ Get whether @self is enabled.
+
+
+ `TRUE` if @self is enabled
+
+
+
+
+ a swipe tracker
+
+
+
+
+
+
+ Get whether @self is reversing the swipe direction.
+
+
+ `TRUE` is the direction is reversed
+
+
+
+
+ a swipe tracker
+
+
+
+
+
+
+ Get @self's swipeable widget.
+
+
+ the swipeable widget
+
+
+
+
+ a swipe tracker
+
+
+
+
+
+
+ Sets whether to allow swiping for more than one snap point at a time.
+
+If the value is `FALSE`, each swipe can only move to the adjacent snap
+points.
+
+
+
+
+
+
+ a swipe tracker
+
+
+
+ whether to allow long swipes
+
+
+
+
+
+
+ Set whether @self can be dragged with mouse pointer.
+
+This should usually be `FALSE`.
+
+
+
+
+
+
+ a swipe tracker
+
+
+
+ whether to allow mouse dragging
+
+
+
+
+
+
+ Set whether @self is enabled.
+
+
+
+
+
+
+ a swipe tracker
+
+
+
+ whether to enable to swipe tracker
+
+
+
+
+
+
+ Set whether to reverse the swipe direction.
+
+If @self is horizontal, can be used for supporting RTL text direction.
+
+
+
+
+
+
+ a swipe tracker
+
+
+
+ whether to reverse the swipe direction
+
+
+
+
+
+ Move the current progress value by @delta.
+
+This can be used to adjust the current position if snap points move during
+the gesture.
+
+
+
+
+
+
+ a swipe tracker
+
+
+
+ the position delta
+
+
+
+
+
+
+
+ Whether to allow swiping for more than one snap point at a time.
+
+If the value is `FALSE`, each swipe can only move to the adjacent snap
+points.
+
+
+
+
+
+ Whether to allow dragging with mouse pointer.
+
+This should usually be `FALSE`.
+
+
+
+
+
+ Whether the swipe tracker is enabled.
+
+When it's not enabled, no events will be processed. Usually widgets will
+want to expose this via a property.
+
+
+
+
+
+ Whether to reverse the swipe direction.
+
+If the swipe tracker is horizontal, it can be used for supporting RTL text
+direction.
+
+
+
+
+ The widget the swipe tracker is attached to. Must not be `NULL`.
+
+
+
+ This signal is emitted when a possible swipe is detected.
+
+The @direction value can be used to restrict the swipe to a certain
+direction.
+
+
+
+
+
+ the direction of the swipe
+
+
+
+ `TRUE` if the swipe is directly triggered by a gesture,
+ `FALSE` if it's triggered via a [class@SwipeGroup]
+
+
+
+
+
+ This signal is emitted as soon as the gesture has stopped.
+
+
+
+
+
+ snap-back animation duration, in milliseconds
+
+
+
+ the progress value to animate to
+
+
+
+
+
+ This signal is emitted every time the progress value changes.
+
+
+
+
+
+ the current animation progress value
+
+
+
+
+
+
+
+
+
+
+
+
+ An interface for swipeable widgets.
+
+The `HdySwipeable` interface is implemented by all swipeable widgets. They
+can be synced using [class@SwipeGroup].
+
+See [class@SwipeTracker] for details about implementing it.
+
+
+
+ Gets the progress @self will snap back to after the gesture is canceled.
+
+
+ the cancel progress, unitless
+
+
+
+
+ a swipeable
+
+
+
+
+
+ Gets the swipe distance of @self.
+
+This corresponds to how many pixels 1 unit represents.
+
+
+ the swipe distance in pixels
+
+
+
+
+ a swipeable
+
+
+
+
+
+ Gets the current progress of @self.
+
+
+ the current progress, unitless
+
+
+
+
+ a swipeable
+
+
+
+
+
+ Gets the snap points of @self.
+
+Each snap point represents a progress value that is considered acceptable to
+end the swipe on.
+
+
+ the snap points
+
+
+
+
+
+
+ a swipeable
+
+
+
+ location to return the number of the snap points
+
+
+
+
+
+ Gets the area @self can start a swipe from for the given direction and
+gesture type.
+
+This can be used to restrict swipes to only be possible from a certain area,
+for example, to only allow edge swipes, or to have a draggable element and
+ignore swipes elsewhere.
+
+Swipe area is only considered for direct swipes (as in, not initiated by
+[class@SwipeGroup]).
+
+If not implemented, the default implementation returns the allocation of
+@self, allowing swipes from anywhere.
+
+
+
+
+
+
+ a swipeable
+
+
+
+ the direction of the swipe
+
+
+
+ whether the swipe is caused by a dragging gesture
+
+
+
+ a pointer to a rectangle to store the swipe area
+
+
+
+
+
+ Gets the [class@SwipeTracker] used by this swipeable widget.
+
+
+ the swipe tracker
+
+
+
+
+ a swipeable
+
+
+
+
+
+ Switches to child with index @index.
+
+See [signal@Swipeable::child-switched].
+
+
+
+
+
+
+ a swipeable
+
+
+
+ the index of the child to switch to
+
+
+
+ animation duration, in milliseconds
+
+
+
+
+
+ Emits [signal@Swipeable::child-switched] signal.
+
+This should be called when the widget switches visible child widget.
+
+@duration can be 0 if the child is switched without animation.
+
+
+
+
+
+
+ a swipeable
+
+
+
+ the index of the child to switch to
+
+
+
+ animation duration, in milliseconds
+
+
+
+
+
+ Gets the progress @self will snap back to after the gesture is canceled.
+
+
+ the cancel progress, unitless
+
+
+
+
+ a swipeable
+
+
+
+
+
+ Gets the swipe distance of @self.
+
+This corresponds to how many pixels 1 unit represents.
+
+
+ the swipe distance in pixels
+
+
+
+
+ a swipeable
+
+
+
+
+
+ Gets the current progress of @self.
+
+
+ the current progress, unitless
+
+
+
+
+ a swipeable
+
+
+
+
+
+ Gets the snap points of @self.
+
+Each snap point represents a progress value that is considered acceptable to
+end the swipe on.
+
+
+ the snap points
+
+
+
+
+
+
+ a swipeable
+
+
+
+ location to return the number of the snap points
+
+
+
+
+
+ Gets the area @self can start a swipe from for the given direction and
+gesture type.
+
+This can be used to restrict swipes to only be possible from a certain area,
+for example, to only allow edge swipes, or to have a draggable element and
+ignore swipes elsewhere.
+
+Swipe area is only considered for direct swipes (as in, not initiated by
+[class@SwipeGroup]).
+
+If not implemented, the default implementation returns the allocation of
+@self, allowing swipes from anywhere.
+
+
+
+
+
+
+ a swipeable
+
+
+
+ the direction of the swipe
+
+
+
+ whether the swipe is caused by a dragging gesture
+
+
+
+ a pointer to a rectangle to store the swipe area
+
+
+
+
+
+ Gets the [class@SwipeTracker] used by this swipeable widget.
+
+
+ the swipe tracker
+
+
+
+
+ a swipeable
+
+
+
+
+
+ Switches to child with index @index.
+
+See [signal@Swipeable::child-switched].
+
+
+
+
+
+
+ a swipeable
+
+
+
+ the index of the child to switch to
+
+
+
+ animation duration, in milliseconds
+
+
+
+
+
+ Emitted when the widget's visible child is changed.
+
+@duration can be 0 if the child is switched without animation.
+
+This is used by [class@SwipeGroup], applications should not connect to it.
+
+
+
+
+
+ the index of the child to switch to
+
+
+
+ animation duration, in milliseconds
+
+
+
+
+
+
+ An interface for swipeable widgets.
+
+
+ the parent interface
+
+
+
+
+
+
+
+
+
+
+ a swipeable
+
+
+
+ the index of the child to switch to
+
+
+
+ animation duration, in milliseconds
+
+
+
+
+
+
+
+
+
+ the swipe tracker
+
+
+
+
+ a swipeable
+
+
+
+
+
+
+
+
+
+ the swipe distance in pixels
+
+
+
+
+ a swipeable
+
+
+
+
+
+
+
+
+
+ the snap points
+
+
+
+
+
+
+ a swipeable
+
+
+
+ location to return the number of the snap points
+
+
+
+
+
+
+
+
+
+ the current progress, unitless
+
+
+
+
+ a swipeable
+
+
+
+
+
+
+
+
+
+ the cancel progress, unitless
+
+
+
+
+ a swipeable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ a swipeable
+
+
+
+ the direction of the swipe
+
+
+
+ whether the swipe is caused by a dragging gesture
+
+
+
+ a pointer to a rectangle to store the swipe area
+
+
+
+
+
+
+
+
+
+
+
+
+ A tab bar for [class@TabView].
+
+The `HdyTabBar` widget is a tab bar that can be used with conjunction with
+[class@TabView].
+
+`HdyTabBar` can autohide and can optionally contain action widgets on both
+sides of the tabs.
+
+When there's not enough space to show all the tabs, `HdyTabBar` will scroll
+them. Pinned tabs always stay visible and aren't a part of the scrollable
+area.
+
+## CSS nodes
+
+`HdyTabBar` has a single CSS node with name `tabbar`.
+
+
+
+
+ Creates a new `HdyTabBar` widget.
+
+
+ a new `HdyTabBar`
+
+
+
+
+
+ Gets whether the tabs automatically hide.
+
+
+ whether the tabs automatically hide
+
+
+
+
+ a tab bar
+
+
+
+
+
+
+ Gets the widget shown after the tabs.
+
+
+ the widget shown after the tabs
+
+
+
+
+ a tab bar
+
+
+
+
+
+
+ Gets whether tabs should expand.
+
+
+ whether tabs should expand
+
+
+
+
+ a tab bar
+
+
+
+
+
+
+ Gets extra drag destination targets.
+
+
+ extra drag targets
+
+
+
+
+ a tab bar
+
+
+
+
+
+
+ Gets whether tabs use inverted layout.
+
+
+ whether tabs use inverted layout
+
+
+
+
+ a tab bar
+
+
+
+
+
+
+ Gets whether @self is overflowing.
+
+
+ whether @self is overflowing
+
+
+
+
+ a tab bar
+
+
+
+
+
+
+ Gets the widget shown before the tabs.
+
+
+ the widget shown before the tabs
+
+
+
+
+ a tab bar
+
+
+
+
+
+
+ Gets the value of the [property@TabBar:tabs-revealed] property.
+
+
+ whether the tabs are current revealed
+
+
+
+
+ a tab bar
+
+
+
+
+
+
+ Gets the [class@TabView] @self controls.
+
+
+ the [class@TabView] @self controls
+
+
+
+
+ a tab bar
+
+
+
+
+
+
+ Sets whether the tabs automatically hide.
+
+If @autohide is `TRUE`, the tab bar disappears when the associated
+[class@TabView] has 0 or 1 tab, no pinned tabs, and no tab is being
+transferred.
+
+Autohide is enabled by default.
+
+See [property@TabBar:tabs-revealed].
+
+
+
+
+
+
+ a tab bar
+
+
+
+ whether the tabs automatically hide
+
+
+
+
+
+
+ Sets the widget to show after the tabs.
+
+
+
+
+
+
+ a tab bar
+
+
+
+ the widget to show after the tabs
+
+
+
+
+
+
+ Sets whether tabs should expand.
+
+If @expand_tabs is `TRUE`, the tabs will always vary width filling the whole
+width when possible, otherwise tabs will always have the minimum possible
+size.
+
+Expand is enabled by default.
+
+
+
+
+
+
+ a tab bar
+
+
+
+ whether to expand tabs
+
+
+
+
+
+
+ Sets extra drag destination targets.
+
+This allows to drag arbitrary content onto tabs, for example URLs in a web
+browser.
+
+If a tab is hovered for a certain period of time while dragging the content,
+it will be automatically selected.
+
+After content is dropped, the [signal@TabBar::extra-drag-data-received]
+signal can be used to retrieve and process the drag data.
+
+
+
+
+
+
+ a tab bar
+
+
+
+ extra drag targets
+
+
+
+
+
+
+ Sets whether tabs tabs use inverted layout.
+
+If @inverted is `TRUE`, non-pinned tabs will have the close button at the
+beginning and the indicator at the end rather than the opposite.
+
+
+
+
+
+
+ a tab bar
+
+
+
+ whether tabs use inverted layout
+
+
+
+
+
+
+ Sets the widget to show before the tabs.
+
+
+
+
+
+
+ a tab bar
+
+
+
+ the widget to show before the tabs
+
+
+
+
+
+
+ Sets the [class@TabView] @self controls.
+
+
+
+
+
+
+ a tab bar
+
+
+
+ a tab view
+
+
+
+
+
+
+
+ Whether tabs automatically hide.
+
+If set to `TRUE`, the tab bar disappears when the associated
+[class@TabView] has 0 or 1 tab, no pinned tabs, and no tab is being
+transferred.
+
+See [property@TabBar:tabs-revealed].
+
+
+
+
+
+ The widget shown after the tabs.
+
+
+
+
+
+ Whether tabs should expand.
+
+If set to `TRUE`, the tabs will always vary width filling the whole width
+when possible, otherwise tabs will always have the minimum possible size.
+
+
+
+
+
+ Extra drag destination targets.
+
+Allows to drag arbitrary content onto tabs, for example URLs in a web
+browser.
+
+If a tab is hovered for a certain period of time while dragging the
+content, it will be automatically selected.
+
+After content is dropped, the [signal@TabBar::extra-drag-data-received]
+signal can be used to retrieve and process the drag data.
+
+
+
+
+
+ Whether tabs use inverted layout.
+
+If set to `TRUE`, non-pinned tabs will have the close button at the
+beginning and the indicator at the end rather than the opposite.
+
+
+
+
+ Whether the tab bar is overflowing.
+
+If set to `TRUE`, all tabs cannot be displayed at once and require
+scrolling.
+
+
+
+
+
+ The widget shown before the tabs.
+
+
+
+
+ Whether tabs are currently revealed.
+
+See [property@TabBar:autohide].
+
+
+
+
+
+ The [class@TabView] the tab bar controls.
+
+
+
+ Emitted when content allowed via [property@TabBar:extra-drag-dest-targets]
+is dropped onto a tab.
+
+See [signal@Gtk.Widget::drag-data-received].
+
+
+
+
+
+ the tab page matching the tab the content was dropped onto
+
+
+
+ the drag context
+
+
+
+ the received data
+
+
+
+ the info that has been registered with the target in the
+ [struct@Gtk.TargetList]
+
+
+
+ the timestamp at which the data was received
+
+
+
+
+
+
+
+
+
+
+
+
+ An auxiliary class used by [class@TabView].
+
+
+
+ Gets the child of @self.
+
+
+ the child of @self
+
+
+
+
+ a tab page
+
+
+
+
+
+
+ Gets the icon of @self.
+
+
+ the icon of @self
+
+
+
+
+ a tab page
+
+
+
+
+
+
+ Gets whether the indicator of @self is activatable.
+
+
+ whether the indicator is activatable
+
+
+
+
+ a tab page
+
+
+
+
+
+
+ Gets the indicator icon of @self.
+
+
+ the indicator icon of @self
+
+
+
+
+ a tab page
+
+
+
+
+
+
+ Gets whether @self is loading.
+
+
+ whether @self is loading
+
+
+
+
+ a tab page
+
+
+
+
+
+
+ Gets whether @self needs attention.
+
+
+ whether @self needs attention
+
+
+
+
+ a tab page
+
+
+
+
+
+
+ Gets the parent page of @self.
+
+
+ the parent page of @self
+
+
+
+
+ a tab page
+
+
+
+
+
+
+ Gets whether @self is pinned.
+
+
+ whether @self is pinned
+
+
+
+
+ a tab page
+
+
+
+
+
+
+ Gets whether @self is selected.
+
+
+ whether @self is selected
+
+
+
+
+ a tab page
+
+
+
+
+
+
+ Gets the title of @self.
+
+
+ the title of @self
+
+
+
+
+ a tab page
+
+
+
+
+
+
+ Gets the tooltip of @self.
+
+
+ the tooltip of @self
+
+
+
+
+ a tab page
+
+
+
+
+
+
+ Sets the icon of @self.
+
+
+
+
+
+
+ a tab page
+
+
+
+ the icon of @self
+
+
+
+
+
+
+ Sets whether the indicator of @self is activatable.
+
+
+
+
+
+
+ a tab page
+
+
+
+ whether the indicator is activatable
+
+
+
+
+
+
+ Sets the indicator icon of @self.
+
+
+
+
+
+
+ a tab page
+
+
+
+ the indicator icon of @self
+
+
+
+
+
+
+ Sets whether @self is loading.
+
+
+
+
+
+
+ a tab page
+
+
+
+ whether @self is loading
+
+
+
+
+
+
+ Sets whether @self needs attention.
+
+
+
+
+
+
+ a tab page
+
+
+
+ whether @self needs attention
+
+
+
+
+
+
+ Sets the title of @self.
+
+
+
+
+
+
+ a tab page
+
+
+
+ the title of @self
+
+
+
+
+
+
+ Sets the tooltip of @self.
+
+
+
+
+
+
+ a tab page
+
+
+
+ the tooltip of @self
+
+
+
+
+
+
+ The child of the page.
+
+
+
+
+
+ The icon of the page.
+
+[class@TabBar] displays the icon next to the title.
+
+It will not show the icon if [property@TabPage:loading] is set to `TRUE`,
+or if the page is pinned and [propertyTabPage:indicator-icon] is set.
+
+
+
+
+
+ Whether the indicator icon is activatable.
+
+If set to `TRUE`, [signal@TabView::indicator-activated] will be emitted
+when the indicator icon is clicked.
+
+If [property@TabPage:indicator-icon] is not set, does nothing.
+
+
+
+
+
+ An indicator icon for the page.
+
+A common use case is an audio or camera indicator in a web browser.
+
+[class@TabPage] will show it at the beginning of the tab, alongside icon
+representing [property@TabPage:icon] or loading spinner.
+
+If the page is pinned, the indicator will be shown instead of icon or
+spinner.
+
+If [property@TabPage:indicator-activatable] is set to `TRUE`, the indicator
+icon can act as a button.
+
+
+
+
+
+ Whether the page is loading.
+
+If set to `TRUE`, [class@TabBar] will display a spinner in place of icon.
+
+If the page is pinned and [property@TabPage:indicator-icon] is set, the
+loading status will not be visible.
+
+
+
+
+
+ Whether the page needs attention.
+
+[class@TabBar] will display a glow under the tab representing the page if
+set to `TRUE`. If the tab is not visible, the corresponding edge of the tab
+bar will be highlighted.
+
+
+
+
+ The parent page of the page.
+
+See [method@TabView.add_page] and [method@TabView.close_page].
+
+
+
+
+ Whether the page is pinned.
+
+See [method@TabView.set_page_pinned].
+
+
+
+
+ Whether the page is selected.
+
+
+
+
+
+ The title of the page.
+
+[class@TabBar] will display it in the center of the tab unless it's pinned,
+and will use it as a tooltip unless [property@TabPage:tooltip] is set.
+
+
+
+
+
+ The tooltip of the page.
+
+The tooltip can be marked up with the Pango text markup language.
+
+If not set, [class@TabBar] will use [property@TabPage:title] as a tooltip
+instead.
+
+
+
+
+
+
+
+
+
+
+ A dynamic tabbed container.
+
+`HdyTabView` is a container which shows one child at a time. While it
+provides keyboard shortcuts for switching between pages, it does not provide
+a visible tab bar and relies on external widgets for that, such as
+[class@TabBar].
+
+`HdyTabView` maintains a [class@TabPage] object for each page,which holds
+additional per-page properties. You can obtain the [class@TabPage] for a page
+with [method@TabView.get_page], and as return value for
+[method@TabView.append] and other functions for adding children.
+
+`HdyTabView` only aims to be useful for dynamic tabs in multi-window
+document-based applications, such as web browsers, file managers, text
+editors or terminals. It does not aim to replace [class@Gtk.Notebook] for use
+cases such as tabbed dialogs.
+
+As such, it does not support disabling page reordering or detaching, or
+adding children via [iface@Gtk.Buildable].
+
+## CSS nodes
+
+`HdyTabView` has a main CSS node with the name `tabview`.
+
+It contains the subnode overlay, which contains subnodes stack and widget.
+The stack subnode contains the added pages.
+
+```
+tabview
+╰── overlay
+ ├── stack
+ │ ╰── [ Children ]
+ ╰── widget
+```
+
+
+
+
+ Creates a new `HdyTabView`.
+
+
+ the newly created `HdyTabView`
+
+
+
+
+ Adds @child to @self with @parent as the parent.
+
+This function can be used to automatically position new pages, and to select
+the correct page when this page is closed while being selected (see
+[method@TabView.close_page].
+
+If @parent is `NULL`, this function is equivalent to [method@TabView.append].
+
+
+ the page object representing @child
+
+
+
+
+ a tab view
+
+
+
+ a widget to add
+
+
+
+ a parent page for @child
+
+
+
+
+
+ Inserts @child as the last non-pinned page.
+
+
+ the page object representing @child
+
+
+
+
+ a tab view
+
+
+
+ a widget to add
+
+
+
+
+
+ Inserts @child as the last pinned page.
+
+
+ the page object representing @child
+
+
+
+
+ a tab view
+
+
+
+ a widget to add
+
+
+
+
+
+ Requests to close all pages other than @page.
+
+
+
+
+
+
+ a tab view
+
+
+
+ a page of @self
+
+
+
+
+
+ Requests to close @page.
+
+Calling this function will result in [signal@TabView::close-page] signal
+being emitted for @page. Closing the page can then be confirmed or denied via
+[method@TabView.close_page_finish].
+
+If the page is waiting for a [method@TabView.close_page_finish] call, this
+function will do nothing.
+
+The default handler for [signal@TabView::close-page] will immediately confirm
+closing the page if it's non-pinned, or reject it if it's pinned. This
+behavior can be changed by registering your own handler for that signal.
+
+If @page was selected, another page will be selected instead:
+
+If the [property@TabPage:parent] value is `NULL`, the next page will be
+selected when possible, or if the page was already last, the previous page
+will be selected instead.
+
+If it's not `NULL`, the previous page will be selected if it's a descendant
+(possibly indirect) of the parent. If both the previous page and the parent
+are pinned, the parent will be selected instead.
+
+
+
+
+
+
+ a tab view
+
+
+
+ a page of @self
+
+
+
+
+
+ Completes a [method@TabView.close_page] call for @page.
+
+If @confirm is `TRUE`, @page will be closed. If it's `FALSE`, ite will be
+reverted to its previous state and [method@TabView.close_page] can be called
+for it again.
+
+This function should not be called unless a custom handler for
+[signal@TabView::close-page] is used.
+
+
+
+
+
+
+ a tab view
+
+
+
+ a page of @self
+
+
+
+ whether to confirm or deny closing @page
+
+
+
+
+
+ Requests to close all pages after @page.
+
+
+
+
+
+
+ a tab view
+
+
+
+ a page of @self
+
+
+
+
+
+ Requests to close all pages before @page.
+
+
+
+
+
+
+ a tab view
+
+
+
+ a page of @self
+
+
+
+
+
+
+ Gets default icon of @self.
+
+
+ the default icon of @self
+
+
+
+
+ a tab view
+
+
+
+
+
+
+ Whether a page is being transferred.
+
+Gets the value of [property@TabView:is-transferring-page] property.
+
+
+ whether a page is being transferred
+
+
+
+
+ a tab view
+
+
+
+
+
+
+ Gets the tab context menu model for @self.
+
+
+ the tab context menu model for @self
+
+
+
+
+ a tab view
+
+
+
+
+
+
+ Gets the number of pages in @self.
+
+
+ the number of pages in @self
+
+
+
+
+ a tab view
+
+
+
+
+
+
+ Gets the number of pinned pages in @self.
+
+See [method@TabView.set_page_pinned].
+
+
+ the number of pinned pages in @self
+
+
+
+
+ a tab view
+
+
+
+
+
+ Gets the [class@TabPage] representing the child at @position.
+
+
+ the page object at @position
+
+
+
+
+ a tab view
+
+
+
+ the index of the page in @self, starting from 0
+
+
+
+
+
+ Gets the [class@TabPage] object representing @child.
+
+
+ the [class@TabPage] representing @child
+
+
+
+
+ a tab view
+
+
+
+ a child in @self
+
+
+
+
+
+ Finds the position of @page in @self, starting from 0.
+
+
+ the position of @page in @self
+
+
+
+
+ a tab view
+
+
+
+ a page of @self
+
+
+
+
+
+ Returns a [iface@Gio.ListModel] containing the pages of @self.
+
+This model can be used to keep an up to date view of the pages.
+
+
+ the model containing pages of @self
+
+
+
+
+ a tab view
+
+
+
+
+
+
+ Gets the currently selected page in @self.
+
+
+ the selected page in @self
+
+
+
+
+ a tab view
+
+
+
+
+
+
+ Gets the shortcut widget for @self.
+
+
+ the shortcut widget for @self
+
+
+
+
+ a tab view
+
+
+
+
+
+ Inserts a non-pinned page at @position.
+
+It's an error to try to insert a page before a pinned page, in that case
+[method@TabView.insert_pinned] should be used instead.
+
+
+ the page object representing @child
+
+
+
+
+ a tab view
+
+
+
+ a widget to add
+
+
+
+ the position to add @child at, starting from 0
+
+
+
+
+
+ Inserts a pinned page at @position.
+
+It's an error to try to insert a pinned page after a non-pinned page, in that
+case [method@TabView.insert] should be used instead.
+
+
+ the page object representing @child
+
+
+
+
+ a tab view
+
+
+
+ a widget to add
+
+
+
+ the position to add @child at, starting from 0
+
+
+
+
+
+ Inserts @child as the first non-pinned page.
+
+
+ the page object representing @child
+
+
+
+
+ a tab view
+
+
+
+ a widget to add
+
+
+
+
+
+ Inserts @child as the first pinned page.
+
+
+ the page object representing @child
+
+
+
+
+ a tab view
+
+
+
+ a widget to add
+
+
+
+
+
+ Reorders @page to before its previous page if possible.
+
+
+ whether @page was moved
+
+
+
+
+ a tab view
+
+
+
+ a page of @self
+
+
+
+
+
+ Reorders @page to the first possible position.
+
+
+ whether @page was moved
+
+
+
+
+ a tab view
+
+
+
+ a page of @self
+
+
+
+
+
+ Reorders @page to after its next page if possible.
+
+
+ whether @page was moved
+
+
+
+
+ a tab view
+
+
+
+ a page of @self
+
+
+
+
+
+ Reorders @page to the last possible position.
+
+
+ whether @page was moved
+
+
+
+
+ a tab view
+
+
+
+ a page of @self
+
+
+
+
+
+ Reorders @page to @position.
+
+It's a programmer error to try to reorder a pinned page after a non-pinned
+one, or a non-pinned page before a pinned one.
+
+
+ whether @page was moved
+
+
+
+
+ a tab view
+
+
+
+ a page of @self
+
+
+
+ the position to insert the page at, starting at 0
+
+
+
+
+
+ Selects the page after the currently selected page.
+
+If the last page was already selected, this function does nothing.
+
+
+ whether the selected page was changed
+
+
+
+
+ a tab view
+
+
+
+
+
+ Selects the page before the currently selected page.
+
+If the first page was already selected, this function does nothing.
+
+
+ whether the selected page was changed
+
+
+
+
+ a tab view
+
+
+
+
+
+
+ Sets default page icon for @self.
+
+If a page doesn't provide its own icon via [property@TabPage:icon], default
+icon may be used instead for contexts where having an icon is necessary.
+
+[class@TabBar] will use default icon for pinned tabs in case the page is not
+loading, doesn't have an icon and an indicator. Default icon is never used
+for tabs that aren't pinned.
+
+By default, `hdy-tab-icon-missing-symbolic` icon is used.
+
+
+
+
+
+
+ a tab view
+
+
+
+ the default icon
+
+
+
+
+
+
+ Sets the tab context menu model for @self.
+
+When a context menu is shown for a tab, it will be constructed from the
+provided menu model. Use [signal@TabView::setup-menu] signal to set up the
+menu actions for the particular tab.
+
+
+
+
+
+
+ a tab view
+
+
+
+ a menu model
+
+
+
+
+
+ Pins or unpins @page.
+
+Pinned pages are guaranteed to be placed before all non-pinned pages; at any
+given moment the first [property@TabView:n-pinned-pages] pages in @self are
+guaranteed to be pinned.
+
+When a page is pinned or unpinned, it's automatically reordered: pinning a
+page moves it after other pinned pages; unpinning a page moves it before
+other non-pinned pages.
+
+Pinned pages can still be reordered between each other.
+
+[class@TabBar] will display pinned pages in a compact form, never showing the
+title or close button, and only showing a single icon, selected in the
+following order:
+
+1. [property@TabPage:indicator-icon]
+2. A spinner if [property@TabPage:loading] is `TRUE`
+3. [property@TabPage:icon]
+4. [property@TabView:default-icon]
+
+Pinned pages cannot be closed by default, see [signal@TabView::close-page]
+for how to override that behavior.
+
+
+
+
+
+
+ a tab view
+
+
+
+ a page of @self
+
+
+
+ whether @page should be pinned
+
+
+
+
+
+
+ Sets the currently selected page in @self.
+
+
+
+
+
+
+ a tab view
+
+
+
+ a page in @self
+
+
+
+
+
+
+ Sets the shortcut widget for @self.
+
+
+
+
+
+
+ a tab view
+
+
+
+ a shortcut widget
+
+
+
+
+
+ Transfers @page from @self to @other_view.
+
+The @page object will be reused.
+
+It's a programmer error to try to insert a pinned page after a non-pinned
+one, or a non-pinned page before a pinned one.
+
+
+
+
+
+
+ a tab view
+
+
+
+ a page of @self
+
+
+
+ the tab view to transfer the page to
+
+
+
+ the position to insert the page at, starting at 0
+
+
+
+
+
+
+
+ Default page icon.
+
+If a page doesn't provide its own icon via [property@TabPage:icon], default
+icon may be used instead for contexts where having an icon is necessary.
+
+[class@TabBar] will use default icon for pinned tabs in case the page is
+not loading, doesn't have an icon and an indicator. Default icon is never
+used for tabs that aren't pinned.
+
+
+
+
+ Whether a page is being transferred.
+
+This property will be set to `TRUE` when a drag-n-drop tab transfer starts
+on any [class@TabView], and to `FALSE` after it ends.
+
+During the transfer, children cannot receive pointer input and a tab can be
+safely dropped on the tab view.
+
+
+
+
+
+ Tab context menu model.
+
+When a context menu is shown for a tab, it will be constructed from the
+provided menu model. Use [signal@TabView::setup-menu] signal to set up the
+menu actions for the particular tab.
+
+
+
+
+ The number of pages in the tab view.
+
+
+
+
+ The number of pinned pages in the tab view.
+
+See [method@TabView.set_page_pinned].
+
+
+
+
+
+ The currently selected page.
+
+
+
+
+
+ Tab shortcut widget.
+
+Has the following shortcuts:
+
+* <kbd>Ctrl</kbd>+<kbd>Page Up</kbd> - switch to the previous page
+* <kbd>Ctrl</kbd>+<kbd>Page Down</kbd> - switch to the next page
+* <kbd>Ctrl</kbd>+<kbd>Home</kbd> - switch to the first page
+* <kbd>Ctrl</kbd>+<kbd>End</kbd> - switch to the last page
+* <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Page Up</kbd> - move the current page
+ backward
+* <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Page Down</kbd> - move the current
+ page forward
+* <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Home</kbd> - move the current page at
+ the start
+* <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>End</kbd> - move the current page at
+ the end
+* <kbd>Ctrl</kbd>+<kbd>Tab</kbd> - switch to the next page, with looping
+* <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Tab</kbd> - switch to the previous
+ page, with looping
+* <kbd>Alt</kbd>+<kbd>1</kbd>⋯<kbd>9</kbd> - switch to pages 1-9
+* <kbd>Alt</kbd>+<kbd>0</kbd> - switch to page 10
+
+These shortcuts are always available on @self, this property is useful if
+they should be available globally.
+
+
+
+ Emitted after [method@TabView.close_page] has been called for @page.
+
+The handler is expected to call [method@TabView.close_page_finish] to
+confirm or reject the closing.
+
+The default handler will immediately confirm closing for non-pinned pages,
+or reject it for pinned pages, equivalent to the following example:
+
+```c
+static gboolean
+close_page_cb (HdyTabView *view,
+ HdyTabPage *page,
+ gpointer user_data)
+{
+ hdy_tab_view_close_page_finish (view, page, !hdy_tab_page_get_pinned (page));
+
+ return GDK_EVENT_STOP;
+}
+```
+
+The [method@TabView.close_page_finish] doesn't have to happen during the
+handler, so can be used to do asynchronous checks before confirming the
+closing.
+
+A typical reason to connect to this signal is to show a confirmation dialog
+for closing a tab.
+
+
+
+
+
+ a page of the view
+
+
+
+
+
+ Emitted when a tab should be transferred into a new window.
+
+This can happen after a tab has been dropped on desktop.
+
+The signal handler is expected to create a new window, position it as
+needed and return its `HdyTabView`that the page will be transferred into.
+
+ the [class@TabView] from the new
+ window
+
+
+
+
+ Emitted after the indicator icon on @page has been activated.
+
+See [property@TabPage:indicator-icon] and
+[property@TabPage:indicator-activatable].
+
+
+
+
+
+ a page of the view
+
+
+
+
+
+ Emitted when a page has been created or transferred to the view.
+
+A typical reason to connect to this signal would be to connect to page
+signals for things such as updating window title.
+
+
+
+
+
+ a page of the view
+
+
+
+ the position of the page, starting from 0
+
+
+
+
+
+ Emitted when a page has been removed or transferred to another view.
+
+A typical reason to connect to this signal would be to disconnect signal
+handlers connected in the [signal@TabView::page-attached] handler.
+
+It is important not to try and destroy the page child in the handler of
+this function as the child might merely be moved to another window; use
+child dispose handler for that or do it in sync with your
+[method@TabView.close_page_finish] calls.
+
+
+
+
+
+ a page of the view
+
+
+
+ the position of the removed page, starting from 0
+
+
+
+
+
+ This signal is emitted after @page has been reordered to @position.
+
+
+
+
+
+ a page of the view
+
+
+
+ the position @page was moved to, starting at 0
+
+
+
+
+
+ Emitted when a context menu is opened or closed for @page.
+
+If the menu has been closed, @page will be set to `NULL`.
+
+It can be used to set up menu actions before showing the menu, for example
+disable actions not applicable to @page.
+
+
+
+
+
+ a page of @self
+
+
+
+
+
+
+
+
+
+
+
+
+ A simple title bar container.
+
+`HdyTitleBar` is meant to be used as the top-level widget of your window's
+title bar. It will be drawn with the same style as a [class@Gtk.HeaderBar]
+but it won't force a widget layout on you: you can put whatever widget you
+want in it, including a [class@Gtk.HeaderBar].
+
+`HdyTitleBar` becomes really useful when you want to animate header bars,
+like an adaptive application using [class@Leaflet] would do.
+
+`HdyTitleBar` has been deprecated, header bars can be animated without it
+when placed inside [class@Window] or [class@ApplicationWindow].
+
+## CSS nodes
+
+`HdyTitleBar` has a single CSS node with name `headerbar`.
+
+
+
+
+ Creates a new `HdyTitleBar`.
+
+
+ a new `HdyTitleBar`
+
+
+
+
+
+ Returns whether whether @self is in selection mode.
+
+
+ `TRUE` if the title bar is in selection mode
+
+
+
+
+ a title bar
+
+
+
+
+
+
+ Sets whether @self is in selection mode.
+
+
+
+
+
+
+ a title bar
+
+
+
+ `TRUE` to enable the selection mode
+
+
+
+
+
+
+
+ Whether or not the title bar is in selection mode.
+
+
+
+
+
+
+
+
+
+
+ An object representing a [struct@GObject.Value].
+
+The `HdyValueObject` object represents a [struct@GObject.Value], allowing it
+to be used with [iface@Gio.ListModel].
+
+
+ Creates a new `HdyValueObject`.
+
+
+ a new `HdyValueObject`
+
+
+
+
+ the value to store
+
+
+
+
+
+ Creates a new `HdyValueObject`.
+
+This is a convenience method which uses the `G_VALUE_COLLECT` macro
+internally.
+
+
+ a new `HdyValueObject`
+
+
+
+
+ the type of the value
+
+
+
+ the value to store
+
+
+
+
+
+ Creates a new `HdyValueObject`.
+
+This is a convenience method to create a [class@ValueObject] that stores a
+string.
+
+
+ a new `HdyValueObject`
+
+
+
+
+ the string to store
+
+
+
+
+
+ Creates a new `HdyValueObject`.
+
+This is a convenience method to create a [class@ValueObject] that stores a
+string taking ownership of it.
+
+
+ a new `HdyValueObject`
+
+
+
+
+ the string to store
+
+
+
+
+
+ Copy data from the contained [struct@GObject.Value] into @dest.
+
+
+
+
+
+
+ the value
+
+
+
+ value with correct type to copy into
+
+
+
+
+
+ Gets a copy of the contained string if the value is of type `G_TYPE_STRING`.
+
+
+ a copy of the contained string
+
+
+
+
+ the value
+
+
+
+
+
+ Returns the contained string if the value is of type `G_TYPE_STRING`.
+
+
+ the contained string
+
+
+
+
+ the value
+
+
+
+
+
+
+ Return the contained value.
+
+
+ the contained [struct@GObject.Value]
+
+
+
+
+ the value
+
+
+
+
+
+
+ The contained value.
+
+
+
+
+
+
+
+
+
+
+ An adaptive view switcher.
+
+An adaptive view switcher, designed to switch between multiple views in a
+similar fashion than a [class@Gtk.StackSwitcher].
+
+Depending on the available width, the view switcher can adapt from a wide
+mode showing the view's icon and title side by side, to a narrow mode showing
+the view's icon and title one on top of the other, in a more compact way.
+This can be controlled via the policy property.
+
+To look good in a header bar, an `HdyViewSwitcher` requires to fill its full
+height. Contrary to [class@Gtk.HeaderBar], [class@HeaderBar] doesn't force a
+vertical alignment on its title widget, so we recommend it over
+[class@Gtk.HeaderBar].
+
+## CSS nodes
+
+`HdyViewSwitcher` has a single CSS node with name `viewswitcher`.
+
+
+
+
+ Creates a new `HdyViewSwitcher`.
+
+
+ the newly created `HdyViewSwitcher`
+
+
+
+
+
+ Get the ellipsizing position of the narrow mode label.
+
+
+ a [enum@Pango.EllipsizeMode]
+
+
+
+
+ a view switcher
+
+
+
+
+
+
+ Gets the policy of @self.
+
+
+ the policy of @self
+
+
+
+
+ a view switcher
+
+
+
+
+
+
+ Gets the stack controlled by @self.
+
+
+ the stack
+
+
+
+
+ a view switcher
+
+
+
+
+
+
+ Sets the mode used to ellipsize the text in narrow mode.
+
+
+
+
+
+
+ a view switcher
+
+
+
+ a [enum@Pango.EllipsizeMode]
+
+
+
+
+
+
+ Sets the policy of @self.
+
+
+
+
+
+
+ a view switcher
+
+
+
+ the new policy
+
+
+
+
+
+
+ Sets the [class@Gtk.Stack] to control.
+
+
+
+
+
+
+ a view switcher
+
+
+
+ a stack
+
+
+
+
+
+
+
+ The preferred place to ellipsize the string.
+
+If the narrow mode label does not have enough room to display the entire
+string, specified as a [enum@Pango.EllipsizeMode].
+
+Note that setting this property to a value other than
+`PANGO_ELLIPSIZE_NONE` has the side-effect that the label requests only
+enough space to display the ellipsis.
+
+
+
+
+
+ The policy to determine which mode to use.
+
+
+
+
+
+ The [class@Gtk.Stack] the view switcher controls.
+
+
+
+
+ A view switcher action bar.
+
+An action bar letting you switch between multiple views offered by a
+[class@Gtk.Stack], via an [class@ViewSwitcher]. It is designed to be put at
+the bottom of a window and to be revealed only on really narrow windows e.g.
+on mobile phones. It can't be revealed if there are less than two pages.
+
+`HdyViewSwitcherBar` is intended to be used together with
+[class@ViewSwitcherTitle].
+
+A common use case is to bind the [property@ViewSwitcherBar:reveal] property
+to [property@ViewSwitcherTitle:title-visible] to automatically reveal the
+view switcher bar when the title label is displayed in place of the view
+switcher, as follows:
+
+```xml
+<object class="GtkWindow"/>
+ <child type="titlebar">
+ <object class="HdyHeaderBar">
+ <property name="centering-policy">strict</property>
+ <child type="title">
+ <object class="HdyViewSwitcherTitle"
+ id="view_switcher_title">
+ <property name="stack">stack</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <child>
+ <object class="GtkStack" id="stack"/>
+ </child>
+ <child>
+ <object class="HdyViewSwitcherBar">
+ <property name="stack">stack</property>
+ <property name="reveal"
+ bind-source="view_switcher_title"
+ bind-property="title-visible"
+ bind-flags="sync-create"/>
+ </object>
+ </child>
+ </object>
+ </child>
+</object>
+```
+
+## CSS nodes
+
+`HdyViewSwitcherBar` has a single CSS node with name `viewswitcherbar`.
+
+
+
+
+ Creates a new `HdyViewSwitcherBar`.
+
+
+ the newly created `HdyViewSwitcherBar`
+
+
+
+
+
+ Gets the policy of @self.
+
+
+ the policy of @self
+
+
+
+
+ a view switcher bar
+
+
+
+
+
+
+ Gets whether @self should be revealed or hidden.
+
+
+ whether @self is revealed
+
+
+
+
+ a view switcher bar
+
+
+
+
+
+
+ Get the [class@Gtk.Stack] being controlled by the [class@ViewSwitcher].
+
+
+ the stack
+
+
+
+
+ a view switcher bar
+
+
+
+
+
+
+ Sets the policy of @self.
+
+
+
+
+
+
+ a view switcher bar
+
+
+
+ the new policy
+
+
+
+
+
+
+ Sets whether @self should be revealed or not.
+
+
+
+
+
+
+ a view switcher bar
+
+
+
+ `TRUE` to reveal @self
+
+
+
+
+
+
+ Sets the [class@Gtk.Stack] to control.
+
+
+
+
+
+
+ a view switcher bar
+
+
+
+ a stack
+
+
+
+
+
+
+
+ The policy used to determine which mode to use.
+
+
+
+
+
+ Whether the bar should be revealed or hidden.
+
+
+
+
+
+ The [class@Gtk.Stack] the [class@ViewSwitcher] controls.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Describes the adaptive modes of [class@ViewSwitcher].
+
+ Automatically adapt to the best fitting mode
+
+
+ Force the narrow mode
+
+
+ Force the wide mode
+
+
+
+ A view switcher title.
+
+A widget letting you switch between multiple views contained by a
+[class@Gtk.Stack], via an [class@ViewSwitcher].
+
+It is designed to be used as the title widget of a [class@HeaderBar], and
+will display the window's title when the window is too narrow to fit the view
+switcher e.g. on mobile phones, or if there are less than two views.
+
+`HdyViewSwitcherTitle` is intended to be used together with
+[class@ViewSwitcherBar].
+
+A common use case is to bind the [property@ViewSwitcherBar:reveal] property
+to [property@ViewSwitcherTitle:title-visible] to automatically reveal the
+view switcher bar when the title label is displayed in place of the view
+switcher, as follows:
+
+```xml
+<object class="GtkWindow"/>
+ <child type="titlebar">
+ <object class="HdyHeaderBar">
+ <property name="centering-policy">strict</property>
+ <child type="title">
+ <object class="HdyViewSwitcherTitle"
+ id="view_switcher_title">
+ <property name="stack">stack</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <child>
+ <object class="GtkStack" id="stack"/>
+ </child>
+ <child>
+ <object class="HdyViewSwitcherBar">
+ <property name="stack">stack</property>
+ <property name="reveal"
+ bind-source="view_switcher_title"
+ bind-property="title-visible"
+ bind-flags="sync-create"/>
+ </object>
+ </child>
+ </object>
+ </child>
+</object>
+```
+
+## CSS nodes
+
+`HdyViewSwitcherTitle` has a single CSS node with name `viewswitchertitle`.
+
+
+
+
+ Creates a new `HdyViewSwitcherTitle`.
+
+
+ the newly created `HdyViewSwitcherTitle`
+
+
+
+
+
+ Gets the policy of @self.
+
+
+ the policy of @self
+
+
+
+
+ a view switcher title
+
+
+
+
+
+
+ Gets the stack controlled by @self.
+
+
+ the stack
+
+
+
+
+ a view switcher title
+
+
+
+
+
+
+ Gets the subtitle of @self.
+
+
+ the subtitle of @self
+
+
+
+
+ a view switcher title
+
+
+
+
+
+
+ Gets the title of @self.
+
+
+ the title of @self
+
+
+
+
+ a view switcher title
+
+
+
+
+
+
+ Gets whether the title of @self is currently visible.
+
+
+ whether the title of @self is currently visible
+
+
+
+
+ a view switcher title
+
+
+
+
+
+
+ Gets whether @self's view switcher is enabled.
+
+
+ whether the view switcher is enabled
+
+
+
+
+ a view switcher title
+
+
+
+
+
+
+ Sets the policy of @self.
+
+
+
+
+
+
+ a view switcher title
+
+
+
+ the new policy
+
+
+
+
+
+
+ Sets the [class@Gtk.Stack] to control.
+
+
+
+
+
+
+ a view switcher title
+
+
+
+ a stack
+
+
+
+
+
+
+ Sets the subtitle of @self.
+
+
+
+
+
+
+ a view switcher title
+
+
+
+ a subtitle
+
+
+
+
+
+
+ Sets the title of @self.
+
+
+
+
+
+
+ a view switcher title
+
+
+
+ a title
+
+
+
+
+
+
+ Sets whether @self's view switcher is enabled.
+
+
+
+
+
+
+ a view switcher title
+
+
+
+ `TRUE` to enable the view switcher, `FALSE` to disable it
+
+
+
+
+
+
+
+ The policy used to determine which mode to use.
+
+
+
+
+
+ The [class@Gtk.Stack] the [class@ViewSwitcher] controls.
+
+
+
+
+
+ The subtitle of the [class@ViewSwitcher].
+
+The subtitle should give a user additional details.
+
+
+
+
+
+ The title of the [class@ViewSwitcher].
+
+The title should give a user additional details. A good title should not
+include the application name.
+
+
+
+
+ Whether the bar should be revealed or hidden.
+
+
+
+
+
+ Whether the bar should be revealed or hidden.
+
+If it is disabled, the title will be displayed instead. This allows to
+programmatically hide the view switcher even if it fits in the available
+space.
+
+This can be used e.g. to ensure the view switcher is hidden below a certain
+window width, or any other constraint you find suitable.
+
+
+
+
+
+
+
+
+
+
+ A freeform window.
+
+The `HdyWindow` widget is a subclass of [class@Gtk.Window] which has no
+titlebar area and provides rounded corners on all sides, ensuring they can
+never be overlapped by the content. This makes it safe to use headerbars in
+the content area as follows:
+
+```xml
+<object class="HdyWindow"/>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="HdyHeaderBar">
+ <property name="visible">True</property>
+ <property name="show-close-button">True</property>
+ </object>
+ </child>
+ <child>
+ <!-- ... -->
+ </child>
+ </object>
+ </child>
+</object>
+```
+
+It's recommended to use [class@HeaderBar] with `HdyWindow`, as unlike
+[class@Gtk.HeaderBar] it remains draggable inside the window. Otherwise,
+[class@WindowHandle] can be used.
+
+`HdyWindow` allows to easily implement titlebar autohiding by putting the
+headerbar inside a [class@Gtk.Revealer], and to show titlebar above content
+by putting it into a [class@Gtk.Overlay] instead of [class@Gtk.Box].
+
+If the window has a [class@Gtk.GLArea], it may bring a slight performance
+regression when the window is not fullscreen, tiled or maximized.
+
+Using [method@Gtk.Window.get_titlebar] and [method@Gtk.Window.set_titlebar]
+is not supported and will result in a crash.
+
+## CSS nodes
+
+`HdyWindow` has a main CSS node with the name `window` and style classes
+`.background`, `.csd` and `.unified`.
+
+The `.solid-csd` style class on the main node is used for client-side
+decorations without invisible borders.
+
+`HdyWindow` also represents window states with the following style classes on
+the main node: `.tiled`, `.maximized`, `.fullscreen`.
+
+It contains the subnodes decoration for window shadow and/or border,
+decoration-overlay for the sheen on top of the window, `widget.titlebar`, and
+deck, which contains the child inside the window.
+
+
+
+
+ Creates a new `HdyWindow`.
+
+
+ the newly created `HdyWindow`
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A bin that acts like a titlebar.
+
+`HdyWindowHandle` is a [class@Gtk.Bin] subclass that can be dragged to move
+its [class@Gtk.Window], and handles right click, middle click and double
+click as expected from a titlebar. This is particularly useful with
+[class@Window] or [class@ApplicationWindow].
+
+It isn't necessary to use `HdyWindowHandle` if you use [class@HeaderBar].
+
+It can be safely nested or used in the actual window titlebar.
+
+## CSS nodes
+
+`HdyWindowHandle` has a single CSS node with name `windowhandle`.
+
+
+
+
+ Creates a new `HdyWindowHandle`.
+
+
+ the newly created `HdyWindowHandle`
+
+
+
+
+
+
+
+
+
+
+
+ Computes the ease out for a value.
+
+
+ the ease out for @t
+
+
+
+
+ the term
+
+
+
+
+
+ Returns the name of a [class@EnumValueObject].
+
+This is a default implementation of [callback@ComboRowGetEnumValueNameFunc]
+to be used with [method@ComboRow.set_for_enum]. If the enumeration has a
+nickname, it will return it, otherwise it will return its name.
+
+
+ a displayable name that represents @value
+
+
+
+
+ the value from the enum from which to get a name
+
+
+
+ unused user data
+
+
+
+
+
+ Checks whether animations are enabled for @widget.
+
+This should be used when implementing an animated widget to know whether to
+animate it or not.
+
+
+ whether animations are enabled for @widget
+
+
+
+
+ a widget
+
+
+
+
+
+ Initializes Libhandy.
+
+Call this function just after initializing GTK, if you are using
+[class@Gtk.Application] it means it must be called when the
+[signal@Gio.Application::startup] signal is emitted.
+
+If Libhandy has already been initialized, the function will simply return.
+
+This makes sure translations, types, themes, and icons for the Handy library
+are set up properly.
+
+
+
+
+
+
+
diff --git a/libphosh-rs/LICENSE b/libphosh-rs/LICENSE
new file mode 100644
index 000000000..90c248078
--- /dev/null
+++ b/libphosh-rs/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2024 The Phosh Developers
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/libphosh-rs/Makefile b/libphosh-rs/Makefile
new file mode 100644
index 000000000..f445ceab2
--- /dev/null
+++ b/libphosh-rs/Makefile
@@ -0,0 +1,19 @@
+all: gir/target/release/gir
+ git checkout -f *.gir
+ ./fix.sh
+ cd libphosh/sys && ../../gir/target/release/gir -o .
+ cd libphosh && ../gir/target/release/gir -o .
+ cargo build --examples
+ cargo test
+
+gir/target/release/gir:
+ git submodule update --init --checkout gir/
+ cd gir && cargo build --release
+
+Phosh-0.gir:
+ meson setup _build .
+ meson subprojects update
+ meson compile -C _build
+ cp _build/subprojects/phosh/src/Phosh-0.gir ./
+
+.PHONY: Phosh-0.gir
diff --git a/libphosh-rs/NM-1.0.gir b/libphosh-rs/NM-1.0.gir
new file mode 100644
index 000000000..1b45719b3
--- /dev/null
+++ b/libphosh-rs/NM-1.0.gir
@@ -0,0 +1,77383 @@
+
+
+
+
+
+
+
+
+ 802.11 access point flags.
+
+ access point has no special capabilities
+
+
+ access point requires authentication and
+encryption (usually means WEP)
+
+
+ access point supports some WPS method
+
+
+ access point supports push-button WPS
+
+
+ access point supports PIN-based WPS
+
+
+
+ 802.11 access point security and authentication flags. These flags describe
+the current security requirements of an access point as determined from the
+access point's beacon.
+
+ the access point has no special security requirements
+
+
+ 40/64-bit WEP is supported for
+pairwise/unicast encryption
+
+
+ 104/128-bit WEP is supported for
+pairwise/unicast encryption
+
+
+ TKIP is supported for pairwise/unicast encryption
+
+
+ AES/CCMP is supported for pairwise/unicast encryption
+
+
+ 40/64-bit WEP is supported for group/broadcast
+encryption
+
+
+ 104/128-bit WEP is supported for
+group/broadcast encryption
+
+
+ TKIP is supported for group/broadcast encryption
+
+
+ AES/CCMP is supported for group/broadcast
+encryption
+
+
+ WPA/RSN Pre-Shared Key encryption is
+supported
+
+
+ 802.1x authentication and key management
+is supported
+
+
+ WPA/RSN Simultaneous Authentication of Equals is
+supported
+
+
+ WPA/RSN Opportunistic Wireless Encryption is
+supported
+
+
+ WPA/RSN Opportunistic Wireless Encryption
+transition mode is supported. Since: 1.26.
+
+
+ WPA3 Enterprise Suite-B 192 bit mode
+is supported. Since: 1.30.
+
+
+
+ Indicates the 802.11 mode an access point or device is currently in.
+
+ the device or access point mode is unknown
+
+
+ for both devices and access point objects, indicates
+ the object is part of an Ad-Hoc 802.11 network without a central
+ coordinating access point.
+
+
+ the device or access point is in infrastructure mode.
+ For devices, this indicates the device is an 802.11 client/station. For
+ access point objects, this indicates the object is an access point that
+ provides connectivity to clients.
+
+
+ the device is an access point/hotspot. Not valid for
+ access point objects; used only for hotspot mode on the local machine.
+
+
+ the device is a 802.11s mesh point. Since: 1.20.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Validates a given connection against a given Wi-Fi access point to ensure that
+the connection may be activated with that AP. The connection must match the
+@ap's SSID, (if given) BSSID, and other attributes like security settings,
+channel, band, etc.
+
+
+ %TRUE if the connection may be activated with this Wi-Fi AP,
+%FALSE if it cannot be.
+
+
+
+
+ an #NMAccessPoint to validate @connection against
+
+
+
+ an #NMConnection to validate against @ap
+
+
+
+
+
+ Filters a given array of connections for a given #NMAccessPoint object and
+returns connections which may be activated with the access point. Any
+returned connections will match the @ap's SSID and (if given) BSSID and
+other attributes like security settings, channel, etc.
+
+To obtain the list of connections that are compatible with this access point,
+use nm_client_get_connections() and then filter the returned list for a given
+#NMDevice using nm_device_filter_connections() and finally filter that list
+with this function.
+
+
+ an array of
+#NMConnections that could be activated with the given @ap. The array should
+be freed with g_ptr_array_unref() when it is no longer required.
+
+WARNING: the transfer annotation for this function may not work correctly
+ with bindings. See https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues/305.
+ You can filter the list yourself with nm_access_point_connection_valid().
+
+
+
+
+
+
+ an #NMAccessPoint to filter connections for
+
+
+
+ an array of #NMConnections to
+filter
+
+
+
+
+
+
+
+ Gets the bandwidth advertised by the access point in MHz.
+
+
+ the advertised bandwidth (MHz)
+
+
+
+
+ a #NMAccessPoint
+
+
+
+
+
+ Gets the Basic Service Set ID (BSSID) of the Wi-Fi access point.
+
+
+ the BSSID of the access point. This is an internal string and must
+not be modified or freed.
+
+
+
+
+ a #NMAccessPoint
+
+
+
+
+
+ Gets the flags of the access point.
+
+
+ the flags
+
+
+
+
+ a #NMAccessPoint
+
+
+
+
+
+ Gets the frequency of the access point in MHz.
+
+
+ the frequency in MHz
+
+
+
+
+ a #NMAccessPoint
+
+
+
+
+
+ Returns the timestamp (in CLOCK_BOOTTIME seconds) for the last time the
+access point was found in scan results. A value of -1 means the access
+point has not been found in a scan.
+
+
+ the last seen time in seconds
+
+
+
+
+ a #NMAccessPoint
+
+
+
+
+
+ Gets the maximum bit rate of the access point in kbit/s.
+
+
+ the maximum bit rate (kbit/s)
+
+
+
+
+ a #NMAccessPoint
+
+
+
+
+
+ Gets the mode of the access point.
+
+
+ the mode
+
+
+
+
+ a #NMAccessPoint
+
+
+
+
+
+ Gets the RSN (Robust Secure Network, ie WPA version 2) flags of the access
+point.
+
+
+ the RSN flags
+
+
+
+
+ a #NMAccessPoint
+
+
+
+
+
+ Gets the SSID of the access point.
+
+
+ the #GBytes containing the SSID, or %NULL if the
+ SSID is unknown.
+
+
+
+
+ a #NMAccessPoint
+
+
+
+
+
+ Gets the current signal strength of the access point as a percentage.
+
+
+ the signal strength (0 to 100)
+
+
+
+
+ a #NMAccessPoint
+
+
+
+
+
+ Gets the WPA (version 1) flags of the access point.
+
+
+ the WPA flags
+
+
+
+
+ a #NMAccessPoint
+
+
+
+
+
+ The channel bandwidth announced by the AP in MHz.
+
+
+
+ The BSSID of the access point.
+
+
+
+ The flags of the access point.
+
+
+
+ The frequency of the access point.
+
+
+
+ Alias for #NMAccessPoint:bssid.
+ Use #NMAccessPoint:bssid.
+
+
+
+ The timestamp (in CLOCK_BOOTTIME seconds) for the last time the
+access point was found in scan results. A value of -1 means the
+access point has not been found in a scan.
+
+
+
+ The maximum bit rate of the access point in kbit/s.
+
+
+
+ The mode of the access point; either "infrastructure" (a central
+coordinator of the wireless network allowing clients to connect) or
+"ad-hoc" (a network with no central controller).
+
+
+
+ The RSN flags of the access point.
+
+
+
+ The SSID of the access point, or %NULL if it is not known.
+
+
+
+ The current signal strength of the access point.
+
+
+
+ The WPA flags of the access point.
+
+
+
+
+
+
+
+ Flags describing the current activation state.
+
+ an alias for numeric zero, no flags set.
+
+
+ the device is a master.
+
+
+ the device is a slave.
+
+
+ layer2 is activated and ready.
+
+
+ IPv4 setting is completed.
+
+
+ IPv6 setting is completed.
+
+
+ The master has any slave devices attached.
+ This only makes sense if the device is a master.
+
+
+ the lifetime
+ of the activation is bound to the visibility of the connection profile,
+ which in turn depends on "connection.permissions" and whether a session
+ for the user exists. Since: 1.16.
+
+
+ the active connection was generated to
+ represent an external configuration of a networking device. Since: 1.26.
+
+
+
+
+
+ Gets the #NMRemoteConnection associated with @connection.
+
+
+ the #NMRemoteConnection which this
+#NMActiveConnection is an active instance of.
+
+
+
+
+ a #NMActiveConnection
+
+
+
+
+
+ Gets the #NMConnection's type.
+
+
+ the type of the #NMConnection that backs the #NMActiveConnection.
+This is the internal string used by the connection, and must not be modified.
+
+
+
+
+ a #NMActiveConnection
+
+
+
+
+
+ Gets the controller #NMDevice of the connection. This replaces the
+deprecated nm_active_connection_get_master() method.
+
+
+ the controller #NMDevice of the #NMActiveConnection.
+
+
+
+
+ a #NMActiveConnection
+
+
+
+
+
+ Whether the active connection is the default IPv4 one (that is, is used for
+the default IPv4 route and DNS information).
+
+
+ %TRUE if the active connection is the default IPv4 connection
+
+
+
+
+ a #NMActiveConnection
+
+
+
+
+
+ Whether the active connection is the default IPv6 one (that is, is used for
+the default IPv6 route and DNS information).
+
+
+ %TRUE if the active connection is the default IPv6 connection
+
+
+
+
+ a #NMActiveConnection
+
+
+
+
+
+ Gets the #NMDevices used for the active connections.
+
+
+ the #GPtrArray containing #NMDevices.
+This is the internal copy used by the connection, and must not be modified.
+
+
+
+
+
+
+ a #NMActiveConnection
+
+
+
+
+
+ Gets the current IPv4 #NMDhcpConfig (if any) associated with the
+#NMActiveConnection.
+
+
+ the IPv4 #NMDhcpConfig, or %NULL if the connection
+ does not use DHCP, or is not in the %NM_ACTIVE_CONNECTION_STATE_ACTIVATED
+ state.
+
+
+
+
+ an #NMActiveConnection
+
+
+
+
+
+ Gets the current IPv6 #NMDhcpConfig (if any) associated with the
+#NMActiveConnection.
+
+
+ the IPv6 #NMDhcpConfig, or %NULL if the connection
+ does not use DHCPv6, or is not in the %NM_ACTIVE_CONNECTION_STATE_ACTIVATED
+ state.
+
+
+
+
+ an #NMActiveConnection
+
+
+
+
+
+ Gets the #NMConnection's ID.
+
+
+ the ID of the #NMConnection that backs the #NMActiveConnection.
+This is the internal string used by the connection, and must not be modified.
+
+
+
+
+ a #NMActiveConnection
+
+
+
+
+
+ Gets the current IPv4 #NMIPConfig associated with the #NMActiveConnection.
+
+
+ the IPv4 #NMIPConfig, or %NULL if the connection is
+ not in the %NM_ACTIVE_CONNECTION_STATE_ACTIVATED state.
+
+
+
+
+ an #NMActiveConnection
+
+
+
+
+
+ Gets the current IPv6 #NMIPConfig associated with the #NMActiveConnection.
+
+
+ the IPv6 #NMIPConfig, or %NULL if the connection is
+ not in the %NM_ACTIVE_CONNECTION_STATE_ACTIVATED state.
+
+
+
+
+ an #NMActiveConnection
+
+
+
+
+
+ Gets the master #NMDevice of the connection.
+ Use nm_active_connection_get_controller() instead.
+
+
+ the master #NMDevice of the #NMActiveConnection.
+
+
+
+
+ a #NMActiveConnection
+
+
+
+
+
+ Gets the path of the "specific object" used at activation.
+
+Currently, there is no single method that will allow you to automatically turn
+this into an appropriate #NMObject; you need to know what kind of object it
+is based on other information. (Eg, if @connection corresponds to a Wi-Fi
+connection, then the specific object will be an #NMAccessPoint, and you can
+resolve it with nm_device_wifi_get_access_point_by_path().)
+
+
+ the specific object's D-Bus path. This is the internal string used
+by the connection, and must not be modified.
+
+
+
+
+ a #NMActiveConnection
+
+
+
+
+
+ Gets the active connection's state.
+
+
+ the state
+
+
+
+
+ a #NMActiveConnection
+
+
+
+
+
+ Gets the active connection's state flags.
+
+
+ the state flags
+
+
+
+
+ a #NMActiveConnection
+
+
+
+
+
+ Gets the reason for active connection's state.
+
+
+ the reason
+
+
+
+
+ a #NMActiveConnection
+
+
+
+
+
+ Gets the #NMConnection's UUID.
+
+
+ the UUID of the #NMConnection that backs the #NMActiveConnection.
+This is the internal string used by the connection, and must not be modified.
+
+
+
+
+ a #NMActiveConnection
+
+
+
+
+
+ Whether the active connection is a VPN connection.
+
+
+ %TRUE if the active connection is a VPN connection
+
+
+
+
+ a #NMActiveConnection
+
+
+
+
+
+ The connection that this is an active instance of.
+
+
+
+ The controller device if one exists. This replaces the deprecated
+"master" property.
+
+
+
+ Whether the active connection is the default IPv4 one.
+
+
+
+ Whether the active connection is the default IPv6 one.
+
+
+
+ The devices of the active connection.
+
+
+
+
+
+ The IPv4 #NMDhcpConfig of the connection.
+
+
+
+ The IPv6 #NMDhcpConfig of the connection.
+
+
+
+ The active connection's ID
+
+
+
+ The IPv4 #NMIPConfig of the connection.
+
+
+
+ The IPv6 #NMIPConfig of the connection.
+
+
+
+ The master device if one exists. Replaced by the "controller" property.
+
+
+
+ The path to the "specific object" of the active connection; see
+nm_active_connection_get_specific_object_path() for more details.
+
+
+
+ The state of the active connection.
+
+
+
+ The state flags of the active connection.
+
+
+
+ The active connection's type
+
+
+
+ The active connection's UUID
+
+
+
+ Whether the active connection is a VPN connection.
+
+
+
+
+
+
+
+
+ the new state number (#NMActiveConnectionState)
+
+
+
+ the state change reason (#NMActiveConnectionStateReason)
+
+
+
+
+
+
+
+
+
+ #NMActiveConnectionState values indicate the state of a connection to a
+specific network while it is starting, connected, or disconnecting from that
+network.
+
+ the state of the connection is unknown
+
+
+ a network connection is being prepared
+
+
+ there is a connection to the network
+
+
+ the network connection is being
+ torn down and cleaned up
+
+
+ the network connection is disconnected
+ and will be removed
+
+
+
+ Active connection state reasons.
+
+ The reason for the active connection
+ state change is unknown.
+
+
+ No reason was given for the active
+ connection state change.
+
+
+ The active connection changed
+ state because the user disconnected it.
+
+
+ The active connection
+ changed state because the device it was using was disconnected.
+
+
+ The service providing the
+ VPN connection was stopped.
+
+
+ The IP config of the active
+ connection was invalid.
+
+
+ The connection attempt to
+ the VPN service timed out.
+
+
+ A timeout occurred
+ while starting the service providing the VPN connection.
+
+
+ Starting the service
+ providing the VPN connection failed.
+
+
+ Necessary secrets for the
+ connection were not provided.
+
+
+ Authentication to the
+ server failed.
+
+
+ The connection was
+ deleted from settings.
+
+
+ Master connection of this
+ connection failed to activate.
+
+
+ Could not create the
+ software device link.
+
+
+ The device this connection
+ depended on disappeared.
+
+
+
+ Errors returned from the secret-agent manager.
+
+These errors may be returned from operations that could cause secrets to be
+requested (such as nm_client_activate_connection()), and correspond to D-Bus
+errors in the "org.freedesktop.NetworkManager.AgentManager" namespace.
+
+ unknown or unspecified error
+
+
+ The caller does not have permission
+ to register a secret agent, or is trying to register the same secret agent
+ twice.
+
+
+ The identifier is not a valid
+ secret agent identifier.
+
+
+ The caller tried to unregister an agent
+ that was not registered.
+
+
+ No secret agent returned secrets for this
+ request
+
+
+ The user canceled the secrets request.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #NMBluetoothCapabilities values indicate the usable capabilities of a
+Bluetooth device.
+
+ device has no usable capabilities
+
+
+ device provides Dial-Up Networking capability
+
+
+ device provides Network Access Point capability
+
+
+
+
+
+ Creates a new #NMBridgeVlan object for the given VLAN id range.
+Setting @vid_end to 0 is equivalent to setting it to @vid_start
+and creates a single-id VLAN.
+
+Since 1.42, ref-counting of #NMBridgeVlan is thread-safe.
+
+
+ the new #NMBridgeVlan object.
+
+
+
+
+ the start VLAN id, must be between 1 and 4094.
+
+
+
+ the end VLAN id, must be 0 or between @vid_start and 4094.
+
+
+
+
+
+ Compare two bridge VLAN objects.
+
+
+ zero of the two instances are equivalent or
+ a non-zero integer otherwise. This defines a total ordering
+ over the VLANs. Whether a VLAN is sealed or not does not
+ affect the comparison.
+
+
+
+
+ a #NMBridgeVlan
+
+
+
+ another #NMBridgeVlan
+
+
+
+
+
+ Gets the VLAN id range.
+
+
+ %TRUE is the VLAN specifies a range, %FALSE if it is
+a single-id VLAN.
+
+
+
+
+ the #NMBridgeVlan
+
+
+
+ location to store the VLAN id range start.
+
+
+
+ location to store the VLAN id range end
+
+
+
+
+
+ Returns whether the VLAN is the PVID for the port.
+
+
+ %TRUE if the VLAN is the PVID
+
+
+
+
+ the #NMBridgeVlan
+
+
+
+
+
+
+
+ whether @self is sealed or not.
+
+
+
+
+ the #NMBridgeVlan instance
+
+
+
+
+
+ Returns whether the VLAN is untagged.
+
+
+ %TRUE if the VLAN is untagged, %FALSE otherwise
+
+
+
+
+ the #NMBridgeVlan
+
+
+
+
+
+
+
+ a clone of @vlan. This instance
+ is always unsealed.
+
+
+
+
+ the #NMBridgeVlan instance to copy
+
+
+
+
+
+ Increases the reference count of the object.
+
+
+ the input argument @vlan object.
+
+Since 1.42, ref-counting of #NMBridgeVlan is thread-safe.
+
+
+
+
+ the #NMBridgeVlan
+
+
+
+
+
+ Seal the #NMBridgeVlan instance. Afterwards, it is a bug
+to call all functions that modify the instance (except ref/unref).
+A sealed instance cannot be unsealed again, but you can create
+an unsealed copy with nm_bridge_vlan_new_clone().
+
+
+
+
+
+
+ the #NMBridgeVlan instance
+
+
+
+
+
+ Change the value of the PVID property of the VLAN. It
+is invalid to set the value to %TRUE for non-single-id
+VLANs.
+
+
+
+
+
+
+ the #NMBridgeVlan
+
+
+
+ the new value
+
+
+
+
+
+ Change the value of the untagged property of the VLAN.
+
+
+
+
+
+
+ the #NMBridgeVlan
+
+
+
+ the new value
+
+
+
+
+
+ Convert a %NMBridgeVlan to a string.
+
+
+ formatted string or %NULL
+
+
+
+
+ the %NMBridgeVlan
+
+
+
+
+
+ Decreases the reference count of the object. If the reference count
+reaches zero the object will be destroyed.
+
+Since 1.42, ref-counting of #NMBridgeVlan is thread-safe.
+
+
+
+
+
+
+ the #NMBridgeVlan
+
+
+
+
+
+ Parses the string representation of the queueing
+discipline to a %NMBridgeVlan instance.
+
+
+ the %NMBridgeVlan or %NULL
+
+
+
+
+ the string representation of a bridge VLAN
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ major version (e.g. 1 for version 1.2.5)
+
+
+ minor version (e.g. 2 for version 1.2.5)
+
+
+ micro version (e.g. 5 for version 1.2.5)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #NMCapability names the numbers in the Capabilities property.
+Capabilities are positive numbers. They are part of stable API
+and a certain capability number is guaranteed not to change.
+
+The range 0x7000 - 0x7FFF of capabilities is guaranteed not to be
+used by upstream NetworkManager. It could thus be used for downstream
+extensions.
+
+ Teams can be managed. This means the team device plugin
+ is loaded.
+
+
+ OpenVSwitch can be managed. This means the OVS device plugin
+ is loaded. Since: 1.24.
+
+
+
+
+
+ Gets the timestamp (in CLOCK_BOOTTIME milliseconds) of checkpoint creation.
+
+Use nm_utils_get_timestamp_msec() to obtain current time value suitable for
+comparing to this value.
+
+
+ the timestamp of checkpoint creation.
+
+
+
+
+ a #NMCheckpoint
+
+
+
+
+
+ The devices that are part of this checkpoint.
+
+
+ the devices list.
+
+
+
+
+
+
+ a #NMCheckpoint
+
+
+
+
+
+ Gets the timeout in seconds for automatic rollback.
+
+
+ the rollback timeout.
+
+
+
+
+ a #NMCheckpoint
+
+
+
+
+
+ The timestamp (in CLOCK_BOOTTIME milliseconds) of checkpoint creation.
+
+
+
+ The devices that are part of this checkpoint.
+
+
+
+
+
+ Timeout in seconds for automatic rollback, or zero.
+
+
+
+
+
+
+
+ The flags for CheckpointCreate call
+ Public since 1.4, g-ir since 1.12.
+
+ no flags
+
+
+ when creating
+ a new checkpoint, destroy all existing ones.
+
+
+ upon rollback,
+ delete any new connection added after the checkpoint. Since: 1.6.
+
+
+ upon rollback,
+ disconnect any new device appeared after the checkpoint. Since: 1.6.
+
+
+ by default, creating
+ a checkpoint fails if there are already existing checkpoints that
+ reference the same devices. With this flag, creation of such
+ checkpoints is allowed, however, if an older checkpoint
+ that references overlapping devices gets rolled back, it will
+ automatically destroy this checkpoint during rollback. This
+ allows to create several overlapping checkpoints in parallel,
+ and rollback to them at will. With the special case that
+ rolling back to an older checkpoint will invalidate all
+ overlapping younger checkpoints. This opts-in that the
+ checkpoint can be automatically destroyed by the rollback
+ of an older checkpoint. Since: 1.12.
+
+
+ during rollback,
+ by default externally added ports attached to bridge devices are preserved.
+ With this flag, the rollback detaches all external ports.
+ This only has an effect for bridge ports. Before 1.38, this was the default
+ behavior. Since: 1.38.
+
+
+
+ NMClient contains a cache of the objects of NetworkManager's D-Bus API.
+It uses #GMainContext and #GDBusConnection for that and registers to
+D-Bus signals. That means, when iterating the associated #GMainContext,
+D-Bus signals gets processed and the #NMClient instance updates and
+emits #GObject signals.
+
+
+
+
+ Creates a new #NMClient synchronously.
+
+Note that this will block until a NMClient instance is fully initialized.
+This does nothing beside calling g_initable_new(). You are free to call
+g_initable_new() or g_object_new()/g_initable_init() directly for more
+control, to set GObject properties or get access to the NMClient instance
+while it is still initializing.
+
+Using the synchronous initialization creates an #NMClient instance
+that uses an internal #GMainContext. This context is invisible to the
+user. This introduces an additional overhead that is payed not
+only during object initialization, but for the entire lifetime of
+this object.
+Also, due to this internal #GMainContext, the events are no longer
+in sync with other messages from #GDBusConnection (but all events
+of the NMClient will themselves still be ordered).
+For a serious program, you should therefore avoid these problems by
+using g_async_initable_init_async() or nm_client_new_async() instead.
+The sync initialization is still useful for simple scripts or interactive
+testing for example via pygobject.
+
+Creating an #NMClient instance can only fail for two reasons. First, if you didn't
+provide a %NM_CLIENT_DBUS_CONNECTION and the call to g_bus_get()
+fails. You can avoid that by using g_initable_new() directly and
+set a D-Bus connection.
+Second, if you cancelled the creation. If you do that, then note
+that after the failure there might still be idle actions pending
+which keep nm_client_get_main_context() alive. That means,
+in that case you must continue iterating the context to avoid
+leaks. See nm_client_get_context_busy_watcher().
+
+Creating an #NMClient instance when NetworkManager is not running
+does not cause a failure.
+
+
+ a new #NMClient or NULL on an error
+
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+
+
+ Gets the result of an nm_client_new_async() call.
+
+
+ a new #NMClient, or %NULL on error
+
+
+
+
+ a #GAsyncResult
+
+
+
+
+
+ Creates a new #NMClient asynchronously.
+@callback will be called when it is done. Use
+nm_client_new_finish() to get the result.
+
+This does nothing beside calling g_async_initable_new_async(). You are free to
+call g_async_initable_new_async() or g_object_new()/g_async_initable_init_async()
+directly for more control, to set GObject properties or get access to the NMClient
+instance while it is still initializing.
+
+Creating an #NMClient instance can only fail for two reasons. First, if you didn't
+provide a %NM_CLIENT_DBUS_CONNECTION and the call to g_bus_get()
+fails. You can avoid that by using g_async_initable_new_async() directly and
+set a D-Bus connection.
+Second, if you cancelled the creation. If you do that, then note
+that after the failure there might still be idle actions pending
+which keep nm_client_get_main_context() alive. That means,
+in that case you must continue iterating the context to avoid
+leaks. See nm_client_get_context_busy_watcher().
+
+Creating an #NMClient instance when NetworkManager is not running
+does not cause a failure.
+
+
+
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ callback to call when the client is created
+
+
+
+ data for @callback
+
+
+
+
+
+
+
+ %TRUE if waiting is complete successfully. In that case, all resources of the
+ nmclient are wrapped up and released. This can only fail by user cancellation.
+
+
+
+
+ a #GAsyncResult obtained from the #GAsyncReadyCallback passed to nm_client_wait_shutdown()
+
+
+
+
+
+ Asynchronously starts a connection to a particular network using the
+configuration settings from @connection and the network device @device.
+Certain connection types also take a "specific object" which is the object
+path of a connection- specific object, like an #NMAccessPoint for Wi-Fi
+connections, or an #NMWimaxNsp for WiMAX connections, to which you wish to
+connect. If the specific object is not given, NetworkManager can, in some
+cases, automatically determine which network to connect to given the settings
+in @connection.
+
+If @connection is not given for a device-based activation, NetworkManager
+picks the best available connection for the device and activates it.
+
+Note that the callback is invoked when NetworkManager has started activating
+the new connection, not when it finishes. You can use the returned
+#NMActiveConnection object (in particular, #NMActiveConnection:state) to
+track the activation to its completion.
+
+
+
+
+
+
+ a #NMClient
+
+
+
+ an #NMConnection
+
+
+
+ the #NMDevice
+
+
+
+ the object path of a connection-type-specific
+ object this activation should use. This parameter is currently ignored for
+ wired and mobile broadband connections, and the value of %NULL should be used
+ (ie, no specific object). For Wi-Fi or WiMAX connections, pass the object
+ path of a #NMAccessPoint or #NMWimaxNsp owned by @device, which you can
+ get using nm_object_get_path(), and which will be used to complete the
+ details of the newly added connection.
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ callback to be called when the activation has started
+
+
+
+ caller-specific data passed to @callback
+
+
+
+
+
+ Gets the result of a call to nm_client_activate_connection_async().
+
+
+ the new #NMActiveConnection on success, %NULL on
+ failure, in which case @error will be set.
+
+
+
+
+ an #NMClient
+
+
+
+ the result passed to the #GAsyncReadyCallback
+
+
+
+
+
+ Adds a new connection using the given details (if any) as a template,
+automatically filling in missing settings with the capabilities of the given
+device and specific object. The new connection is then asynchronously
+activated as with nm_client_activate_connection_async(). Cannot be used for
+VPN connections at this time.
+
+Note that the callback is invoked when NetworkManager has started activating
+the new connection, not when it finishes. You can used the returned
+#NMActiveConnection object (in particular, #NMActiveConnection:state) to
+track the activation to its completion.
+
+This is identical to nm_client_add_and_activate_connection_async() but takes
+a further @options parameter. Currently, the following options are supported
+by the daemon:
+ * "persist": A string describing how the connection should be stored.
+ The default is "disk", but it can be modified to "memory" (until
+ the daemon quits) or "volatile" (will be deleted on disconnect).
+ * "bind-activation": Bind the connection lifetime to something. The default is "none",
+ meaning an explicit disconnect is needed. The value "dbus-client"
+ means the connection will automatically be deactivated when the calling
+ D-Bus client disappears from the system bus.
+
+
+
+
+
+
+ a #NMClient
+
+
+
+ an #NMConnection to add; the connection may be
+ partially filled (or even %NULL) and will be completed by NetworkManager
+ using the given @device and @specific_object before being added
+
+
+
+ the #NMDevice
+
+
+
+ the object path of a connection-type-specific
+ object this activation should use. This parameter is currently ignored for
+ wired and mobile broadband connections, and the value of %NULL should be used
+ (i.e., no specific object). For Wi-Fi or WiMAX connections, pass the object
+ path of a #NMAccessPoint or #NMWimaxNsp owned by @device, which you can
+ get using nm_object_get_path(), and which will be used to complete the
+ details of the newly added connection.
+
+
+
+ a #GVariant containing a dictionary with options, or %NULL
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ callback to be called when the activation has started
+
+
+
+ caller-specific data passed to @callback
+
+
+
+
+
+ Gets the result of a call to nm_client_add_and_activate_connection2().
+
+You can call nm_active_connection_get_connection() on the returned
+#NMActiveConnection to find the path of the created #NMConnection.
+
+
+ the new #NMActiveConnection on success, %NULL on
+ failure, in which case @error will be set.
+
+
+
+
+ an #NMClient
+
+
+
+ the result passed to the #GAsyncReadyCallback
+
+
+
+ the output result
+ of type "a{sv}" returned by D-Bus' AddAndActivate2 call. Currently, no
+ output is implemented yet.
+
+
+
+
+
+ Adds a new connection using the given details (if any) as a template,
+automatically filling in missing settings with the capabilities of the given
+device and specific object. The new connection is then asynchronously
+activated as with nm_client_activate_connection_async(). Cannot be used for
+VPN connections at this time.
+
+Note that the callback is invoked when NetworkManager has started activating
+the new connection, not when it finishes. You can used the returned
+#NMActiveConnection object (in particular, #NMActiveConnection:state) to
+track the activation to its completion.
+
+
+
+
+
+
+ a #NMClient
+
+
+
+ an #NMConnection to add; the connection may be
+ partially filled (or even %NULL) and will be completed by NetworkManager
+ using the given @device and @specific_object before being added
+
+
+
+ the #NMDevice
+
+
+
+ the object path of a connection-type-specific
+ object this activation should use. This parameter is currently ignored for
+ wired and mobile broadband connections, and the value of %NULL should be used
+ (ie, no specific object). For Wi-Fi or WiMAX connections, pass the object
+ path of a #NMAccessPoint or #NMWimaxNsp owned by @device, which you can
+ get using nm_object_get_path(), and which will be used to complete the
+ details of the newly added connection.
+ If the variant is floating, it will be consumed.
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ callback to be called when the activation has started
+
+
+
+ caller-specific data passed to @callback
+
+
+
+
+
+ Gets the result of a call to nm_client_add_and_activate_connection_async().
+
+You can call nm_active_connection_get_connection() on the returned
+#NMActiveConnection to find the path of the created #NMConnection.
+
+
+ the new #NMActiveConnection on success, %NULL on
+ failure, in which case @error will be set.
+
+
+
+
+ an #NMClient
+
+
+
+ the result passed to the #GAsyncReadyCallback
+
+
+
+
+
+ Call AddConnection2() D-Bus API asynchronously.
+
+
+
+
+
+
+ the %NMClient
+
+
+
+ the "a{sa{sv}}" #GVariant with the content of the setting.
+
+
+
+ the %NMSettingsAddConnection2Flags argument.
+
+
+
+ the "a{sv}" #GVariant with extra argument or %NULL
+ for no extra arguments.
+
+
+
+ this function wraps AddConnection2(), which has an
+ additional result "a{sv}" output parameter. By setting this to %TRUE,
+ you signal that you are not interested in that output parameter.
+ This allows the function to fall back to AddConnection() and AddConnectionUnsaved(),
+ which is interesting if you run against an older server version that does
+ not yet provide AddConnection2(). By setting this to %FALSE, the function
+ under the hood always calls AddConnection2().
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ callback to be called when the add operation completes
+
+
+
+ caller-specific data passed to @callback
+
+
+
+
+
+
+
+ on success, a pointer to the added
+ #NMRemoteConnection.
+
+
+
+
+ the #NMClient
+
+
+
+ the #GAsyncResult
+
+
+
+ the output
+ #GVariant from AddConnection2().
+ If you care about the output result, then the "ignore_out_result"
+ parameter of nm_client_add_connection2() must not be set to %TRUE.
+
+
+
+
+
+ Requests that the remote settings service add the given settings to a new
+connection. If @save_to_disk is %TRUE, the connection is immediately written
+to disk; otherwise it is initially only stored in memory, but may be saved
+later by calling the connection's nm_remote_connection_commit_changes()
+method.
+
+@connection is untouched by this function and only serves as a template of
+the settings to add. The #NMRemoteConnection object that represents what
+NetworkManager actually added is returned to @callback when the addition
+operation is complete.
+
+Note that the #NMRemoteConnection returned in @callback may not contain
+identical settings to @connection as NetworkManager may perform automatic
+completion and/or normalization of connection properties.
+
+
+
+
+
+
+ the %NMClient
+
+
+
+ the connection to add. Note that this object's settings will be
+ added, not the object itself
+
+
+
+ whether to immediately save the connection to disk
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ callback to be called when the add operation completes
+
+
+
+ caller-specific data passed to @callback
+
+
+
+
+
+ Gets the result of a call to nm_client_add_connection_async().
+
+
+ the new #NMRemoteConnection on success, %NULL on
+ failure, in which case @error will be set.
+
+
+
+
+ an #NMClient
+
+
+
+ the result passed to the #GAsyncReadyCallback
+
+
+
+
+
+ Updates the network connectivity state and returns the (new)
+current state. Contrast nm_client_get_connectivity(), which returns
+the most recent known state without re-checking.
+
+This is a blocking call; use nm_client_check_connectivity_async()
+if you do not want to block.
+ Use nm_client_check_connectivity_async() or GDBusConnection.
+
+
+ the (new) current connectivity state
+
+
+
+
+ an #NMClient
+
+
+
+ a #GCancellable
+
+
+
+
+
+ Asynchronously updates the network connectivity state and invokes
+@callback when complete. Contrast nm_client_get_connectivity(),
+which (immediately) returns the most recent known state without
+re-checking, and nm_client_check_connectivity(), which blocks.
+
+
+
+
+
+
+ an #NMClient
+
+
+
+ a #GCancellable
+
+
+
+ callback to call with the result
+
+
+
+ data for @callback.
+
+
+
+
+
+ Retrieves the result of an nm_client_check_connectivity_async()
+call.
+
+
+ the (new) current connectivity state
+
+
+
+
+ an #NMClient
+
+
+
+ the #GAsyncResult
+
+
+
+
+
+ Resets the timeout for the checkpoint with path @checkpoint_path
+to @timeout_add.
+
+
+
+
+
+
+ the %NMClient
+
+
+
+ a D-Bus path to a checkpoint
+
+
+
+ the timeout in seconds counting from now.
+ Set to zero, to disable the timeout.
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ callback to be called when the add operation completes
+
+
+
+ caller-specific data passed to @callback
+
+
+
+
+
+ Gets the result of a call to nm_client_checkpoint_adjust_rollback_timeout().
+
+
+ %TRUE on success or %FALSE on failure.
+
+
+
+
+ an #NMClient
+
+
+
+ the result passed to the #GAsyncReadyCallback
+
+
+
+
+
+ Creates a checkpoint of the current networking configuration
+for given interfaces. An empty @devices argument means all
+devices. If @rollback_timeout is not zero, a rollback is
+automatically performed after the given timeout.
+
+
+
+
+
+
+ the %NMClient
+
+
+
+ a list of devices for which a
+ checkpoint should be created.
+
+
+
+
+
+ the rollback timeout in seconds
+
+
+
+ creation flags
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ callback to be called when the add operation completes
+
+
+
+ caller-specific data passed to @callback
+
+
+
+
+
+ Gets the result of a call to nm_client_checkpoint_create().
+
+
+ the new #NMCheckpoint on success, %NULL on
+ failure, in which case @error will be set.
+
+
+
+
+ the #NMClient
+
+
+
+ the result passed to the #GAsyncReadyCallback
+
+
+
+
+
+ Destroys an existing checkpoint without performing a rollback.
+
+
+
+
+
+
+ the %NMClient
+
+
+
+ the D-Bus path for the checkpoint
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ callback to be called when the add operation completes
+
+
+
+ caller-specific data passed to @callback
+
+
+
+
+
+ Gets the result of a call to nm_client_checkpoint_destroy().
+
+
+ %TRUE on success or %FALSE on failure, in which case
+ @error will be set.
+
+
+
+
+ an #NMClient
+
+
+
+ the result passed to the #GAsyncReadyCallback
+
+
+
+
+
+ Performs the rollback of a checkpoint before the timeout is reached.
+
+
+
+
+
+
+ the %NMClient
+
+
+
+ the D-Bus path to the checkpoint
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ callback to be called when the add operation completes
+
+
+
+ caller-specific data passed to @callback
+
+
+
+
+
+ Gets the result of a call to nm_client_checkpoint_rollback().
+
+
+ an hash table of
+ devices and results. Devices are represented by their original
+ D-Bus path; each result is a #NMRollbackResult.
+
+
+
+
+
+
+
+ an #NMClient
+
+
+
+ the result passed to the #GAsyncReadyCallback
+
+
+
+
+
+ Determine whether connectivity checking is available. This
+requires that the URI of a connectivity service has been set in the
+configuration file.
+
+
+ %TRUE if connectivity checking is available.
+
+
+
+
+ a #NMClient
+
+
+
+
+
+ Determine whether connectivity checking is enabled.
+
+
+ %TRUE if connectivity checking is enabled.
+
+
+
+
+ a #NMClient
+
+
+
+
+
+ Get the URI that will be queried to determine if there is internet
+connectivity.
+
+
+ the connectivity URI in use
+
+
+
+
+ a #NMClient
+
+
+
+
+
+ Enable or disable connectivity checking. Note that if a
+connectivity checking URI has not been configured, this will not
+have any effect.
+ Use the async command nm_client_dbus_set_property() on %NM_DBUS_PATH,
+%NM_DBUS_INTERFACE to set "ConnectivityCheckEnabled" property to a "(b)" value.
+
+
+
+
+
+
+ a #NMClient
+
+
+
+ %TRUE to enable connectivity checking
+
+
+
+
+
+ Call g_dbus_connection_call() on the current name owner with the specified
+arguments. Most importantly, this invokes g_dbus_connection_call() with the
+client's #GMainContext, so that the response is always in order with other
+events D-Bus events. Of course, the call uses #GTask and will invoke the
+callback on the current g_main_context_get_thread_default().
+
+This API is merely a convenient wrapper for g_dbus_connection_call(). You can
+also use g_dbus_connection_call() directly, with the same effect.
+
+
+
+
+
+
+ the #NMClient
+
+
+
+ path of remote object
+
+
+
+ D-Bus interface to invoke method on
+
+
+
+ the name of the method to invoke
+
+
+
+ a #GVariant tuple with parameters for the method
+ or %NULL if not passing parameters
+
+
+
+ the expected type of the reply (which will be a
+ tuple), or %NULL
+
+
+
+ the timeout in milliseconds, -1 to use the default
+ timeout or %G_MAXINT for no timeout
+
+
+
+ a #GCancellable or %NULL
+
+
+
+ a #GAsyncReadyCallback to call when the request
+ is satisfied or %NULL if you don't care about the result of the
+ method invocation
+
+
+
+ the data to pass to @callback
+
+
+
+
+
+ Gets the result of a call to nm_client_dbus_call().
+
+
+ the result #GVariant or %NULL on error.
+
+
+
+
+ the #NMClient instance
+
+
+
+ the result passed to the #GAsyncReadyCallback
+
+
+
+
+
+ Like nm_client_dbus_call() but calls "Set" on the standard "org.freedesktop.DBus.Properties"
+D-Bus interface.
+
+
+
+
+
+
+ the #NMClient
+
+
+
+ path of remote object
+
+
+
+ D-Bus interface for the property to set.
+
+
+
+ the name of the property to set
+
+
+
+ a #GVariant with the value to set.
+
+
+
+ the timeout in milliseconds, -1 to use the default
+ timeout or %G_MAXINT for no timeout
+
+
+
+ a #GCancellable or %NULL
+
+
+
+ a #GAsyncReadyCallback to call when the request
+ is satisfied or %NULL if you don't care about the result of the
+ method invocation
+
+
+
+ the data to pass to @callback
+
+
+
+
+
+ Gets the result of a call to nm_client_dbus_set_property().
+
+
+ %TRUE on success or %FALSE on failure.
+
+
+
+
+ the #NMClient instance
+
+
+
+ the result passed to the #GAsyncReadyCallback
+
+
+
+
+
+ Deactivates an active #NMActiveConnection.
+ Use nm_client_deactivate_connection_async() or GDBusConnection.
+
+
+ success or failure
+
+
+
+
+ a #NMClient
+
+
+
+ the #NMActiveConnection to deactivate
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+
+
+ Asynchronously deactivates an active #NMActiveConnection.
+
+
+
+
+
+
+ a #NMClient
+
+
+
+ the #NMActiveConnection to deactivate
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ callback to be called when the deactivation has completed
+
+
+
+ caller-specific data passed to @callback
+
+
+
+
+
+ Gets the result of a call to nm_client_deactivate_connection_async().
+
+
+ success or failure
+
+
+
+
+ a #NMClient
+
+
+
+ the result passed to the #GAsyncReadyCallback
+
+
+
+
+
+ Gets the #NMActiveConnection corresponding to a
+currently-activating connection that is expected to become the new
+#NMClient:primary-connection upon successful activation.
+
+
+ the appropriate #NMActiveConnection, if
+any.
+
+
+
+
+ an #NMClient
+
+
+
+
+
+ Gets the active connections.
+
+
+ a #GPtrArray
+ containing all the active #NMActiveConnections.
+The returned array is owned by the client and should not be modified.
+
+
+
+
+
+
+ a #NMClient
+
+
+
+
+
+ Gets both real devices and device placeholders (eg, software devices which
+do not currently exist, but could be created automatically by NetworkManager
+if one of their NMDevice::ActivatableConnections was activated). Use
+nm_device_is_real() to determine whether each device is a real device or
+a placeholder.
+
+Use nm_device_get_type() or the NM_IS_DEVICE_XXXX() functions to determine
+what kind of device each member of the returned array is, and then you may
+use device-specific methods such as nm_device_ethernet_get_hw_address().
+
+
+ a #GPtrArray
+containing all the #NMDevices. The returned array is owned by the
+#NMClient object and should not be modified.
+
+
+
+
+
+
+ a #NMClient
+
+
+
+
+
+
+
+ the
+ list of capabilities reported by the server or %NULL
+ if the capabilities are unknown.
+ The numeric values correspond to #NMCapability enum.
+ The array is terminated by a numeric zero sentinel
+ at position @length.
+
+
+
+
+
+
+ the #NMClient instance
+
+
+
+ the number of returned capabilities.
+
+
+
+
+
+ Gets all the active checkpoints.
+
+
+ a #GPtrArray
+containing all the #NMCheckpoint. The returned array is owned by the
+#NMClient object and should not be modified.
+
+
+
+
+
+
+ a #NMClient
+
+
+
+
+
+ Returns the first matching %NMRemoteConnection matching a given @id.
+
+
+ the remote connection object on success, or %NULL if no
+ matching object was found.
+
+The connection is as received from D-Bus and might not validate according
+to nm_connection_verify().
+
+
+
+
+ the %NMClient
+
+
+
+ the id of the remote connection
+
+
+
+
+
+ Returns the %NMRemoteConnection representing the connection at @path.
+
+
+ the remote connection object on success, or %NULL if the object was
+ not known
+
+The connection is as received from D-Bus and might not validate according
+to nm_connection_verify().
+
+
+
+
+ the %NMClient
+
+
+
+ the D-Bus object path of the remote connection
+
+
+
+
+
+ Returns the %NMRemoteConnection identified by @uuid.
+
+
+ the remote connection object on success, or %NULL if the object was
+ not known
+
+The connection is as received from D-Bus and might not validate according
+to nm_connection_verify().
+
+
+
+
+ the %NMClient
+
+
+
+ the UUID of the remote connection
+
+
+
+
+
+
+
+ an array
+containing all connections provided by the remote settings service. The
+returned array is owned by the #NMClient object and should not be modified.
+
+The connections are as received from D-Bus and might not validate according
+to nm_connection_verify().
+
+
+
+
+
+
+ the %NMClient
+
+
+
+
+
+ Gets the current network connectivity state. Contrast
+nm_client_check_connectivity() and
+nm_client_check_connectivity_async(), which re-check the
+connectivity state first before returning any information.
+
+
+ the current connectivity state
+
+
+
+
+ an #NMClient
+
+
+
+
+
+
+
+ a GObject that stays alive as long as there are pending
+ D-Bus operations.
+
+NMClient will schedule asynchronous D-Bus requests which will complete on
+the GMainContext associated with the instance. When destroying the NMClient
+instance, those requests are cancelled right away, however their pending requests are
+still outstanding and queued in the GMainContext. These outstanding callbacks
+keep the GMainContext alive. In order to fully release all resources,
+the user must keep iterating the main context until all these callbacks
+are handled. Of course, at this point no more actual callbacks will be invoked
+for the user, those are all cancelled internally.
+
+This just leaves one problem: how long does the user need to keep the
+GMainContext running to ensure everything is cleaned up? The answer is
+this GObject. Subscribe a weak reference to the returned object and keep
+iterating the main context until the object got unreferenced.
+
+Note that after the NMClient instance gets destroyed, all outstanding operations
+will be cancelled right away. That means, the user needs to iterate the #GMainContext
+a bit longer, but it is guaranteed that the cleanup happens soon after.
+
+The way of using the context-busy-watch, is by registering a weak pointer to
+see when it gets destroyed. That means, user code should not take additional
+references on this object to not keep it alive longer.
+
+If you plan to exit the program after releasing the NMClient instance
+you may not need to worry about these "leaks". Also, if you anyway plan to continue
+iterating the #GMainContext afterwards, then you don't need to care when exactly
+NMClient is gone completely.
+
+
+
+
+ the NMClient instance.
+
+
+
+
+
+ Gets the %GDBusConnection of the instance. This can be either passed when
+constructing the instance (as "dbus-connection" property), or it will be
+automatically initialized during async/sync init.
+
+
+ the D-Bus connection of the client, or %NULL if none is set.
+
+
+
+
+ a #NMClient
+
+
+
+
+
+
+
+ the current name owner of the D-Bus service of NetworkManager.
+
+
+
+
+ a #NMClient
+
+
+
+
+
+ Gets a #NMDevice from a #NMClient.
+
+
+ the #NMDevice for the given @iface or %NULL if none is found.
+
+
+
+
+ a #NMClient
+
+
+
+ the interface name to search for
+
+
+
+
+
+ Gets a #NMDevice from a #NMClient.
+
+
+ the #NMDevice for the given @object_path or %NULL if none is found.
+
+
+
+
+ a #NMClient
+
+
+
+ the object path to search for
+
+
+
+
+
+ Gets all the known network devices. Use nm_device_get_type() or the
+<literal>NM_IS_DEVICE_XXXX</literal> functions to determine what kind of
+device member of the returned array is, and then you may use device-specific
+methods such as nm_device_ethernet_get_hw_address().
+
+
+ a #GPtrArray
+containing all the #NMDevices. The returned array is owned by the
+#NMClient object and should not be modified.
+
+
+
+
+
+
+ a #NMClient
+
+
+
+
+
+ Gets the current DNS configuration
+
+
+ a #GPtrArray
+containing #NMDnsEntry elements or %NULL in case the value is not
+available. The returned array is owned by the #NMClient object
+and should not be modified.
+
+
+
+
+
+
+ a #NMClient
+
+
+
+
+
+ Gets the current DNS processing mode.
+
+
+ the DNS processing mode, or %NULL in case the
+ value is not available.
+
+
+
+
+ the #NMClient
+
+
+
+
+
+ Gets the current DNS resolv.conf manager.
+
+
+ the resolv.conf manager or %NULL in case the
+ value is not available.
+
+
+
+
+ the #NMClient
+
+
+
+
+
+
+
+ the #NMClientInstanceFlags flags.
+
+
+
+
+ the #NMClient instance.
+
+
+
+
+
+ Gets NetworkManager current logging level and domains.
+ Use the async command nm_client_dbus_call() on %NM_DBUS_PATH,
+%NM_DBUS_INTERFACE to call "GetLogging" with no arguments to get "(ss)" for level
+and domains.
+
+
+ %TRUE on success, %FALSE otherwise
+
+
+
+
+ a #NMClient
+
+
+
+ return location for logging level string
+
+
+
+ return location for log domains string. The string is
+ a list of domains separated by ","
+
+
+
+
+
+ The #NMClient instance is permanently associated with the current
+thread default #GMainContext, referenced the time when the instance
+was created. To receive events, the user must iterate this context
+and can use it to synchronize access to the client.
+
+Note that even after #NMClient instance got destroyed, there might
+still be pending sources registered in the context. That means, to fully
+clean up, the user must continue iterating the context as long as
+the nm_client_get_context_busy_watcher() object is alive.
+
+
+ the #GMainContext of the client.
+
+
+
+
+ the #NMClient instance
+
+
+
+
+
+
+
+ whether the default route is metered.
+
+
+
+
+ a #NMClient
+
+
+
+
+
+ Determines whether the daemon is running.
+
+
+ %TRUE if the daemon is running
+
+
+
+
+ a #NMClient
+
+
+
+
+
+
+
+ the #NMObject instance that is
+ cached under @dbus_path, or %NULL if no such object exists.
+
+
+
+
+ the #NMClient instance
+
+
+
+ the D-Bus path of the object to look up
+
+
+
+
+
+ Requests the result of a specific permission, which indicates whether the
+client can or cannot perform the action the permission represents
+
+
+ the permission's result, one of #NMClientPermissionResult
+
+
+
+
+ a #NMClient
+
+
+
+ the permission for which to return the result, one of #NMClientPermission
+
+
+
+
+
+
+
+ the state of the cached permissions. %NM_TERNARY_DEFAULT
+ means that no permissions result was yet received. All permissions
+ are unknown. %NM_TERNARY_TRUE means that the permissions got received
+ and are cached. %%NM_TERNARY_FALSE means that permissions are cached,
+ but they are invalided as "CheckPermissions" signal was received
+ in the meantime.
+
+
+
+
+ the #NMClient instance
+
+
+
+
+
+ Gets the #NMActiveConnection corresponding to the primary active
+network device.
+
+In particular, when there is no VPN active, or the VPN does not
+have the default route, this returns the active connection that has
+the default route. If there is a VPN active with the default route,
+then this function returns the active connection that contains the
+route to the VPN endpoint.
+
+If there is no default route, or the default route is over a
+non-NetworkManager-recognized device, this will return %NULL.
+
+
+ the appropriate #NMActiveConnection, if
+any
+
+
+
+
+ an #NMClient
+
+
+
+
+
+ Get radio flags.
+
+
+ the #NMRadioFlags.
+
+
+
+
+ a #NMClient
+
+
+
+
+
+ Tests whether the daemon is still in the process of activating
+connections at startup.
+
+
+ whether the daemon is still starting up
+
+
+
+
+ a #NMClient
+
+
+
+
+
+ Gets the current daemon state.
+
+
+ the current %NMState
+
+
+
+
+ a #NMClient
+
+
+
+
+
+ Gets NetworkManager version.
+
+
+ string with the version (or %NULL if NetworkManager is not running)
+
+
+
+
+ a #NMClient
+
+
+
+
+
+ If available, the first element in the array is NM_VERSION which
+encodes the daemon version as "(major << 16 | minor << 8 | micro)".
+The following elements are a bitfield of %NMVersionInfoCapabilities
+that indicate that the daemon supports a certain capability.
+
+
+ the
+ list of capabilities reported by the server or %NULL
+ if the capabilities are unknown.
+
+
+
+
+
+
+ the #NMClient instance
+
+
+
+ the number of returned capabilities.
+
+
+
+
+
+ Requests that the remote settings service load or reload the given files,
+adding or updating the connections described within.
+
+The changes to the indicated files will not yet be reflected in
+@client's connections array when the function returns.
+
+If all of the indicated files were successfully loaded, the
+function will return %TRUE, and @failures will be set to %NULL. If
+NetworkManager tried to load the files, but some (or all) failed,
+then @failures will be set to a %NULL-terminated array of the
+filenames that failed to load.
+ Use nm_client_load_connections_async() or GDBusConnection.
+
+
+ %TRUE on success.
+
+Warning: before libnm 1.22, the boolean return value was inconsistent.
+ That is made worse, because when running against certain server versions
+ before 1.20, the server would return wrong values for success/failure.
+ This means, if you use this function in libnm before 1.22, you are advised
+ to ignore the boolean return value and only look at @failures and @error.
+ With libnm >= 1.22, the boolean return value corresponds to whether @error was
+ set. Note that even in the success case, you might have individual @failures.
+ With 1.22, the return value is consistent with nm_client_load_connections_finish().
+
+
+
+
+ the %NMClient
+
+
+
+ %NULL-terminated array of filenames to load
+
+
+
+
+
+ on return, a %NULL-terminated array of
+ filenames that failed to load
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+
+
+ Requests that the remote settings service asynchronously load or reload the
+given files, adding or updating the connections described within.
+
+See nm_client_load_connections() for more details.
+
+
+
+
+
+
+ the %NMClient
+
+
+
+ %NULL-terminated array of filenames to load
+
+
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ callback to be called when the operation completes
+
+
+
+ caller-specific data passed to @callback
+
+
+
+
+
+ Gets the result of an nm_client_load_connections_async() call.
+
+See nm_client_load_connections() for more details.
+
+
+ %TRUE on success.
+ Note that even in the success case, you might have individual @failures.
+
+
+
+
+ the %NMClient
+
+
+
+ on return, a
+ %NULL-terminated array of filenames that failed to load
+
+
+
+
+
+ the result passed to the #GAsyncReadyCallback
+
+
+
+
+
+ Whether networking is enabled or disabled.
+
+
+ %TRUE if networking is enabled, %FALSE if networking is disabled
+
+
+
+
+ a #NMClient
+
+
+
+
+
+ Enables or disables networking. When networking is disabled, all controlled
+interfaces are disconnected and deactivated. When networking is enabled,
+all controlled interfaces are available for activation.
+ Use the async command nm_client_dbus_call() on %NM_DBUS_PATH,
+%NM_DBUS_INTERFACE to call "Enable" with "(b)" arguments and no return value.
+
+
+ %TRUE on success, %FALSE otherwise
+
+
+
+
+ a #NMClient
+
+
+
+ %TRUE to set networking enabled, %FALSE to set networking disabled
+
+
+
+
+
+ Reload NetworkManager's configuration and perform certain updates, like
+flushing caches or rewriting external state to disk. This is similar to
+sending SIGHUP to NetworkManager but it allows for more fine-grained control
+over what to reload (see @flags). It also allows non-root access via
+PolicyKit and contrary to signals it is synchronous.
+
+
+
+
+
+
+ the %NMClient
+
+
+
+ flags indicating what to reload.
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ callback to be called when the add operation completes
+
+
+
+ caller-specific data passed to @callback
+
+
+
+
+
+ Requests that the remote settings service reload all connection
+files from disk, adding, updating, and removing connections until
+the in-memory state matches the on-disk state.
+ Use nm_client_reload_connections_async() or GDBusConnection.
+
+
+ %TRUE on success, %FALSE on failure
+
+
+
+
+ the #NMClient
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+
+
+ Requests that the remote settings service begin reloading all connection
+files from disk, adding, updating, and removing connections until the
+in-memory state matches the on-disk state.
+
+
+
+
+
+
+ the #NMClient
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ callback to be called when the reload operation completes
+
+
+
+ caller-specific data passed to @callback
+
+
+
+
+
+ Gets the result of an nm_client_reload_connections_async() call.
+
+
+ %TRUE on success, %FALSE on failure
+
+
+
+
+ the #NMClient
+
+
+
+ the result passed to the #GAsyncReadyCallback
+
+
+
+
+
+ Gets the result of a call to nm_client_reload().
+
+
+ %TRUE on success or %FALSE on failure.
+
+
+
+
+ an #NMClient
+
+
+
+ the result passed to the #GAsyncReadyCallback
+
+
+
+
+
+ Requests that the machine's persistent hostname be set to the specified value
+or cleared.
+ Use nm_client_save_hostname_async() or GDBusConnection.
+
+
+ %TRUE if the request was successful, %FALSE if it failed
+
+
+
+
+ the %NMClient
+
+
+
+ the new persistent hostname to set, or %NULL to
+ clear any existing persistent hostname
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+
+
+ Requests that the machine's persistent hostname be set to the specified value
+or cleared.
+
+
+
+
+
+
+ the %NMClient
+
+
+
+ the new persistent hostname to set, or %NULL to
+ clear any existing persistent hostname
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ callback to be called when the operation completes
+
+
+
+ caller-specific data passed to @callback
+
+
+
+
+
+ Gets the result of an nm_client_save_hostname_async() call.
+
+
+ %TRUE if the request was successful, %FALSE if it failed
+
+
+
+
+ the %NMClient
+
+
+
+ the result passed to the #GAsyncReadyCallback
+
+
+
+
+
+ Sets NetworkManager logging level and/or domains.
+ Use the async command nm_client_dbus_call() on %NM_DBUS_PATH,
+%NM_DBUS_INTERFACE to call "SetLogging" with "(ss)" arguments for level and domains.
+
+
+ %TRUE on success, %FALSE otherwise
+
+
+
+
+ a #NMClient
+
+
+
+ logging level to set (%NULL or an empty string for no change)
+
+
+
+ logging domains to set. The string should be a list of log
+ domains separated by ",". (%NULL or an empty string for no change)
+
+
+
+
+
+ The way to stop #NMClient is by unrefing it. That will cancel all
+internally pending async operations. However, as async operations in
+NMClient use GTask, hence they cannot complete right away. Instead,
+their (internal) result callback still needs to be dispatched by iterating
+the client's main context.
+
+You thus cannot stop iterating the client's main context until
+everything is wrapped up. nm_client_get_context_busy_watcher()
+helps to watch how long that will be.
+
+This function automates that waiting. Like all glib async operations
+this honors the current g_main_context_get_thread_default().
+
+In any case, to complete the shutdown, nm_client_get_main_context()
+must be iterated. If the current g_main_context_get_thread_default() is
+the same as nm_client_get_main_context(), then @integrate_maincontext
+is ignored. In that case, the caller is required to iterate the context
+for shutdown to complete. Otherwise, if g_main_context_get_thread_default()
+differs from nm_client_get_main_context() and @integrate_maincontext
+is %FALSE, the caller must make sure that both contexts are iterated
+until completion. Otherwise, if @integrate_maincontext is %TRUE, then
+nm_client_get_main_context() will be integrated in g_main_context_get_thread_default().
+This means, the caller gives nm_client_get_main_context() up until the waiting
+completes, the function will acquire the context and hook it into
+g_main_context_get_thread_default().
+It is a bug to request @integrate_maincontext while having nm_client_get_main_context()
+acquired or iterated otherwise because a context can only be acquired once
+at a time.
+
+Shutdown can only complete after all references to @client were released.
+
+It is possible to call this function multiple times for the same client.
+But note that with @integrate_maincontext the client's context is acquired,
+which can only be done once at a time.
+
+It is permissible to start waiting before the objects is fully initialized.
+
+The function really allows two separate things. To get a notification (callback) when
+shutdown is complete, and to integrate the client's context in another context.
+The latter case is useful if the client has a separate context and you hand it
+over to another GMainContext to wrap up.
+
+The main use is to have a NMClient and a separate GMainContext on a worker
+thread. When being done, you can hand over the cleanup of the context
+to g_main_context_default(), assuming that the main thread iterates
+the default context. In that case, you don't need to care about passing
+a callback to know when shutdown completed.
+
+
+
+
+
+
+ the #NMClient to shutdown.
+
+
+
+ whether to hook the client's maincontext
+ in the current thread default. Otherwise, you must ensure
+ that the client's maincontext gets iterated so that it can complete.
+ By integrating the maincontext in the current thread default, you
+ may instead only iterate the latter.
+
+
+
+ the #GCancellable to abort the shutdown.
+
+
+
+ a #GAsyncReadyCallback to call when the request
+ is satisfied or %NULL if you don't care about the result of the
+ method invocation.
+
+
+
+ the data to pass to @callback
+
+
+
+
+
+ Determines whether WiMAX is enabled.
+ This function always returns FALSE because WiMax is no longer supported.
+
+
+ %TRUE if WiMAX is enabled
+
+
+
+
+ a #NMClient
+
+
+
+
+
+ Determines whether the WiMAX hardware is enabled.
+ This function always returns FALSE because WiMax is no longer supported.
+
+
+ %TRUE if the WiMAX hardware is enabled
+
+
+
+
+ a #NMClient
+
+
+
+
+
+ Enables or disables WiMAX devices.
+ This function does nothing because WiMax is no longer supported.
+
+
+
+
+
+
+ a #NMClient
+
+
+
+ %TRUE to enable WiMAX
+
+
+
+
+
+ Determines whether the wireless is enabled.
+
+
+ %TRUE if wireless is enabled
+
+
+
+
+ a #NMClient
+
+
+
+
+
+ Determines whether the wireless hardware is enabled.
+
+
+ %TRUE if the wireless hardware is enabled
+
+
+
+
+ a #NMClient
+
+
+
+
+
+ Enables or disables wireless devices.
+ Use the async command nm_client_dbus_set_property() on %NM_DBUS_PATH,
+%NM_DBUS_INTERFACE to set "WirelessEnabled" property to a "(b)" value.
+
+
+
+
+
+
+ a #NMClient
+
+
+
+ %TRUE to enable wireless
+
+
+
+
+
+ Determines whether WWAN is enabled.
+
+
+ %TRUE if WWAN is enabled
+
+
+
+
+ a #NMClient
+
+
+
+
+
+ Determines whether the WWAN hardware is enabled.
+
+
+ %TRUE if the WWAN hardware is enabled
+
+
+
+
+ a #NMClient
+
+
+
+
+
+ Enables or disables WWAN devices.
+ Use the async command nm_client_dbus_set_property() on %NM_DBUS_PATH,
+%NM_DBUS_INTERFACE to set "WwanEnabled" property to a "(b)" value.
+
+
+
+
+
+
+ a #NMClient
+
+
+
+ %TRUE to enable WWAN
+
+
+
+
+
+ The #NMActiveConnection of the activating connection that is
+likely to become the new #NMClient:primary-connection.
+
+
+
+ The active connections.
+
+
+
+
+
+ List of both real devices and device placeholders.
+
+
+
+
+
+ If %TRUE, adding and modifying connections is supported.
+
+
+
+ The list of capabilities numbers as guint32 or %NULL if
+there are no capabilities. The numeric value correspond
+to %NMCapability enum.
+
+
+
+
+
+ The list of active checkpoints.
+
+
+
+
+
+ The list of configured connections that are available to the user. (Note
+that this differs from the underlying D-Bus property, which may also
+contain the object paths of connections that the user does not have
+permission to read the details of.)
+
+
+
+
+
+ The network connectivity state.
+
+
+
+
+
+
+
+
+
+ The used URI for connectivity checking.
+
+
+
+ The #GDBusConnection to use.
+
+If this is not set during object construction, the D-Bus connection will
+automatically be chosen during async/sync initalization via g_bus_get().
+
+
+
+ The name owner of the NetworkManager D-Bus service.
+
+
+
+ List of real network devices. Does not include placeholder devices.
+
+
+
+
+
+ The current DNS configuration, represented as an array
+of #NMDnsEntry objects.
+
+
+
+
+
+ The current DNS processing mode.
+
+
+
+ The current resolv.conf management mode.
+
+
+
+ The machine hostname stored in persistent configuration. This can be
+modified by calling nm_client_save_hostname().
+
+
+
+ #NMClientInstanceFlags for the instance. These affect behavior of #NMClient.
+This is a construct property and you may only set most flags only during
+construction.
+
+The flag %NM_CLIENT_INSTANCE_FLAGS_NO_AUTO_FETCH_PERMISSIONS can be toggled any time,
+even after constructing the instance. Note that you may want to watch NMClient:permissions-state
+property to know whether permissions are ready. Note that permissions are only fetched
+when NMClient has a D-Bus name owner.
+
+The flags %NM_CLIENT_INSTANCE_FLAGS_INITIALIZED_GOOD and %NM_CLIENT_INSTANCE_FLAGS_INITIALIZED_BAD
+cannot be set, however they will be returned by the getter after initialization completes.
+
+
+
+ Whether the connectivity is metered.
+
+
+
+ Whether networking is enabled.
+
+The property setter is a synchronous D-Bus call. This is deprecated since 1.22.
+
+
+
+ Whether the daemon is running.
+
+
+
+ The state of the cached permissions. The value %NM_TERNARY_DEFAULT
+means that no permissions are yet received (or not yet requested).
+%NM_TERNARY_TRUE means that permissions are received, cached and up
+to date. %NM_TERNARY_FALSE means that permissions were received and are
+cached, but in the meantime a "CheckPermissions" signal was received
+that invalidated the cached permissions.
+Note that NMClient will always emit a notify::permissions-state signal
+when a "CheckPermissions" signal got received or after new permissions
+got received (that is regardless whether the value of the permission state
+actually changed). With this you can watch the permissions-state property
+to know whether the permissions are ready. Note that while NMClient has
+no D-Bus name owner, no permissions are fetched (and this property won't
+change).
+
+
+
+ The #NMActiveConnection of the device with the default route;
+see nm_client_get_primary_connection() for more details.
+
+
+
+ Flags for radio interfaces. See #NMRadioFlags.
+
+
+
+ Whether the daemon is still starting up.
+
+
+
+ The current daemon state.
+
+
+
+ The NetworkManager version.
+
+
+
+ Expose version info and capabilities of NetworkManager. If non-empty,
+the first element is NM_VERSION, which encodes the version of the
+daemon as "(major << 16 | minor << 8 | micro)". The following elements
+is a bitfields of %NMVersionInfoCapabilities. If a bit is set, then
+the running NetworkManager has the respective capability.
+
+
+
+
+
+ Whether WiMAX functionality is enabled.
+ WiMAX is no longer supported and this always returns FALSE. The setter has no effect.
+
+
+
+ Whether the WiMAX hardware is enabled.
+ WiMAX is no longer supported and this always returns FALSE.
+
+
+
+ Whether wireless is enabled.
+
+The property setter is a synchronous D-Bus call. This is deprecated since 1.22.
+
+
+
+ Whether the wireless hardware is enabled.
+
+
+
+ Whether WWAN functionality is enabled.
+
+The property setter is a synchronous D-Bus call. This is deprecated since 1.22.
+
+
+
+ Whether the WWAN hardware is enabled.
+
+
+
+ Notifies that a #NMActiveConnection has been added.
+
+
+
+
+
+ the new active connection
+
+
+
+
+
+ Notifies that a #NMActiveConnection has been removed.
+
+
+
+
+
+ the removed active connection
+
+
+
+
+
+ Notifies that a #NMDevice is added. This signal is emitted for both
+regular devices and placeholder devices.
+
+
+
+
+
+ the new device
+
+
+
+
+
+ Notifies that a #NMDevice is removed. This signal is emitted for both
+regular devices and placeholder devices.
+
+
+
+
+
+ the removed device
+
+
+
+
+
+ Notifies that a #NMConnection has been added.
+
+
+
+
+
+ the new connection
+
+
+
+
+
+ Notifies that a #NMConnection has been removed.
+
+
+
+
+
+ the removed connection
+
+
+
+
+
+ Notifies that a #NMDevice is added. This signal is not emitted for
+placeholder devices.
+
+
+
+
+
+ the new device
+
+
+
+
+
+ Notifies that a #NMDevice is removed. This signal is not emitted for
+placeholder devices.
+
+
+
+
+
+ the removed device
+
+
+
+
+
+ Notifies that a permission has changed
+
+
+
+
+
+ a permission from #NMClientPermission
+
+
+
+ the permission's result, one of #NMClientPermissionResult
+
+
+
+
+
+
+
+
+
+ Describes errors that may result from operations involving a #NMClient.
+
+D-Bus operations may also return errors from other domains, including
+#NMManagerError, #NMSettingsError, #NMAgentManagerError, and #NMConnectionError.
+
+ unknown or unclassified error
+
+
+ an operation that requires NetworkManager
+ failed because NetworkManager is not running
+
+
+ NetworkManager claimed that an
+ operation succeeded, but the object that was allegedly created (eg,
+ #NMRemoteConnection, #NMActiveConnection) was apparently destroyed before
+ #NMClient could create a representation of it.
+
+
+ Registers an error quark for #NMClient if necessary.
+
+ the error quark used for #NMClient errors.
+
+
+
+
+
+
+ special value to indicate no flags.
+
+
+ by default, NMClient
+ will fetch the permissions via "GetPermissions" and refetch them when
+ "CheckPermissions" signal gets received. By setting this flag, this behavior
+ can be disabled. You can toggle this flag to enable and disable automatic
+ fetching of the permissions. Watch also nm_client_get_permissions_state()
+ to know whether the permissions are up to date.
+
+
+ as #NMClient is an GInitable
+ and GAsyncInitable, nm_client_get_instance_flags() returns this flag
+ once initialization completed with success. This flag cannot be set
+ as NM_CLIENT_INSTANCE_FLAGS property. Since: 1.42.
+
+
+ like @NM_CLIENT_INSTANCE_FLAGS_INITIALIZED_GOOD
+ indicates that the instance completed initialization with failure. In that
+ case the instance is unusable. Since: 1.42.
+
+
+
+ #NMClientPermission values indicate various permissions that NetworkManager
+clients can obtain to perform certain tasks on behalf of the current user.
+
+ unknown or no permission
+
+
+ controls whether networking
+ can be globally enabled or disabled
+
+
+ controls whether Wi-Fi can be
+ globally enabled or disabled
+
+
+ controls whether WWAN (3G) can be
+ globally enabled or disabled
+
+
+ controls whether WiMAX can be
+ globally enabled or disabled
+
+
+ controls whether the client can ask
+ NetworkManager to sleep and wake
+
+
+ controls whether networking connections
+ can be started, stopped, and changed
+
+
+ controls whether a password
+ protected Wi-Fi hotspot can be created
+
+
+ controls whether an open Wi-Fi hotspot
+ can be created
+
+
+ controls whether connections
+ that are available to all users can be modified
+
+
+ controls whether connections
+ owned by the current user can be modified
+
+
+ controls whether the
+ persistent hostname can be changed
+
+
+ modify persistent global
+ DNS configuration
+
+
+ controls access to Reload.
+
+
+ permission to create checkpoints.
+
+
+ controls whether device
+ statistics can be globally enabled or disabled
+
+
+ controls whether
+ connectivity check can be enabled or disabled
+
+
+ controls whether wifi scans can be performed
+
+
+ a reserved boundary value
+
+
+
+ #NMClientPermissionResult values indicate what authorizations and permissions
+the user requires to obtain a given #NMClientPermission
+
+ unknown or no authorization
+
+
+ the permission is available
+
+
+ authorization is necessary before the
+ permission is available
+
+
+ permission to perform the operation is
+ denied by system policy
+
+
+
+ NMConnection is the interface implemented by #NMRemoteConnection on the
+client side, and #NMSettingsConnection on the daemon side.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Adds a #NMSetting to the connection, replacing any previous #NMSetting of the
+same name which has previously been added to the #NMConnection. The
+connection takes ownership of the #NMSetting object and does not increase
+the setting object's reference count.
+
+
+
+
+
+
+ a #NMConnection
+
+
+
+ the #NMSetting to add to the connection object
+
+
+
+
+
+ Clears and frees any secrets that may be stored in the connection, to avoid
+keeping secret data in memory when not needed.
+
+
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ Clears and frees secrets determined by @func.
+
+
+
+
+
+
+ the #NMConnection
+
+
+
+ function to be called to determine whether a
+ specific secret should be cleared or not. If %NULL, all secrets are cleared.
+
+
+
+ caller-supplied data passed to @func
+
+
+
+
+
+ Deletes all of @connection's settings.
+
+
+
+
+
+
+ a #NMConnection
+
+
+
+
+
+ Compares two #NMConnection objects for similarity, with comparison behavior
+modified by a set of flags. See nm_setting_compare() for a description of
+each flag's behavior.
+
+
+ %TRUE if the comparison succeeds, %FALSE if it does not
+
+
+
+
+ a #NMConnection
+
+
+
+ a second #NMConnection to compare with the first
+
+
+
+ compare flags, e.g. %NM_SETTING_COMPARE_FLAG_EXACT
+
+
+
+
+
+ Compares two #NMConnection objects for similarity, with comparison behavior
+modified by a set of flags. See nm_setting_compare() for a description of
+each flag's behavior. If the connections differ, settings and keys within
+each setting that differ are added to the returned @out_settings hash table.
+No values are returned, only key names.
+
+
+ %TRUE if the connections contain the same values, %FALSE if they do
+not
+
+
+
+
+ a #NMConnection
+
+
+
+ a second #NMConnection to compare with the first
+
+
+
+ compare flags, e.g. %NM_SETTING_COMPARE_FLAG_EXACT
+
+
+
+
+if the connections differ, on return a hash table
+mapping setting names to second-level GHashTable (utf8 to guint32), which
+contains the key names that differ mapped to one or more of
+%NMSettingDiffResult as a bitfield
+
+
+
+
+
+
+
+
+
+
+
+ Print the connection (including secrets!) to stdout. For debugging
+purposes ONLY, should NOT be used for serialization of the setting,
+or machine-parsed in any way. The output format is not guaranteed to
+be stable and may change at any time.
+
+
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ Iterates over the properties of each #NMSetting object in the #NMConnection,
+calling the supplied user function for each property.
+
+
+
+
+
+
+ the #NMConnection
+
+
+
+ user-supplied function called for each setting's property
+
+
+
+ user data passed to @func at each invocation
+
+
+
+
+
+ A shortcut to return the type from the connection's #NMSettingConnection.
+
+
+ the type from the connection's 'connection' setting
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return the ID from the connection's #NMSettingConnection.
+
+
+ the ID from the connection's 'connection' setting
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ Returns the interface name as stored in NMSettingConnection:interface_name.
+If the connection contains no NMSettingConnection, it will return %NULL.
+
+For hardware devices and software devices created outside of NetworkManager,
+this name is used to match the device. for software devices created by
+NetworkManager, this is the name of the created interface.
+
+
+ Name of the kernel interface or %NULL
+
+
+
+
+ The #NMConnection
+
+
+
+
+
+ Returns the connection's D-Bus path.
+
+
+ the D-Bus path of the connection, previously set by a call to
+nm_connection_set_path().
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ Gets the #NMSetting with the given #GType, if one has been previously added
+to the #NMConnection.
+
+
+ the #NMSetting, or %NULL if no setting of that type was previously
+added to the #NMConnection
+
+
+
+
+ a #NMConnection
+
+
+
+ the #GType of the setting object to return
+
+
+
+
+
+ A shortcut to return any #NMSetting8021x the connection might contain.
+
+
+ an #NMSetting8021x if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingAdsl the connection might contain.
+
+
+ an #NMSettingAdsl if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingBluetooth the connection might contain.
+
+
+ an #NMSettingBluetooth if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingBond the connection might contain.
+
+
+ an #NMSettingBond if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingBridge the connection might contain.
+
+
+ an #NMSettingBridge if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingBridgePort the connection might contain.
+
+
+ an #NMSettingBridgePort if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ Gets the #NMSetting with the given name, if one has been previously added
+the #NMConnection.
+
+
+ the #NMSetting, or %NULL if no setting with that name was previously
+added to the #NMConnection
+
+
+
+
+ a #NMConnection
+
+
+
+ a setting name
+
+
+
+
+
+ A shortcut to return any #NMSettingCdma the connection might contain.
+
+
+ an #NMSettingCdma if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingConnection the connection might contain.
+
+
+ an #NMSettingConnection if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingDcb the connection might contain.
+
+
+ an #NMSettingDcb if the connection contains one, otherwise NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingDummy the connection might contain.
+
+
+ an #NMSettingDummy if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingGeneric the connection might contain.
+
+
+ an #NMSettingGeneric if the connection contains one, otherwise NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingGsm the connection might contain.
+
+
+ an #NMSettingGsm if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingInfiniband the connection might contain.
+
+
+ an #NMSettingInfiniband if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingIP4Config the connection might contain.
+
+Note that it returns the value as type #NMSettingIPConfig, since the vast
+majority of IPv4-setting-related methods are on that type, not
+#NMSettingIP4Config.
+
+
+ an #NMSettingIP4Config if the
+connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingIP6Config the connection might contain.
+
+Note that it returns the value as type #NMSettingIPConfig, since the vast
+majority of IPv6-setting-related methods are on that type, not
+#NMSettingIP6Config.
+
+
+ an #NMSettingIP6Config if the
+connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingIPTunnel the connection might contain.
+
+
+ an #NMSettingIPTunnel if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingMacsec the connection might contain.
+
+
+ an #NMSettingMacsec if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingMacvlan the connection might contain.
+
+
+ an #NMSettingMacvlan if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingOlpcMesh the connection might contain.
+
+
+ an #NMSettingOlpcMesh if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingOvsBridge the connection might contain.
+
+
+ an #NMSettingOvsBridge if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingOvsInterface the connection might contain.
+
+
+ an #NMSettingOvsInterface if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingOvsPatch the connection might contain.
+
+
+ an #NMSettingOvsPatch if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingOvsPort the connection might contain.
+
+
+ an #NMSettingOvsPort if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingPpp the connection might contain.
+
+
+ an #NMSettingPpp if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingPppoe the connection might contain.
+
+
+ an #NMSettingPppoe if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingProxy the connection might contain.
+
+
+ an #NMSettingProxy if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingSerial the connection might contain.
+
+
+ an #NMSettingSerial if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingTCConfig the connection might contain.
+
+
+ an #NMSettingTCConfig if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingTeam the connection might contain.
+
+
+ an #NMSettingTeam if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingTeamPort the connection might contain.
+
+
+ an #NMSettingTeamPort if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingTun the connection might contain.
+
+
+ an #NMSettingTun if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingVlan the connection might contain.
+
+
+ an #NMSettingVlan if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingVpn the connection might contain.
+
+
+ an #NMSettingVpn if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingVxlan the connection might contain.
+
+
+ an #NMSettingVxlan if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingWimax the connection might contain.
+
+
+ an #NMSettingWimax if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingWired the connection might contain.
+
+
+ an #NMSettingWired if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingWireless the connection might contain.
+
+
+ an #NMSettingWireless if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ A shortcut to return any #NMSettingWirelessSecurity the connection might contain.
+
+
+ an #NMSettingWirelessSecurity if the connection contains one, otherwise %NULL
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ Retrieves the settings in @connection.
+
+The returned array is %NULL-terminated.
+
+
+ a
+ %NULL-terminated array containing every setting of @connection.
+ If the connection has no settings, %NULL is returned.
+
+
+
+
+
+
+ the #NMConnection instance
+
+
+
+ the length of the returned array
+
+
+
+
+
+ A shortcut to return the UUID from the connection's #NMSettingConnection.
+
+
+ the UUID from the connection's 'connection' setting
+
+
+
+
+ the #NMConnection
+
+
+
+
+
+ Returns the name that nm_device_disambiguate_names() would
+return for the virtual device that would be created for @connection.
+Eg, "VLAN (eth1.1)".
+
+
+ the name of @connection's device,
+ or %NULL if @connection is not a virtual connection type
+
+
+
+
+ an #NMConnection for a virtual device type
+
+
+
+
+
+ A convenience function to check if the given @connection is a particular
+type (ie wired, Wi-Fi, ppp, etc). Checks the #NMSettingConnection:type
+property of the connection and matches that against @type.
+
+
+ %TRUE if the connection is of the given @type, %FALSE if not
+
+
+
+
+ the #NMConnection
+
+
+
+ a setting name to check the connection's type against (like
+%NM_SETTING_WIRELESS_SETTING_NAME or %NM_SETTING_WIRED_SETTING_NAME)
+
+
+
+
+
+ Checks if @connection refers to a virtual device (and thus can potentially be
+activated even if the device it refers to doesn't exist).
+
+
+ whether @connection refers to a virtual device
+
+
+
+
+ an #NMConnection
+
+
+
+
+
+ Returns the name of the first setting object in the connection which would
+need secrets to make a successful connection. The returned hints are only
+intended as a guide to what secrets may be required, because in some
+circumstances, there is no way to conclusively determine exactly which
+secrets are needed.
+
+
+ the setting name of the #NMSetting object which has
+ invalid or missing secrets
+
+
+
+
+ the #NMConnection
+
+
+
+
+ the address of a pointer to a #GPtrArray, initialized to %NULL, which on
+ return points to an allocated #GPtrArray containing the property names of
+ secrets of the #NMSetting which may be required; the caller owns the array
+ and must free the array itself with g_ptr_array_free(), but not free its
+ elements
+
+
+
+
+
+
+
+ Does some basic normalization and fixup of well known inconsistencies
+and deprecated fields. If the connection was modified in any way,
+the output parameter @modified is set %TRUE.
+
+Finally the connection will be verified and %TRUE returns if the connection
+is valid. As this function only performs some specific normalization steps
+it cannot repair all connections. If the connection has errors that
+cannot be normalized, the connection will not be modified.
+
+
+ %TRUE if the connection is valid, %FALSE if it is not
+
+
+
+
+ the #NMConnection to normalize
+
+
+
+ a #GHashTable with
+normalization parameters to allow customization of the normalization by providing
+specific arguments. Unknown arguments will be ignored and the default will be
+used. The keys must be strings compared with g_str_equal() function.
+The values are opaque and depend on the parameter name.
+
+
+
+
+
+
+ outputs whether any settings were modified.
+
+
+
+
+
+ Removes the #NMSetting with the given #GType from the #NMConnection. This
+operation dereferences the #NMSetting object.
+
+
+
+
+
+
+ a #NMConnection
+
+
+
+ the #GType of the setting object to remove
+
+
+
+
+
+ Replaces @connection's settings with @new_settings (which must be
+syntactically valid, and describe a known type of connection, but does not
+need to result in a connection that passes nm_connection_verify()).
+
+
+ %TRUE if connection was updated, %FALSE if @new_settings could not
+ be deserialized (in which case @connection will be unchanged).
+
+
+
+
+ a #NMConnection
+
+
+
+ a #GVariant of type %NM_VARIANT_TYPE_CONNECTION, with the new settings
+
+
+
+
+
+ Deep-copies the settings of @new_connection and replaces the settings of @connection
+with the copied settings.
+
+
+
+
+
+
+ a #NMConnection
+
+
+
+ a #NMConnection to replace the settings of @connection with
+
+
+
+
+
+ Sets the D-Bus path of the connection. This property is not serialized, and
+is only for the reference of the caller. Sets the #NMConnection:path
+property.
+
+
+
+
+
+
+ the #NMConnection
+
+
+
+ the D-Bus path of the connection as given by the settings service
+which provides the connection
+
+
+
+
+
+ Converts the #NMConnection into a #GVariant of type
+%NM_VARIANT_TYPE_CONNECTION describing the connection, suitable for
+marshalling over D-Bus or otherwise serializing.
+
+
+ a new floating #GVariant describing the connection,
+its settings, and each setting's properties.
+
+
+
+
+ the #NMConnection
+
+
+
+ serialization flags, e.g. %NM_CONNECTION_SERIALIZE_ALL
+
+
+
+
+
+ Update the specified setting's secrets, given a dictionary of secrets
+intended for that setting (deserialized from D-Bus for example). Will also
+extract the given setting's secrets hash if given a connection dictionary.
+If @setting_name is %NULL, expects a fully serialized #NMConnection as
+returned by nm_connection_to_dbus() and will update all secrets from all
+settings contained in @secrets.
+
+
+ %TRUE if the secrets were successfully updated, %FALSE if the update
+failed (tried to update secrets for a setting that doesn't exist, etc)
+
+
+
+
+ the #NMConnection
+
+
+
+ the setting object name to which the secrets apply
+
+
+
+ a #GVariant of secrets, of type %NM_VARIANT_TYPE_CONNECTION
+ or %NM_VARIANT_TYPE_SETTING
+
+
+
+
+
+ Validates the connection and all its settings. Each setting's properties
+have allowed values, and some values are dependent on other values. For
+example, if a Wi-Fi connection is security enabled, the #NMSettingWireless
+setting object's 'security' property must contain the setting name of the
+#NMSettingWirelessSecurity object, which must also be present in the
+connection for the connection to be valid. As another example, the
+#NMSettingWired object's 'mac-address' property must be a validly formatted
+MAC address. The returned #GError contains information about which
+setting and which property failed validation, and how it failed validation.
+
+
+ %TRUE if the connection is valid, %FALSE if it is not
+
+
+
+
+ the #NMConnection to verify
+
+
+
+
+
+ Verifies the secrets in the connection.
+
+
+ %TRUE if the secrets are valid, %FALSE if they are not
+
+
+
+
+ the #NMConnection to verify in
+
+
+
+
+
+ The ::changed signal is emitted when any property (including secrets)
+of any setting of the connection is modified, or when settings are
+added or removed.
+
+
+
+
+
+ The ::secrets-cleared signal is emitted when the secrets of a connection
+are cleared.
+
+
+
+
+
+ The ::secrets-updated signal is emitted when the secrets of a setting
+have been changed.
+
+
+
+
+
+ the setting name of the #NMSetting for which secrets were
+updated
+
+
+
+
+
+
+ Describes errors that may result from operations involving a #NMConnection
+or its #NMSettings.
+
+These errors may be returned directly from #NMConnection and #NMSetting
+methods, or may be returned from D-Bus operations (eg on #NMClient or
+#NMDevice), where they correspond to errors in the
+"org.freedesktop.NetworkManager.Settings.Connection" namespace.
+
+ unknown or unclassified error
+
+
+ the #NMConnection object
+ did not contain the specified #NMSetting object
+
+
+ the #NMConnection did not contain the
+ requested #NMSetting property
+
+
+ an operation which requires a secret
+ was attempted on a non-secret property
+
+
+ the #NMConnection object is missing an
+ #NMSetting which is required for its configuration. The error message will
+ always be prefixed with "<setting-name>: ", where "<setting-name>" is the
+ name of the setting that is missing.
+
+
+ the #NMConnection object contains an
+ invalid or inappropriate #NMSetting. The error message will always be
+ prefixed with "<setting-name>: ", where "<setting-name>" is the name of the
+ setting that is invalid.
+
+
+ the #NMConnection object is invalid
+ because it is missing a required property. The error message will always be
+ prefixed with "<setting-name>.<property-name>: ", where "<setting-name>" is
+ the name of the setting with the missing property, and "<property-name>" is
+ the property that is missing.
+
+
+ the #NMConnection object is invalid
+ because a property has an invalid value. The error message will always be
+ prefixed with "<setting-name>.<property-name>: ", where "<setting-name>" is
+ the name of the setting with the invalid property, and "<property-name>" is
+ the property that is invalid.
+
+
+
+
+
+
+
+
+
+
+ the parent interface struct
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ indicates that the per-connection
+ setting is unspecified. In this case, it will fallback to the default
+ value, which is %NM_CONNECTION_MULTI_CONNECT_SINGLE.
+
+
+ the connection profile can only
+ be active once at each moment. Activating a profile that is already active,
+ will first deactivate it.
+
+
+ the profile can
+ be manually activated multiple times on different devices. However,
+ regarding autoconnect, the profile will autoconnect only if it is
+ currently not connected otherwise.
+
+
+ the profile can autoactivate
+ and be manually activated multiple times together.
+
+
+
+ These flags determine which properties are serialized when calling
+nm_connection_to_dbus().
+
+ serialize all properties (including secrets)
+
+
+ serialize properties that are
+ not secrets. Since 1.32.
+
+
+ this is a deprecated alias for
+ @NM_CONNECTION_SERIALIZE_WITH_NON_SECRET.
+
+
+ serialize all secrets. This flag is
+ ignored if any of @NM_CONNECTION_SERIALIZE_WITH_SECRETS_AGENT_OWNED,
+ @NM_CONNECTION_SERIALIZE_WITH_SECRETS_SYSTEM_OWNED or
+ @NM_CONNECTION_SERIALIZE_WITH_SECRETS_NOT_SAVED is set. Since 1.32.
+
+
+ a deprecated alias for
+ @NM_CONNECTION_SERIALIZE_WITH_SECRETS.
+
+
+ serialize agent-owned
+ secrets. Since: 1.20.
+
+
+ serialize system-owned
+ secrets. Since: 1.32.
+
+
+ serialize secrets that
+ are marked as never saved. Since: 1.32.
+
+
+
+
+ Network connectivity is unknown. This means the
+ connectivity checks are disabled (e.g. on server installations) or has
+ not run yet. The graphical shell should assume the Internet connection
+ might be available and not present a captive portal window.
+
+
+ The host is not connected to any network. There's
+ no active connection that contains a default route to the internet and
+ thus it makes no sense to even attempt a connectivity check. The graphical
+ shell should use this state to indicate the network connection is unavailable.
+
+
+ The Internet connection is hijacked by a captive
+ portal gateway. The graphical shell may open a sandboxed web browser window
+ (because the captive portals typically attempt a man-in-the-middle attacks
+ against the https connections) for the purpose of authenticating to a gateway
+ and retrigger the connectivity check with CheckConnectivity() when the
+ browser window is dismissed.
+
+
+ The host is connected to a network, does not appear
+ to be able to reach the full Internet, but a captive portal has not been
+ detected.
+
+
+ The host is connected to a network, and
+ appears to be able to reach the full Internet.
+
+
+
+ Cryptography-related errors that can be returned from some nm-utils methods,
+and some #NMSetting8021x operations.
+
+ generic failure
+
+
+ the certificate or key data provided
+ was invalid
+
+
+ the password was invalid
+
+
+ the data uses an unknown cipher
+
+
+ decryption failed
+
+
+ encryption failed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Generates a list of short-ish unique presentation names for the
+devices in @devices.
+
+
+ the device names
+
+
+
+
+
+
+ an array of #NMDevice
+
+
+
+
+
+ length of @devices
+
+
+
+
+
+ Validates a given connection for a given #NMDevice object and returns
+whether the connection may be activated with the device. For example if
+@device is a Wi-Fi device that supports only WEP encryption, the connection
+will only be valid if it is a Wi-Fi connection which describes a WEP or open
+network, and will not be valid if it describes a WPA network, or if it is
+an Ethernet, Bluetooth, WWAN, etc connection that is incompatible with the
+device.
+
+This function does the same as nm_device_connection_valid(), i.e. checking
+compatibility of the given device and connection. But, in addition, it sets
+GError when FALSE is returned.
+
+
+ %TRUE if the connection may be activated with this device, %FALSE
+if is incompatible with the device's capabilities and characteristics.
+
+
+
+
+ an #NMDevice to validate @connection against
+
+
+
+ an #NMConnection to validate against @device
+
+
+
+
+
+ Validates a given connection for a given #NMDevice object and returns
+whether the connection may be activated with the device. For example if
+@device is a Wi-Fi device that supports only WEP encryption, the connection
+will only be valid if it is a Wi-Fi connection which describes a WEP or open
+network, and will not be valid if it describes a WPA network, or if it is
+an Ethernet, Bluetooth, WWAN, etc connection that is incompatible with the
+device.
+
+
+ %TRUE if the connection may be activated with this device, %FALSE
+if is incompatible with the device's capabilities and characteristics.
+
+
+
+
+ an #NMDevice to validate @connection against
+
+
+
+ an #NMConnection to validate against @device
+
+
+
+
+
+ Deletes the software device. Hardware devices can't be deleted.
+ Use nm_device_delete_async() or GDBusConnection.
+
+
+ %TRUE on success, %FALSE on error, in which case @error
+will be set.
+
+
+
+
+ a #NMDevice
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+
+
+ Asynchronously begins deleting the software device. Hardware devices can't
+be deleted.
+
+
+
+
+
+
+ a #NMDevice
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ callback to be called when delete operation completes
+
+
+
+ caller-specific data passed to @callback
+
+
+
+
+
+ Gets the result of a call to nm_device_delete_async().
+
+
+ %TRUE on success, %FALSE on error, in which case @error
+will be set.
+
+
+
+
+ a #NMDevice
+
+
+
+ the result passed to the #GAsyncReadyCallback
+
+
+
+
+
+ Disconnects the device if currently connected, and prevents the device from
+automatically connecting to networks until the next manual network connection
+request.
+ Use nm_device_disconnect_async() or GDBusConnection.
+
+
+ %TRUE on success, %FALSE on error, in which case @error will be set.
+
+
+
+
+ a #NMDevice
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+
+
+ Asynchronously begins disconnecting the device if currently connected, and
+prevents the device from automatically connecting to networks until the next
+manual network connection request.
+
+
+
+
+
+
+ a #NMDevice
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ callback to be called when the disconnect operation completes
+
+
+
+ caller-specific data passed to @callback
+
+
+
+
+
+ Gets the result of a call to nm_device_disconnect_async().
+
+
+ %TRUE on success, %FALSE on error, in which case @error
+will be set.
+
+
+
+
+ a #NMDevice
+
+
+
+ the result passed to the #GAsyncReadyCallback
+
+
+
+
+
+ Filters a given array of connections for a given #NMDevice object and returns
+connections which may be activated with the device. For example if @device
+is a Wi-Fi device that supports only WEP encryption, the returned array will
+contain any Wi-Fi connections in @connections that allow connection to
+unencrypted or WEP-enabled SSIDs. The returned array will not contain
+Ethernet, Bluetooth, Wi-Fi WPA connections, or any other connection that is
+incompatible with the device. To get the full list of connections see
+nm_client_get_connections().
+
+
+ an array of
+#NMConnections that could be activated with the given @device. The array
+should be freed with g_ptr_array_unref() when it is no longer required.
+
+WARNING: the transfer annotation for this function may not work correctly
+ with bindings. See https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues/305.
+ You can filter the list yourself with nm_device_connection_valid().
+
+
+
+
+
+
+ an #NMDevice to filter connections for
+
+
+
+ an array of #NMConnections to filter
+
+
+
+
+
+
+
+ Gets the #NMActiveConnection object which owns this device during activation.
+
+
+ the #NMActiveConnection or %NULL if the device is
+not part of an active connection
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ Fetch the currently applied connection on the device.
+ Use nm_device_get_applied_connection_async() or GDBusConnection.
+
+
+ a %NMConnection with the currently applied settings
+ or %NULL on error.
+
+The connection is as received from D-Bus and might not validate according
+to nm_connection_verify().
+
+
+
+
+ a #NMDevice
+
+
+
+ the flags argument. See #NMDeviceReapplyFlags.
+
+
+
+ returns the current version id of
+ the applied connection
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+
+
+ Asynchronously begins and gets the currently applied connection.
+
+
+
+
+
+
+ a #NMDevice
+
+
+
+ the flags argument. See #NMDeviceReapplyFlags.
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ callback to be called when the reapply operation completes
+
+
+
+ caller-specific data passed to @callback
+
+
+
+
+
+ Gets the result of a call to nm_device_get_applied_connection_async().
+
+
+ a currently applied %NMConnection or %NULL in case
+ of error.
+
+The connection is as received from D-Bus and might not validate according
+to nm_connection_verify().
+
+
+
+
+ a #NMDevice
+
+
+
+ the result passed to the #GAsyncReadyCallback
+
+
+
+ the current version id of the applied
+ connection.
+
+
+
+
+
+ Whether the #NMDevice can be autoconnected.
+
+
+ %TRUE if the device is allowed to be autoconnected
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ Gets the #NMRemoteConnections currently known to the daemon that could
+be activated on @device.
+
+
+ the #GPtrArray
+containing #NMRemoteConnections. This is the internal copy used by
+the connection, and must not be modified.
+
+
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ Gets the device' capabilities.
+
+
+ the capabilities
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ The connectivity state of the device for given address family.
+Supported address families are %AF_INET for IPv4, %AF_INET6
+for IPv6 or %AF_UNSPEC for any.
+
+
+ the current connectivity state
+
+
+
+
+ a #NMDevice
+
+
+
+ network address family
+
+
+
+
+
+ Gets a description of @device, based on its vendor and product names.
+
+
+ a description of @device. If either the vendor or the
+ product name is unknown, this returns the interface name.
+
+
+
+
+ an #NMDevice
+
+
+
+
+
+ Returns the numeric type of the #NMDevice, ie Ethernet, Wi-Fi, etc.
+
+
+ the device type
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ Gets the current IPv4 #NMDhcpConfig associated with the #NMDevice.
+
+You can alternatively use nm_active_connection_get_dhcp4_config(), which also
+works with VPN connections.
+
+
+ the IPv4 #NMDhcpConfig, or %NULL if the device is
+not activated or not using DHCP.
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ Gets the current IPv6 #NMDhcpConfig associated with the #NMDevice.
+
+You can alternatively use nm_active_connection_get_dhcp6_config(), which also
+works with VPN connections.
+
+
+ the IPv6 #NMDhcpConfig, or %NULL if the device is
+not activated or not using DHCPv6.
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ Gets the driver of the #NMDevice.
+
+
+ the driver of the device. This is the internal string used by the
+device, and must not be modified.
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ Gets the driver version of the #NMDevice.
+
+
+ the version of the device driver. This is the internal string used by the
+device, and must not be modified.
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ Indicates that firmware required for the device's operation is likely
+to be missing.
+
+
+ %TRUE if firmware required for the device's operation is likely
+to be missing.
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ Gets the firmware version of the #NMDevice.
+
+
+ the firmware version of the device. This is the internal string used by the
+device, and must not be modified.
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ Gets the current a hardware address (MAC) for the @device.
+
+
+ the current MAC of the device, or %NULL.
+This is the internal string used by the device, and must not be modified.
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ Gets the interface name of the #NMDevice.
+
+
+ the interface of the device. This is the internal string used by the
+device, and must not be modified.
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ Gets the interface flags of the device.
+
+
+ the flags
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ Gets the current IPv4 #NMIPConfig associated with the #NMDevice.
+
+You can alternatively use nm_active_connection_get_ip4_config(), which also
+works with VPN connections.
+
+
+ the IPv4 #NMIPConfig, or %NULL if the device is not
+activated.
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ Gets the current IPv6 #NMIPConfig associated with the #NMDevice.
+
+You can alternatively use nm_active_connection_get_ip6_config(), which also
+works with VPN connections.
+
+
+ the IPv6 #NMIPConfig or %NULL if the device is not activated.
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ Gets the IP interface name of the #NMDevice over which IP traffic flows
+when the device is in the ACTIVATED state.
+
+
+ the IP traffic interface of the device. This is the internal string
+used by the device, and must not be modified.
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ Gets the list of neighbors discovered through LLDP.
+
+
+ the #GPtrArray
+containing #NMLldpNeighbor<!-- -->s. This is the internal copy used by the
+device and must not be modified. The library never modifies the returned
+array and thus it is safe for callers to reference and keep using it.
+
+
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ Whether the #NMDevice is managed by NetworkManager.
+
+
+ %TRUE if the device is managed by NetworkManager
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ Gets the metered setting of a #NMDevice.
+
+
+ the metered setting.
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ Gets the MTU of the #NMDevice.
+
+
+ the MTU of the device in bytes.
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ Indicates that the NetworkManager plugin for the device is not installed.
+
+
+ %TRUE if the device plugin not installed.
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ Gets the path of the #NMDevice as exposed by the udev property ID_PATH.
+
+
+ the path of the device.
+
+The string is backslash escaped (C escaping) for invalid characters. The escaping
+can be reverted with g_strcompress(), however the result may not be valid UTF-8.
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ Gets the physical port ID of the #NMDevice. If non-%NULL, this is
+an opaque string that can be used to recognize when
+seemingly-unrelated #NMDevices are actually just different virtual
+ports on a single physical port. (Eg, NPAR / SR-IOV.)
+
+
+ the physical port ID of the device, or %NULL if the port
+ ID is unknown. This is the internal string used by the device and
+ must not be modified.
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ Gets the devices currently set as port of @device.
+
+
+ the #GPtrArray containing #NMDevices that
+are slaves of @device. This is the internal copy used by the device and
+must not be modified.
+
+
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ Gets the product string of the #NMDevice.
+
+
+ the product name of the device. This is the internal string used by the
+device, and must not be modified.
+
+The string is backslash escaped (C escaping) for invalid characters. The escaping
+can be reverted with g_strcompress(), however the result may not be valid UTF-8.
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ Gets the (primary) #NMSetting subtype associated with connections
+that can be used on @device.
+
+
+ @device's associated #NMSetting type
+
+
+
+
+ an #NMDevice
+
+
+
+
+
+ Gets the current #NMDevice state.
+
+
+ the current device state
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ Gets the reason for entering the current #NMDevice state.
+
+
+ the reason for entering the current device state
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ Gets a (non-localized) description of the type of device that
+@device is.
+
+
+ the type description of the device. This is the internal
+string used by the device, and must not be modified.
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ Gets the Unique Device Identifier of the #NMDevice.
+
+
+ the Unique Device Identifier of the device. This identifier may be
+used to gather more information about the device from various operating
+system services like udev or sysfs.
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ Gets the vendor string of the #NMDevice.
+
+
+ the vendor name of the device. This is the internal string used by the
+device, and must not be modified.
+
+The string is backslash escaped (C escaping) for invalid characters. The escaping
+can be reverted with g_strcompress(), however the result may not be valid UTF-8.
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+
+
+ %TRUE if the device exists, or %FALSE if it is a placeholder device
+that could be automatically created by NetworkManager if one of its
+#NMDevice:available-connections was activated.
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ Whether the device is a software device.
+
+
+ %TRUE if @device is a software device, %FALSE if it is a hardware device.
+
+
+
+
+ a #NMDevice
+
+
+
+
+
+ Attempts to update device with changes to the currently active connection
+made since it was last applied.
+ Use nm_device_reapply_async() or GDBusConnection.
+
+
+ %TRUE on success, %FALSE on error, in which case @error will be set.
+
+
+
+
+ a #NMDevice
+
+
+
+ the #NMConnection to replace the applied
+ settings with or %NULL to reuse existing
+
+
+
+ zero or the expected version id of the applied connection.
+ If specified and the version id mismatches, the call fails without
+ modification. This allows to catch concurrent accesses.
+
+
+
+ always set this to zero
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+
+
+ Asynchronously begins an attempt to update device with changes to the
+currently active connection made since it was last applied.
+
+
+
+
+
+
+ a #NMDevice
+
+
+
+ the #NMConnection to replace the applied
+ settings with or %NULL to reuse existing
+
+
+
+ zero or the expected version id of the applied
+ connection. If specified and the version id mismatches, the call
+ fails without modification. This allows to catch concurrent
+ accesses.
+
+
+
+ always set this to zero
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ callback to be called when the reapply operation completes
+
+
+
+ caller-specific data passed to @callback
+
+
+
+
+
+ Gets the result of a call to nm_device_reapply_async().
+
+
+ %TRUE on success, %FALSE on error, in which case @error
+will be set.
+
+
+
+
+ a #NMDevice
+
+
+
+ the result passed to the #GAsyncReadyCallback
+
+
+
+
+
+ Enables or disables automatic activation of the #NMDevice.
+ Use the async command nm_client_dbus_set_property() on
+nm_object_get_path(), %NM_DBUS_INTERFACE_DEVICE to set "Autoconnect" property to a "(b)" value.
+This function is deprecated because it calls a synchronous D-Bus method
+and modifies the content of the NMClient cache client side.
+
+
+
+
+
+
+ a #NMDevice
+
+
+
+ %TRUE to enable autoconnecting
+
+
+
+
+
+ Enables or disables management of #NMDevice by NetworkManager.
+ Use the async command nm_client_dbus_set_property() on
+nm_object_get_path(), interface %NM_DBUS_INTERFACE_DEVICE to set the
+"Managed" property to a "(b)" boolean value.
+This function is deprecated because it calls a synchronous D-Bus method
+and modifies the content of the NMClient cache client side. Also, it does
+not emit a property changed signal.
+
+
+
+
+
+
+ a #NMDevice
+
+
+
+ %TRUE to make the device managed by NetworkManager.
+
+
+
+
+
+ The #NMActiveConnection object that "owns" this device during activation.
+
+
+
+ Whether the device can auto-activate a connection.
+
+The property setter is a synchronous D-Bus call. This is deprecated since 1.22.
+
+
+
+ The available connections of the device
+
+
+
+
+
+ The capabilities of the device.
+
+
+
+ The numeric type of the device.
+
+
+
+ The IPv4 #NMDhcpConfig of the device.
+
+
+
+ The IPv6 #NMDhcpConfig of the device.
+
+
+
+ The driver of the device.
+
+
+
+ The version of the device driver.
+
+
+
+ When %TRUE indicates the device is likely missing firmware required
+for its operation.
+
+
+
+ The firmware version of the device.
+
+
+
+ The hardware address of the device.
+
+
+
+ The interface of the device.
+
+
+
+ The interface flags.
+
+
+
+ The IP interface of the device which should be used for all IP-related
+operations like addressing and routing.
+
+
+
+ The #NMIP4Config of the device.
+
+
+
+ The IPv4 connectivity state of the device.
+
+
+
+ The IPv6 #NMIPConfig of the device.
+
+
+
+ The IPv6 connectivity state of the device.
+
+
+
+ The LLDP neighbors.
+
+
+
+
+
+ Whether the device is managed by NetworkManager.
+
+
+
+ Whether the device is metered.
+
+
+
+ The MTU of the device.
+
+
+
+ When %TRUE indicates that the NetworkManager plugin for the device
+is not installed.
+
+
+
+ The device path as exposed by the udev property ID_PATH.
+
+The string is backslash escaped (C escaping) for invalid
+characters. The escaping can be reverted with g_strcompress(),
+however the result may not be valid UTF-8.
+
+
+
+ The physical port ID of the device. (See
+nm_device_get_physical_port_id().)
+
+
+
+ The port devices of the controller device. For devices that cannot be
+controllers this is likely to be always empty.
+
+
+
+
+
+ The product string of the device.
+
+
+
+ Whether the device is real or is a placeholder device that could
+be created automatically by NetworkManager if one of its
+#NMDevice:available-connections was activated.
+
+
+
+ The state of the device.
+
+
+
+ The reason for the device state.
+
+
+
+ An operating-system specific device hardware identifier; this is not
+unique to a specific hardware device across reboots or hotplugs. It
+is an opaque string which for some device types (Bluetooth, Modem)
+contains an identifier provided by the underlying hardware service daemon
+such as Bluez or ModemManager, and clients can use this property to
+request more information about the device from those services.
+
+
+
+ The vendor string of the device.
+
+
+
+ Notifies the state change of a #NMDevice.
+
+
+
+
+
+ the new state of the device
+
+
+
+ the previous state of the device
+
+
+
+ the reason describing the state change
+
+
+
+
+
+
+
+
+
+
+ the device's parent device
+
+
+
+
+ a #NMDevice6Lowpan
+
+
+
+
+
+ The devices's parent device.
+
+
+
+
+
+
+
+
+
+ Whether the device has carrier.
+
+
+ %TRUE if the device has carrier
+
+
+
+
+ a #NMDeviceAdsl
+
+
+
+
+
+ Whether the device has carrier.
+
+
+
+
+
+
+
+
+
+ Whether the device has carrier.
+
+
+ %TRUE if the device has carrier
+
+
+
+
+ a #NMDeviceBond
+
+
+
+
+
+ Gets the hardware (MAC) address of the #NMDeviceBond
+ Use nm_device_get_hw_address() instead.
+
+
+ the hardware address. This is the internal string used by the
+device, and must not be modified.
+
+
+
+
+ a #NMDeviceBond
+
+
+
+
+
+ Gets the devices currently enslaved to @device.
+ Use nm_device_get_ports() instead.
+
+
+ the #GPtrArray containing
+#NMDevices that are slaves of @device. This is the internal
+copy used by the device, and must not be modified.
+
+
+
+
+
+
+ a #NMDeviceBond
+
+
+
+
+
+ Whether the device has carrier.
+
+
+
+ The devices enslaved to the bond device.
+
+
+
+
+
+
+
+
+
+
+
+ Whether the device has carrier.
+
+
+ %TRUE if the device has carrier
+
+
+
+
+ a #NMDeviceBridge
+
+
+
+
+
+ Gets the hardware (MAC) address of the #NMDeviceBridge
+ Use nm_device_get_hw_address() instead.
+
+
+ the hardware address. This is the internal string used by the
+device, and must not be modified.
+
+
+
+
+ a #NMDeviceBridge
+
+
+
+
+
+ Gets the devices currently enslaved to @device.
+ Use nm_device_get_ports() instead.
+
+
+ the #GPtrArray containing
+#NMDevices that are slaves of @device. This is the internal
+copy used by the device, and must not be modified.
+
+
+
+
+
+
+ a #NMDeviceBridge
+
+
+
+
+
+ Whether the device has carrier.
+
+
+
+ The devices enslaved to the bridge device.
+
+
+
+
+
+
+
+
+
+
+
+ Returns the Bluetooth device's usable capabilities.
+
+
+ a combination of #NMBluetoothCapabilities
+
+
+
+
+ a #NMDeviceBt
+
+
+
+
+
+ Gets the hardware (MAC) address of the #NMDeviceBt
+ Use nm_device_get_hw_address() instead.
+
+
+ the hardware address. This is the internal string used by the
+device, and must not be modified.
+
+
+
+
+ a #NMDeviceBt
+
+
+
+
+
+ Gets the name of the #NMDeviceBt.
+
+
+ the name of the device
+
+
+
+
+ a #NMDeviceBt
+
+
+
+
+
+ The device's bluetooth capabilities, a combination of #NMBluetoothCapabilities.
+
+
+
+ The name of the bluetooth device.
+
+
+
+
+
+
+
+ General device capability flags.
+
+ device has no special capabilities
+
+
+ NetworkManager supports this device
+
+
+ this device can indicate carrier status
+
+
+ this device is a software device
+
+
+ this device supports single-root I/O virtualization
+
+
+
+
+
+
+
+
+ Gets the hardware (MAC) address of the #NMDeviceDummy
+ Use nm_device_get_hw_address() instead.
+
+
+ the hardware address. This is the internal string used by the
+device, and must not be modified.
+
+
+
+
+ a #NMDeviceDummy
+
+
+
+
+
+
+
+
+
+ Device-related errors.
+
+These errors may be returned directly from #NMDevice methods, or may be
+returned from D-Bus operations (where they correspond to errors in the
+"org.freedesktop.NetworkManager.Device" namespace).
+
+ unknown or unclassified error
+
+
+ NetworkManager failed to create the device
+
+
+ the specified connection is not valid
+
+
+ the specified connection is not
+ compatible with this device.
+
+
+ the device does not have an active connection
+
+
+ the requested operation is only valid on
+ software devices.
+
+
+ the requested operation is not allowed at
+ this time.
+
+
+ the "specific object" in the
+ activation request (eg, the #NMAccessPoint or #NMWimaxNsp) was not
+ found.
+
+
+ the version id did not match.
+
+
+ the requested operation could not
+ be completed due to missing dependencies.
+
+
+ invalid argument. Since: 1.16.
+
+
+
+
+
+
+
+
+
+
+ Whether the device has carrier.
+
+
+ %TRUE if the device has carrier
+
+
+
+
+ a #NMDeviceEthernet
+
+
+
+
+
+ Gets the active hardware (MAC) address of the #NMDeviceEthernet
+ Use nm_device_get_hw_address() instead.
+
+
+ the active hardware address. This is the internal string used by the
+device, and must not be modified.
+
+
+
+
+ a #NMDeviceEthernet
+
+
+
+
+
+ Gets the permanent hardware (MAC) address of the #NMDeviceEthernet
+
+
+ the permanent hardware address. This is the internal string used by the
+device, and must not be modified.
+
+
+
+
+ a #NMDeviceEthernet
+
+
+
+
+
+ Return the list of s390 subchannels if the device supports them.
+
+
+ array of strings, each specifying
+ one subchannel the s390 device uses to communicate to the host.
+
+
+
+
+
+
+ a #NMDeviceEthernet
+
+
+
+
+
+ Gets the speed of the #NMDeviceEthernet in Mbit/s.
+
+
+ the speed of the device in Mbit/s
+
+
+
+
+ a #NMDeviceEthernet
+
+
+
+
+
+ Whether the device has carrier.
+
+
+
+ The permanent hardware (MAC) address of the device.
+
+
+
+ Identifies subchannels of this network device used for
+communication with z/VM or s390 host.
+
+
+
+
+
+ The speed of the device.
+
+
+
+
+
+
+
+
+
+ Gets the hardware address of the #NMDeviceGeneric
+ Use nm_device_get_hw_address() instead.
+
+
+ the hardware address. This is the internal string used by the
+device, and must not be modified.
+
+
+
+
+ a #NMDeviceGeneric
+
+
+
+
+
+ A description of the specific type of device this is, or %NULL
+if not known.
+
+
+
+
+
+
+
+
+
+
+
+ the last byte of the supervision address
+
+
+
+
+ a #NMDeviceHsr
+
+
+
+
+
+
+
+ the device's port1 device
+
+
+
+
+ a #NMDeviceHsr
+
+
+
+
+
+
+
+ the device's port2 device
+
+
+
+
+ a #NMDeviceHsr
+
+
+
+
+
+
+
+ whether PRP protocol is used or not
+
+
+
+
+ a #NMDeviceHsr
+
+
+
+
+
+
+
+ the supervision MAC adddress
+
+
+
+
+ a #NMDeviceHsr
+
+
+
+
+
+ The device last byte of the supervision address.
+
+
+
+ The device's port1 device.
+
+
+
+ The device's port2 device.
+
+
+
+ Whether the PRP protocol is used or not.
+
+
+
+ The device supervision MAC adddress.
+
+
+
+
+
+
+
+
+
+
+
+ the maximum permitted encapsulation level
+
+
+
+
+ a #NMDeviceIPTunnel
+
+
+
+
+
+
+
+ the tunnel flags
+
+
+
+
+ a #NMDeviceIPTunnel
+
+
+
+
+
+
+
+ the flow label assigned to tunnel packets
+
+
+
+
+ a #NMDeviceIPTunnel
+
+
+
+
+
+
+
+ the fwmark assigned to tunnel packets. This property applies only
+to VTI tunnels.
+
+
+
+
+ a #NMDeviceIPTunnel
+
+
+
+
+
+
+
+ the key used for incoming packets
+
+
+
+
+ a #NMDeviceIPTunnel
+
+
+
+
+
+
+
+ the local endpoint of the tunnel
+
+
+
+
+ a #NMDeviceIPTunnel
+
+
+
+
+
+
+
+ the tunneling mode
+
+
+
+
+ a #NMDeviceIPTunnel
+
+
+
+
+
+
+
+ the key used for outgoing packets
+
+
+
+
+ a #NMDeviceIPTunnel
+
+
+
+
+
+
+
+ the device's parent device
+
+
+
+
+ a #NMDeviceIPTunnel
+
+
+
+
+
+
+
+ whether path MTU discovery is enabled
+
+
+
+
+ a #NMDeviceIPTunnel
+
+
+
+
+
+
+
+ the remote endpoint of the tunnel
+
+
+
+
+ a #NMDeviceIPTunnel
+
+
+
+
+
+
+
+ type of service (IPv4) or traffic class (IPv6) assigned
+to tunneled packets.
+
+
+
+
+ a #NMDeviceIPTunnel
+
+
+
+
+
+
+
+ the TTL assigned to tunneled packets
+
+
+
+
+ a #NMDeviceIPTunnel
+
+
+
+
+
+ How many additional levels of encapsulation are permitted to
+be prepended to packets. This property applies only to IPv6
+tunnels.
+
+
+
+ Tunnel flags.
+
+
+
+ The flow label to assign to tunnel packets. This property
+applies only to IPv6 tunnels.
+
+
+
+ The fwmark value to assign to tunnel packets. This property applies only
+to VTI tunnels.
+
+
+
+ The key used for tunneled input packets, if applicable.
+
+
+
+ The local endpoint of the tunnel.
+
+
+
+ The tunneling mode of the device.
+
+
+
+ The key used for tunneled output packets, if applicable.
+
+
+
+ The devices's parent device.
+
+
+
+ Whether path MTU discovery is enabled on this tunnel.
+
+
+
+ The remote endpoint of the tunnel.
+
+
+
+ The type of service (IPv4) or traffic class (IPv6) assigned to
+tunneled packets.
+
+
+
+ The TTL assigned to tunneled packets. 0 is a special value
+ meaning that packets inherit the TTL value
+
+
+
+
+
+
+
+
+
+ Whether the device has carrier.
+
+
+ %TRUE if the device has carrier
+
+
+
+
+ a #NMDeviceInfiniband
+
+
+
+
+
+ Gets the hardware (MAC) address of the #NMDeviceInfiniband
+ Use nm_device_get_hw_address() instead.
+
+
+ the hardware address. This is the internal string used by the
+device, and must not be modified.
+
+
+
+
+ a #NMDeviceInfiniband
+
+
+
+
+
+ Whether the device has carrier.
+
+
+
+
+
+
+
+ Flags for a network interface.
+
+ the interface is enabled from the
+ administrative point of view. Corresponds to kernel IFF_UP.
+
+
+ the physical link is up. Corresponds
+ to kernel IFF_LOWER_UP.
+
+
+ receive all packets. Corresponds to
+ kernel IFF_PROMISC. Since: 1.32.
+
+
+ the interface has carrier. In most
+ cases this is equal to the value of @NM_DEVICE_INTERFACE_FLAG_LOWER_UP.
+ However some devices have a non-standard carrier detection mechanism.
+
+
+ the flag to indicate device
+ LLDP status. Since: 1.32.
+
+
+
+
+
+
+
+
+
+
+
+ Gets the set of cryptographic algorithms in use
+
+
+ the set of cryptographic algorithms in use
+
+
+
+
+ a #NMDeviceMacsec
+
+
+
+
+
+ Gets the value of the Association Number (0..3) for the Security
+Association in use.
+
+
+ the current Security Association
+
+
+
+
+ a #NMDeviceMacsec
+
+
+
+
+
+ Gets whether encryption of transmitted frames is enabled
+
+
+ whether encryption is enabled
+
+
+
+
+ a #NMDeviceMacsec
+
+
+
+
+
+ Gets whether the ES (End station) bit is enabled in SecTAG for
+transmitted frames
+
+
+ whether the ES (End station) bit is enabled
+
+
+
+
+ a #NMDeviceMacsec
+
+
+
+
+
+ Gets the hardware (MAC) address of the #NMDeviceMacsec
+ Use nm_device_get_hw_address() instead.
+
+
+ the hardware address. This is the internal string used by the
+device, and must not be modified.
+
+
+
+
+ a #NMDeviceMacsec
+
+
+
+
+
+ Gets the length of ICV (Integrity Check Value)
+
+
+ the length of ICV
+
+
+
+
+ a #NMDeviceMacsec
+
+
+
+
+
+ Gets whether the SCI is always included in SecTAG for transmitted
+frames
+
+
+ whether the SCI is always included
+
+
+
+
+ a #NMDeviceMacsec
+
+
+
+
+
+
+
+ the device's parent device
+
+
+
+
+ a #NMDeviceMacsec
+
+
+
+
+
+ Gets whether protection of transmitted frames is enabled
+
+
+ whether protection is enabled
+
+
+
+
+ a #NMDeviceMacsec
+
+
+
+
+
+ Gets whether replay protection is enabled
+
+
+ whether replay protection is enabled
+
+
+
+
+ a #NMDeviceMacsec
+
+
+
+
+
+ Gets whether the SCB (Single Copy Broadcast) bit is enabled in
+SecTAG for transmitted frames
+
+
+ whether the SCB (Single Copy Broadcast) bit is enabled
+
+
+
+
+ a #NMDeviceMacsec
+
+
+
+
+
+ Gets the Secure Channel Identifier in use
+
+
+ the SCI
+
+
+
+
+ a #NMDeviceMacsec
+
+
+
+
+
+ Gets the validation mode for incoming packets (strict, check,
+disabled)
+
+
+ the validation mode
+
+
+
+
+ a #NMDeviceMacsec
+
+
+
+
+
+ Gets the size of the replay window
+
+
+ size of the replay window
+
+
+
+
+ a #NMDeviceMacsec
+
+
+
+
+
+ The set of cryptographic algorithms in use.
+
+
+
+ The value of the Association Number (0..3) for the Security
+Association in use.
+
+
+
+ Whether encryption of transmitted frames is enabled.
+
+
+
+ Whether the ES (End station) bit is enabled in SecTAG for
+transmitted frames.
+
+
+
+ The length of ICV (Integrity Check Value).
+
+
+
+ Whether the SCI is always included in SecTAG for transmitted
+frames.
+
+
+
+ The devices's parent device.
+
+
+
+ Whether protection of transmitted frames is enabled.
+
+
+
+ Whether replay protection is enabled.
+
+
+
+ Whether the SCB (Single Copy Broadcast) bit is enabled in
+SecTAG for transmitted frames.
+
+
+
+ The Secure Channel Identifier in use.
+
+
+
+ The validation mode for incoming packets (strict, check,
+disabled).
+
+
+
+ The size of the replay window.
+
+
+
+
+
+
+
+
+
+ Gets the hardware (MAC) address of the #NMDeviceMacvlan
+ Use nm_device_get_hw_address() instead.
+
+
+ the hardware address. This is the internal string used by the
+device, and must not be modified.
+
+This property is not implemented yet, and the function always return NULL.
+
+
+
+
+ a #NMDeviceMacvlan
+
+
+
+
+
+ Gets the MACVLAN mode of the device.
+
+
+ the MACVLAN mode. This is the internal string used by the
+device, and must not be modified.
+
+
+
+
+ a #NMDeviceMacvlan
+
+
+
+
+
+ Gets the no-promiscuous flag of the device.
+
+
+ the no-promiscuous flag of the device.
+
+
+
+
+ a #NMDeviceMacvlan
+
+
+
+
+
+
+
+ the device's parent device
+
+
+
+
+ a #NMDeviceMacvlan
+
+
+
+
+
+ Gets the device type (MACVLAN or MACVTAP).
+
+
+ %TRUE if the device is a MACVTAP, %FALSE if it is a MACVLAN.
+
+
+
+
+ a #NMDeviceMacvlan
+
+
+
+
+
+ The MACVLAN mode.
+
+
+
+ Whether the device has the no-promiscuos flag.
+
+
+
+ The devices's parent device.
+
+
+
+ Whether the device is a MACVTAP.
+
+
+
+
+
+
+
+
+
+ The access point name the modem is connected to.
+
+
+ the APN name or %NULL if disconnected
+
+
+
+
+ a #NMDeviceModem
+
+
+
+
+
+ Returns a bitfield of the generic access technology families the modem
+supports without a firmware reload or reinitialization. This value
+represents the network types the modem can immediately connect to.
+
+
+ the generic access technology families the modem supports without
+a firmware reload or other reinitialization
+
+
+
+
+ a #NMDeviceModem
+
+
+
+
+
+ An identifier used by the modem backend (ModemManager) that aims to
+uniquely identify the a device. Can be used to match a connection to a
+particular device.
+
+
+ a device-id string
+
+
+
+
+ a #NMDeviceModem
+
+
+
+
+
+ Returns a bitfield of the generic access technology families the modem
+supports. Not all capabilities are available concurrently however; some
+may require a firmware reload or reinitialization.
+
+
+ the generic access technology families the modem supports
+
+
+
+
+ a #NMDeviceModem
+
+
+
+
+
+ The MCC and MNC (concatenated) of the network the modem is connected to.
+
+
+ the operator code or %NULL if disconnected or not a 3GPP modem.
+
+
+
+
+ a #NMDeviceModem
+
+
+
+
+
+
+
+
+ The generic family of access technologies the modem currently supports
+without a firmware reload or reinitialization.
+
+
+
+
+
+
+ The generic family of access technologies the modem supports. Not all
+capabilities are available at the same time however; some modems require
+a firmware reload or other reinitialization to switch between eg
+CDMA/EVDO and GSM/UMTS.
+
+
+
+
+
+
+
+ #NMDeviceModemCapabilities values indicate the generic radio access
+technology families a modem device supports. For more information on the
+specific access technologies the device supports use the ModemManager D-Bus
+API.
+
+ modem has no usable capabilities
+
+
+ modem uses the analog wired telephone
+network and is not a wireless/cellular device
+
+
+ modem supports at least one of CDMA
+1xRTT, EVDO revision 0, EVDO revision A, or EVDO revision B
+
+
+ modem supports at least one of GSM,
+GPRS, EDGE, UMTS, HSDPA, HSUPA, or HSPA+ packet switched data capability
+
+
+ modem has LTE data capability
+
+
+ modem has 5GNR data capability. Since: 1.36.
+
+
+
+
+
+
+
+
+ Returns the active channel of the #NMDeviceOlpcMesh device.
+
+
+ active channel of the device
+
+
+
+
+ a #NMDeviceOlpcMesh
+
+
+
+
+
+ Gets the companion device of the #NMDeviceOlpcMesh.
+
+
+ the companion of the device of %NULL
+
+
+
+
+ a #NMDeviceOlpcMesh
+
+
+
+
+
+ Gets the hardware (MAC) address of the #NMDeviceOlpcMesh
+ Use nm_device_get_hw_address() instead.
+
+
+ the hardware address. This is the internal string used by the
+device, and must not be modified.
+
+
+
+
+ a #NMDeviceOlpcMesh
+
+
+
+
+
+ The device's active channel.
+
+
+
+ The companion device.
+
+
+
+
+
+
+
+
+
+ Gets the ports currently enslaved to @device.
+ Use nm_device_get_ports() instead.
+
+
+ the #GPtrArray containing
+#NMDevices that are slaves of @device. This is the internal
+copy used by the device, and must not be modified.
+
+
+
+
+
+
+ a #NMDeviceOvsBridge
+
+
+
+
+
+ Gets the ports currently enslaved to the device.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the interfaces currently enslaved to @device.
+ Use nm_device_get_ports() instead.
+
+
+ the #GPtrArray containing
+#NMDevices that are slaves of @device. This is the internal
+copy used by the device, and must not be modified.
+
+
+
+
+
+
+ a #NMDeviceOvsPort
+
+
+
+
+
+ Gets the interfaces currently enslaved to the device.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Flags for the Reapply() D-Bus call of a device and
+nm_device_reapply_async().
+
+ no flag set.
+
+
+ during reapply,
+ preserve external IP addresses and routes.
+
+
+
+
+ the device's state is unknown
+
+
+ the device is recognized, but not managed by
+ NetworkManager
+
+
+ the device is managed by NetworkManager, but
+ is not available for use. Reasons may include the wireless switched off,
+ missing firmware, no ethernet carrier, missing supplicant or modem manager,
+ etc.
+
+
+ the device can be activated, but is currently
+ idle and not connected to a network.
+
+
+ the device is preparing the connection to the
+ network. This may include operations like changing the MAC address,
+ setting physical link properties, and anything else required to connect
+ to the requested network.
+
+
+ the device is connecting to the requested network.
+ This may include operations like associating with the Wi-Fi AP, dialing
+ the modem, connecting to the remote Bluetooth device, etc.
+
+
+ the device requires more information to continue
+ connecting to the requested network. This includes secrets like WiFi
+ passphrases, login passwords, PIN codes, etc.
+
+
+ the device is requesting IPv4 and/or IPv6
+ addresses and routing information from the network.
+
+
+ the device is checking whether further action is
+ required for the requested network connection. This may include checking
+ whether only local network access is available, whether a captive portal
+ is blocking access to the Internet, etc.
+
+
+ the device is waiting for a secondary
+ connection (like a VPN) which must activated before the device can be
+ activated
+
+
+ the device has a network connection, either local
+ or global.
+
+
+ a disconnection from the current network
+ connection was requested, and the device is cleaning up resources used for
+ that connection. The network connection may still be valid.
+
+
+ the device failed to connect to the requested
+ network and is cleaning up the connection request
+
+
+
+ Device state change reason codes
+
+ No reason given
+
+
+ Unknown error
+
+
+ Device is now managed
+
+
+ Device is now unmanaged
+
+
+ The device could not be readied for configuration
+
+
+ IP configuration could not be reserved (no available address, timeout, etc)
+
+
+ The IP config is no longer valid
+
+
+ Secrets were required, but not provided
+
+
+ 802.1x supplicant disconnected
+
+
+ 802.1x supplicant configuration failed
+
+
+ 802.1x supplicant failed
+
+
+ 802.1x supplicant took too long to authenticate
+
+
+ PPP service failed to start
+
+
+ PPP service disconnected
+
+
+ PPP failed
+
+
+ DHCP client failed to start
+
+
+ DHCP client error
+
+
+ DHCP client failed
+
+
+ Shared connection service failed to start
+
+
+ Shared connection service failed
+
+
+ AutoIP service failed to start
+
+
+ AutoIP service error
+
+
+ AutoIP service failed
+
+
+ The line is busy
+
+
+ No dial tone
+
+
+ No carrier could be established
+
+
+ The dialing request timed out
+
+
+ The dialing attempt failed
+
+
+ Modem initialization failed
+
+
+ Failed to select the specified APN
+
+
+ Not searching for networks
+
+
+ Network registration denied
+
+
+ Network registration timed out
+
+
+ Failed to register with the requested network
+
+
+ PIN check failed
+
+
+ Necessary firmware for the device may be missing
+
+
+ The device was removed
+
+
+ NetworkManager went to sleep
+
+
+ The device's active connection disappeared
+
+
+ Device disconnected by user or client
+
+
+ Carrier/link changed
+
+
+ The device's existing connection was assumed
+
+
+ The supplicant is now available
+
+
+ The modem could not be found
+
+
+ The Bluetooth connection failed or timed out
+
+
+ GSM Modem's SIM Card not inserted
+
+
+ GSM Modem's SIM Pin required
+
+
+ GSM Modem's SIM Puk required
+
+
+ GSM Modem's SIM wrong
+
+
+ InfiniBand device does not support connected mode
+
+
+ A dependency of the connection failed
+
+
+ Problem with the RFC 2684 Ethernet over ADSL bridge
+
+
+ ModemManager not running
+
+
+ The Wi-Fi network could not be found
+
+
+ A secondary connection of the base connection failed
+
+
+ DCB or FCoE setup failed
+
+
+ teamd control failed
+
+
+ Modem failed or no longer available
+
+
+ Modem now ready and available
+
+
+ SIM PIN was incorrect
+
+
+ New connection activation was enqueued
+
+
+ the device's parent changed
+
+
+ the device parent's management changed
+
+
+ problem communicating with Open vSwitch database
+
+
+ a duplicate IP address was detected
+
+
+ The selected IP method is not supported
+
+
+ configuration of SR-IOV parameters failed
+
+
+ The Wi-Fi P2P peer could not be found
+
+
+ The device handler dispatcher returned an
+ error. Since: 1.46
+
+
+
+
+
+ Whether the device has carrier.
+
+
+ %TRUE if the device has carrier
+
+
+
+
+ a #NMDeviceTeam
+
+
+
+
+
+ Gets the current JSON configuration of the #NMDeviceTeam
+
+
+ the current configuration. This is the internal string used by the
+device, and must not be modified.
+
+
+
+
+ a #NMDeviceTeam
+
+
+
+
+
+ Gets the hardware (MAC) address of the #NMDeviceTeam
+ Use nm_device_get_hw_address() instead.
+
+
+ the hardware address. This is the internal string used by the
+device, and must not be modified.
+
+
+
+
+ a #NMDeviceTeam
+
+
+
+
+
+ Gets the devices currently enslaved to @device.
+ Use nm_device_get_ports() instead.
+
+
+ the #GPtrArray containing
+#NMDevices that are slaves of @device. This is the internal
+copy used by the device, and must not be modified.
+
+
+
+
+
+
+ a #NMDeviceTeam
+
+
+
+
+
+ Whether the device has carrier.
+
+
+
+ The current JSON configuration of the device.
+
+
+
+ The devices enslaved to the team device.
+
+
+
+
+
+
+
+
+
+
+
+ Gets the tunnel group.
+
+
+ the gid of the tunnel group, or -1 if it has no owner.
+
+
+
+
+ a #NMDeviceTun
+
+
+
+
+
+ Gets the hardware (MAC) address of the #NMDeviceTun
+ Use nm_device_get_hw_address() instead.
+
+
+ the hardware address. This is the internal string used by the
+device, and must not be modified.
+
+
+
+
+ a #NMDeviceTun
+
+
+
+
+
+ Returns the TUN/TAP mode for the device.
+
+
+ 'tun' or 'tap'
+
+
+
+
+ a #NMDeviceTun
+
+
+
+
+
+ Returns whether the #NMDeviceTun has the IFF_MULTI_QUEUE flag.
+
+
+ %TRUE if the device doesn't have the flag, %FALSE otherwise
+
+
+
+
+ a #NMDeviceTun
+
+
+
+
+
+ Returns whether the #NMDeviceTun has the IFF_NO_PI flag.
+
+
+ %TRUE if the device has the flag, %FALSE otherwise
+
+
+
+
+ a #NMDeviceTun
+
+
+
+
+
+ Gets the tunnel owner.
+
+
+ the uid of the tunnel owner, or -1 if it has no owner.
+
+
+
+
+ a #NMDeviceTun
+
+
+
+
+
+ Returns whether the #NMDeviceTun has the IFF_VNET_HDR flag.
+
+
+ %TRUE if the device has the flag, %FALSE otherwise
+
+
+
+
+ a #NMDeviceTun
+
+
+
+
+
+ The gid of the tunnel group, or -1 if it has no owner.
+
+
+
+ The tunnel mode, either "tun" or "tap".
+
+
+
+ The tunnel's "TUN_TAP_MQ" flag; true if callers can connect to
+the tap device multiple times, for multiple send/receive
+queues.
+
+
+
+ The tunnel's "TUN_NO_PI" flag; true if no protocol info is
+prepended to the tunnel packets.
+
+
+
+ The uid of the tunnel owner, or -1 if it has no owner.
+
+
+
+ The tunnel's "TUN_VNET_HDR" flag; true if the tunnel packets
+include a virtio network header.
+
+
+
+
+
+
+
+ #NMDeviceType values indicate the type of hardware represented by a
+device object.
+
+ unknown device
+
+
+ a wired ethernet device
+
+
+ an 802.11 Wi-Fi device
+
+
+ not used
+
+
+ not used
+
+
+ a Bluetooth device supporting PAN or DUN access protocols
+
+
+ an OLPC XO mesh networking device
+
+
+ an 802.16e Mobile WiMAX broadband device
+
+
+ a modem supporting analog telephone, CDMA/EVDO,
+GSM/UMTS, or LTE network access protocols
+
+
+ an IP-over-InfiniBand device
+
+
+ a bond master interface
+
+
+ an 802.1Q VLAN interface
+
+
+ ADSL modem
+
+
+ a bridge master interface
+
+
+ generic support for unrecognized device types
+
+
+ a team master interface
+
+
+ a TUN or TAP interface
+
+
+ a IP tunnel interface
+
+
+ a MACVLAN interface
+
+
+ a VXLAN interface
+
+
+ a VETH interface
+
+
+ a MACsec interface
+
+
+ a dummy interface
+
+
+ a PPP interface
+
+
+ a Open vSwitch interface
+
+
+ a Open vSwitch port
+
+
+ a Open vSwitch bridge
+
+
+ a IEEE 802.15.4 (WPAN) MAC Layer Device
+
+
+ 6LoWPAN interface
+
+
+ a WireGuard interface
+
+
+ an 802.11 Wi-Fi P2P device. Since: 1.16.
+
+
+ A VRF (Virtual Routing and Forwarding) interface. Since: 1.24.
+
+
+ a loopback interface. Since: 1.42.
+
+
+ A HSR/PRP device. Since: 1.46.
+
+
+
+
+
+
+
+ the device's peer device
+
+
+
+
+ a #NMDeviceVeth
+
+
+
+
+
+ The device's peer device.
+
+
+
+
+
+
+
+
+
+ Whether the device has carrier.
+
+
+ %TRUE if the device has carrier
+
+
+
+
+ a #NMDeviceVlan
+
+
+
+
+
+ Gets the hardware (MAC) address of the #NMDeviceVlan
+ Use nm_device_get_hw_address() instead.
+
+
+ the hardware address. This is the internal string used by the
+device, and must not be modified.
+
+
+
+
+ a #NMDeviceVlan
+
+
+
+
+
+
+
+ the device's parent device
+
+
+
+
+ a #NMDeviceVlan
+
+
+
+
+
+
+
+ the device's VLAN ID
+
+
+
+
+ a #NMDeviceVlan
+
+
+
+
+
+ Whether the device has carrier.
+
+
+
+ The devices's parent device.
+
+
+
+ The device's VLAN ID.
+
+
+
+
+
+
+
+
+
+
+
+ the device's VRF routing table.
+
+
+
+
+ a #NMDeviceVrf
+
+
+
+
+
+ The device's VRF table.
+
+
+
+
+
+
+
+
+
+
+
+ the lifetime in seconds of FDB entries learnt by the kernel
+
+
+
+
+ a #NMDeviceVxlan
+
+
+
+
+
+ Whether the device has carrier.
+
+
+ %TRUE if the device has carrier.
+
+This property is not implemented yet, and the function always returns
+FALSE.
+
+
+
+
+ a #NMDeviceVxlan
+
+
+
+
+
+
+
+ the UDP destination port
+
+
+
+
+ a #NMDeviceVxlan
+
+
+
+
+
+
+
+ The unicast destination IP address or the multicast
+IP address joined
+
+
+
+
+ a #NMDeviceVxlan
+
+
+
+
+
+ Gets the hardware (MAC) address of the #NMDeviceVxlan
+ Use nm_device_get_hw_address() instead.
+
+
+ the hardware address. This is the internal string used by the
+device, and must not be modified.
+
+
+
+
+ a #NMDeviceVxlan
+
+
+
+
+
+
+
+ the device's VXLAN ID.
+
+
+
+
+ a #NMDeviceVxlan
+
+
+
+
+
+
+
+ whether netlink LL ADDR miss notifications are generated
+
+
+
+
+ a #NMDeviceVxlan
+
+
+
+
+
+
+
+ whether netlink IP ADDR miss notifications are generated
+
+
+
+
+ a #NMDeviceVxlan
+
+
+
+
+
+
+
+ whether address learning is enabled
+
+
+
+
+ a #NMDeviceVxlan
+
+
+
+
+
+
+
+ the maximum number of entries that can be added to the
+forwarding table
+
+
+
+
+ a #NMDeviceVxlan
+
+
+
+
+
+
+
+ the source IP address to use in outgoing packets
+
+
+
+
+ a #NMDeviceVxlan
+
+
+
+
+
+
+
+ the device's parent device
+
+
+
+
+ a #NMDeviceVxlan
+
+
+
+
+
+
+
+ whether ARP proxy is turned on
+
+
+
+
+ a #NMDeviceVxlan
+
+
+
+
+
+
+
+ whether route short circuit is turned on
+
+
+
+
+ a #NMDeviceVxlan
+
+
+
+
+
+
+
+ the maximum UDP source port
+
+
+
+
+ a #NMDeviceVxlan
+
+
+
+
+
+
+
+ the minimum UDP source port
+
+
+
+
+ a #NMDeviceVxlan
+
+
+
+
+
+
+
+ the TOS value to use in outgoing packets
+
+
+
+
+ a #NMDeviceVxlan
+
+
+
+
+
+
+
+ the time-to-live value to use in outgoing packets
+
+
+
+
+ a #NMDeviceVxlan
+
+
+
+
+
+ The lifetime in seconds of FDB entries learnt by the kernel.
+
+
+
+ Whether the device has carrier.
+
+This property is not implemented yet, and the property is always FALSE.
+
+
+
+ The UDP destination port used to communicate with the remote VXLAN tunnel
+endpoint.
+
+
+
+ The unicast destination IP address used in outgoing packets when the
+destination link layer address is not known in the VXLAN device
+forwarding database or the multicast IP address joined.
+
+
+
+ The device's VXLAN ID.
+
+
+
+ Whether netlink LL ADDR miss notifications are generated.
+
+
+
+ Whether netlink IP ADDR miss notifications are generated.
+
+
+
+ Whether unknown source link layer addresses and IP addresses are entered
+into the VXLAN device forwarding database.
+
+
+
+ The maximum number of entries that can be added to the forwarding table.
+
+
+
+ The source IP address to use in outgoing packets.
+
+
+
+ The devices's parent device.
+
+
+
+ Whether ARP proxy is turned on.
+
+
+
+ Whether route short circuit is turned on.
+
+
+
+ The maximum UDP source port used to communicate with the remote VXLAN
+tunnel endpoint.
+
+
+
+ The minimum UDP source port used to communicate with the remote VXLAN
+tunnel endpoint.
+
+
+
+ The TOS value to use in outgoing packets.
+
+
+
+ The time-to-live value to use in outgoing packets.
+
+
+
+
+
+
+
+
+
+ Gets a #NMAccessPoint by path.
+
+
+ the access point or %NULL if none is found.
+
+
+
+
+ a #NMDeviceWifi
+
+
+
+ the object path of the access point
+
+
+
+
+
+ Gets all the scanned access points of the #NMDeviceWifi.
+
+
+ a #GPtrArray containing all the
+scanned #NMAccessPoints.
+The returned array is owned by the client and should not be modified.
+
+
+
+
+
+
+ a #NMDeviceWifi
+
+
+
+
+
+ Gets the active #NMAccessPoint.
+
+
+ the access point or %NULL if none is active
+
+
+
+
+ a #NMDeviceWifi
+
+
+
+
+
+ Gets the bit rate of the #NMDeviceWifi in kbit/s.
+
+
+ the bit rate (kbit/s)
+
+
+
+
+ a #NMDeviceWifi
+
+
+
+
+
+ Gets the Wi-Fi capabilities of the #NMDeviceWifi.
+
+
+ the capabilities
+
+
+
+
+ a #NMDeviceWifi
+
+
+
+
+
+ Gets the actual hardware (MAC) address of the #NMDeviceWifi
+ Use nm_device_get_hw_address() instead.
+
+
+ the actual hardware address. This is the internal string used by the
+device, and must not be modified.
+
+
+
+
+ a #NMDeviceWifi
+
+
+
+
+
+ Returns the timestamp (in CLOCK_BOOTTIME milliseconds) for the last finished
+network scan. A value of -1 means the device never scanned for access points.
+
+Use nm_utils_get_timestamp_msec() to obtain current time value suitable for
+comparing to this value.
+
+
+ the last scan time in milliseconds (in clock_gettime(CLOCK_BOOTTIME) scale).
+
+
+
+
+ a #NMDeviceWifi
+
+
+
+
+
+ Gets the #NMDeviceWifi mode.
+
+
+ the mode
+
+
+
+
+ a #NMDeviceWifi
+
+
+
+
+
+ Gets the permanent hardware (MAC) address of the #NMDeviceWifi
+
+
+ the permanent hardware address. This is the internal string used by the
+device, and must not be modified.
+
+
+
+
+ a #NMDeviceWifi
+
+
+
+
+
+ Request NM to scan for access points on @device. Note that the function
+returns immediately after requesting the scan, and it may take some time
+after that for the scan to complete.
+ Use nm_device_wifi_request_scan_async() or GDBusConnection.
+
+
+ %TRUE on success, %FALSE on error, in which case @error will be
+set.
+
+
+
+
+ a #NMDeviceWifi
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+
+
+ Request NM to scan for access points on @device. Note that @callback will be
+called immediately after requesting the scan, and it may take some time after
+that for the scan to complete.
+
+
+
+
+
+
+ a #NMDeviceWifi
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ callback to be called when the scan has been requested
+
+
+
+ caller-specific data passed to @callback
+
+
+
+
+
+ Gets the result of a call to nm_device_wifi_request_scan_async() and
+nm_device_wifi_request_scan_options_async().
+
+
+ %TRUE on success, %FALSE on error, in which case @error will be
+set.
+
+
+
+
+ a #NMDeviceWifi
+
+
+
+ the result passed to the #GAsyncReadyCallback
+
+
+
+
+
+ Request NM to scan for access points on @device. Note that the function
+returns immediately after requesting the scan, and it may take some time
+after that for the scan to complete.
+This is the same as @nm_device_wifi_request_scan except it accepts @options
+for the scanning. The argument is the dictionary passed to RequestScan()
+D-Bus call. Valid options inside the dictionary are:
+'ssids' => array of SSIDs (saay)
+ Use nm_device_wifi_request_scan_options_async() or GDBusConnection.
+
+
+ %TRUE on success, %FALSE on error, in which case @error will be
+set.
+
+
+
+
+ a #NMDeviceWifi
+
+
+
+ dictionary with options for RequestScan(), or %NULL
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+
+
+ Request NM to scan for access points on @device. Note that @callback will be
+called immediately after requesting the scan, and it may take some time after
+that for the scan to complete.
+This is the same as @nm_device_wifi_request_scan_async except it accepts @options
+for the scanning. The argument is the dictionary passed to RequestScan()
+D-Bus call. Valid options inside the dictionary are:
+'ssids' => array of SSIDs (saay)
+
+To complete the request call nm_device_wifi_request_scan_finish().
+
+
+
+
+
+
+ a #NMDeviceWifi
+
+
+
+ dictionary with options for RequestScan(), or %NULL
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ callback to be called when the scan has been requested
+
+
+
+ caller-specific data passed to @callback
+
+
+
+
+
+ List of all Wi-Fi access points the device can see.
+
+
+
+
+
+ The active #NMAccessPoint of the device.
+
+
+
+ The bit rate of the device in kbit/s.
+
+
+
+ The timestamp (in CLOCK_BOOTTIME seconds) for the last finished
+network scan. A value of -1 means the device never scanned for
+access points.
+
+
+
+ The mode of the device.
+
+
+
+ The hardware (MAC) address of the device.
+
+
+
+ The wireless capabilities of the device.
+
+
+
+ Notifies that a #NMAccessPoint is added to the Wi-Fi device.
+
+
+
+
+
+ the new access point
+
+
+
+
+
+ Notifies that a #NMAccessPoint is removed from the Wi-Fi device.
+
+
+
+
+
+ the removed access point
+
+
+
+
+
+
+ 802.11 specific device encryption and authentication capabilities.
+
+ device has no encryption/authentication capabilities
+
+
+ device supports 40/64-bit WEP encryption
+
+
+ device supports 104/128-bit WEP encryption
+
+
+ device supports TKIP encryption
+
+
+ device supports AES/CCMP encryption
+
+
+ device supports WPA1 authentication
+
+
+ device supports WPA2/RSN authentication
+
+
+ device supports Access Point mode
+
+
+ device supports Ad-Hoc mode
+
+
+ device reports frequency capabilities
+
+
+ device supports 2.4GHz frequencies
+
+
+ device supports 5GHz frequencies
+
+
+ device supports 6GHz frequencies. Since: 1.46.
+
+
+ device supports acting as a mesh point. Since: 1.20.
+
+
+ device supports WPA2/RSN in an IBSS network. Since: 1.22.
+
+
+
+
+
+
+
+
+ Gets the actual hardware (MAC) address of the #NMDeviceWifiP2P
+ Use nm_device_get_hw_address() instead.
+
+
+ the actual hardware address. This is the internal string used by the
+device, and must not be modified.
+
+
+
+
+ a #NMDeviceWifiP2P
+
+
+
+
+
+ Gets a #NMWifiP2PPeer by path.
+
+
+ the peer or %NULL if none is found.
+
+
+
+
+ a #NMDeviceWifiP2P
+
+
+
+ the object path of the peer
+
+
+
+
+
+ Gets all the found peers of the #NMDeviceWifiP2P.
+
+
+ a #GPtrArray containing all the
+ found #NMWifiP2PPeers.
+The returned array is owned by the client and should not be modified.
+
+
+
+
+
+
+ a #NMDeviceWifiP2P
+
+
+
+
+
+ Request NM to search for Wi-Fi P2P peers on @device. Note that the call
+returns immediately after requesting the find, and it may take some time
+after that for peers to be found.
+
+The find operation will run for 30s by default. You can stop it earlier
+using nm_device_p2p_wifi_stop_find().
+
+
+
+
+
+
+ a #NMDeviceWifiP2P
+
+
+
+ optional options passed to StartFind.
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ a #GAsyncReadyCallback, or %NULL
+
+
+
+ user_data for @callback
+
+
+
+
+
+ Finish an operation started by nm_device_wifi_p2p_start_find().
+
+
+ %TRUE if the call was successful
+
+
+
+
+ a #NMDeviceWifiP2P
+
+
+
+ the #GAsyncResult
+
+
+
+
+
+ Request NM to stop any ongoing find operation for Wi-Fi P2P peers on @device.
+
+
+
+
+
+
+ a #NMDeviceWifiP2P
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ a #GAsyncReadyCallback, or %NULL
+
+
+
+ user_data for @callback
+
+
+
+
+
+ Finish an operation started by nm_device_wifi_p2p_stop_find().
+
+
+ %TRUE if the call was successful
+
+
+
+
+ a #NMDeviceWifiP2P
+
+
+
+ the #GAsyncResult
+
+
+
+
+
+ List of all Wi-Fi P2P peers the device can see.
+
+
+
+
+
+ Notifies that a #NMWifiP2PPeer is added to the Wi-Fi P2P device.
+
+
+
+
+
+ the new access point
+
+
+
+
+
+ Notifies that a #NMWifiP2PPeer is removed from the Wi-Fi P2P device.
+
+
+
+
+
+ the removed access point
+
+
+
+
+
+
+
+
+
+ WiMAX is no longer supported by NetworkManager since 1.2.0.
+
+
+ Gets the active #NMWimaxNsp.
+ WiMAX is no longer supported.
+
+
+ the access point or %NULL if none is active
+
+
+
+
+ a #NMDeviceWimax
+
+
+
+
+
+ Gets the ID of the serving Base Station when the device is connected.
+ WiMAX is no longer supported.
+
+
+ the ID of the serving Base Station, or %NULL
+
+
+
+
+ a #NMDeviceWimax
+
+
+
+
+
+ Gets the center frequency (in KHz) of the radio channel the device is using
+to communicate with the network when connected. Has no meaning when the
+device is not connected.
+ WiMAX is no longer supported.
+
+
+ the center frequency in KHz, or 0
+
+
+
+
+ a #NMDeviceWimax
+
+
+
+
+
+ Gets the CINR (Carrier to Interference + Noise Ratio) of the current radio
+link in dB. CINR is a more accurate measure of radio link quality. Has no
+meaning when the device is not connected.
+ WiMAX is no longer supported.
+
+
+ the CINR in dB, or 0
+
+
+
+
+ a #NMDeviceWimax
+
+
+
+
+
+ Gets the hardware (MAC) address of the #NMDeviceWimax
+ WiMAX is no longer supported.
+
+
+ the hardware address. This is the internal string used by the
+ device, and must not be modified.
+
+
+
+
+ a #NMDeviceWimax
+
+
+
+
+
+ Gets a #NMWimaxNsp by path.
+ WiMAX is no longer supported.
+
+
+ the access point or %NULL if none is found.
+
+
+
+
+ a #NMDeviceWimax
+
+
+
+ the object path of the NSP
+
+
+
+
+
+ Gets all the scanned NSPs of the #NMDeviceWimax.
+ WiMAX is no longer supported.
+
+
+ a #GPtrArray containing
+ all the scanned #NMWimaxNsps.
+The returned array is owned by the client and should not be modified.
+
+
+
+
+
+
+ a #NMDeviceWimax
+
+
+
+
+
+ Gets the RSSI of the current radio link in dBm. This value indicates how
+strong the raw received RF signal from the base station is, but does not
+indicate the overall quality of the radio link. Has no meaning when the
+device is not connected.
+ WiMAX is no longer supported.
+
+
+ the RSSI in dBm, or 0
+
+
+
+
+ a #NMDeviceWimax
+
+
+
+
+
+ Average power of the last burst transmitted by the device, in units of
+0.5 dBm. i.e. a TxPower of -11 represents an actual device TX power of
+-5.5 dBm. Has no meaning when the device is not connected.
+ WiMAX is no longer supported.
+
+
+ the TX power in dBm, or 0
+
+
+
+
+ a #NMDeviceWimax
+
+
+
+
+
+ The active #NMWimaxNsp of the device.
+ WiMAX is no longer supported.
+
+
+
+ The ID of the serving base station as received from the network. Has
+no meaning when the device is not connected.
+ WiMAX is no longer supported.
+
+
+
+ The center frequency (in KHz) of the radio channel the device is using to
+communicate with the network when connected. Has no meaning when the
+device is not connected.
+ WiMAX is no longer supported.
+
+
+
+ CINR (Carrier to Interference + Noise Ratio) of the current radio link
+in dB. CINR is a more accurate measure of radio link quality. Has no
+meaning when the device is not connected.
+ WiMAX is no longer supported.
+
+
+
+ The hardware (MAC) address of the device.
+ WiMAX is no longer supported.
+
+
+
+ List of all WiMAX Network Service Providers the device can see.
+
+
+
+
+
+ RSSI of the current radio link in dBm. This value indicates how strong
+the raw received RF signal from the base station is, but does not
+indicate the overall quality of the radio link. Has no meaning when the
+device is not connected.
+ WiMAX is no longer supported.
+
+
+
+ Average power of the last burst transmitted by the device, in units of
+0.5 dBm. i.e. a TxPower of -11 represents an actual device TX power of
+-5.5 dBm. Has no meaning when the device is not connected.
+ WiMAX is no longer supported.
+
+
+
+ Notifies that a #NMWimaxNsp is added to the wimax device.
+ WiMAX is no longer supported.
+
+
+
+
+
+ the new NSP
+
+
+
+
+
+ Notifies that a #NMWimaxNsp is removed from the wimax device.
+ WiMAX is no longer supported.
+
+
+
+
+
+ the removed NSP
+
+
+
+
+
+
+
+
+
+
+
+ Gets the fwmark (firewall mark) for this interface.
+It can be used to set routing policy for outgoing encrypted packets.
+See: ip-rule(8)
+
+
+ 0 if fwmark not in use, 32-bit fwmark value otherwise
+
+
+
+
+ a #NMDeviceWireGuard
+
+
+
+
+
+ Gets the local UDP port this interface listens on
+
+
+ UDP listen port
+
+
+
+
+ a #NMDeviceWireGuard
+
+
+
+
+
+ Gets the public key for this interface
+
+
+ the #GBytes containing the 32-byte public key
+
+
+
+
+ a #NMDeviceWireGuard
+
+
+
+
+
+ Optional firewall mark - see ip-rule(8).
+Used when setting routing policy for outgoing encrypted packets.
+Set to 0 to disable the mark (default).
+
+
+
+ Local UDP listen port.
+Set to 0 to allow a random port to be chosen (default).
+
+
+
+ 32-byte public key, derived from the current private key.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the IP address family of the configuration
+
+
+ the IP address family; either <literal>AF_INET</literal> or
+ <literal>AF_INET6</literal>
+
+
+
+
+ a #NMDhcpConfig
+
+
+
+
+
+ Gets one option by option name.
+
+
+ the configuration option's value. This is the internal string used by the
+configuration, and must not be modified.
+
+
+
+
+ a #NMDhcpConfig
+
+
+
+ the option to retrieve
+
+
+
+
+
+ Gets all the options contained in the configuration.
+
+
+ the #GHashTable containing
+strings for keys and values. This is the internal copy used by the
+configuration, and must not be modified.
+
+
+
+
+
+
+
+ a #NMDhcpConfig
+
+
+
+
+
+ The IP address family of the configuration; either
+<literal>AF_INET</literal> or <literal>AF_INET6</literal>.
+
+
+
+ The #GHashTable containing options of the configuration.
+
+
+
+
+
+
+
+
+
+
+ #NMDhcpHostnameFlags describe flags related to the DHCP hostname and
+FQDN.
+
+ no flag set. The default value from
+ Networkmanager global configuration is used. If such value is unset
+ or still zero, the DHCP request will use standard FQDN flags, i.e.
+ %NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE and
+ %NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED for IPv4 and
+ %NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE for IPv6.
+
+
+ whether the server should
+ do the A RR (FQDN-to-address) DNS updates.
+
+
+ if set, the FQDN is encoded
+ using canonical wire format. Otherwise it uses the deprecated
+ ASCII encoding. This flag is allowed only for DHCPv4.
+
+
+ when not set, request the
+ server to perform updates (the PTR RR and possibly the A RR
+ based on the %NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE flag). If
+ this is set, the %NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE flag
+ should be cleared.
+
+
+ when set, no FQDN flags are
+ sent in the DHCP FQDN option. When cleared and all other FQDN
+ flags are zero, standard FQDN flags are sent. This flag is
+ incompatible with any other FQDN flag.
+
+
+
+
+
+ Gets the list of DNS domains.
+
+
+ the list of DNS domains
+
+
+
+
+
+
+ the #NMDnsEntry
+
+
+
+
+
+ Gets the interface on which name servers are contacted.
+
+
+ the interface name
+
+
+
+
+ the #NMDnsEntry
+
+
+
+
+
+ Gets the list of name servers for this entry.
+
+
+ the list of name servers
+
+
+
+
+
+
+ the #NMDnsEntry
+
+
+
+
+
+ Gets the priority of the entry
+
+
+ the priority of the entry
+
+
+
+
+ the #NMDnsEntry
+
+
+
+
+
+ Gets whether the entry refers to VPN name servers.
+
+
+ %TRUE if the entry refers to VPN name servers
+
+
+
+
+ the #NMDnsEntry
+
+
+
+
+
+ Decreases the reference count of the object. If the reference count
+reaches zero, the object will be destroyed.
+
+
+
+
+
+
+ the #NMDnsEntry
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates a new #NMIPAddress object.
+
+
+ the new #NMIPAddress object, or %NULL on error
+
+
+
+
+ the IP address family (<literal>AF_INET</literal> or
+ <literal>AF_INET6</literal>)
+
+
+
+ the IP address
+
+
+
+ the address prefix length
+
+
+
+
+
+ Creates a new #NMIPAddress object. @addr must point to a buffer of the
+correct size for @family.
+
+
+ the new #NMIPAddress object, or %NULL on error
+
+
+
+
+ the IP address family (<literal>AF_INET</literal> or
+ <literal>AF_INET6</literal>)
+
+
+
+ the IP address
+
+
+
+ the address prefix length
+
+
+
+
+
+ Note that with @cmp_flags #NM_IP_ADDRESS_CMP_FLAGS_WITH_ATTRS, there
+is no total order for comparing GVariant. That means, if the two addresses
+only differ by their attributes, the sort order is undefined and the return
+value only indicates equality.
+
+
+ 0 if the two objects have the same values (according to their flags)
+ or a integer indicating the compare order.
+
+
+
+
+ the #NMIPAddress
+
+
+
+ the #NMIPAddress to compare @address to.
+
+
+
+ the #NMIPAddressCmpFlags that indicate what to compare.
+
+
+
+
+
+ Creates a copy of @address
+
+
+ a copy of @address
+
+This API was part of public headers before 1.32.0 but
+was erroneously not exported in the ABI. It is thus only
+usable since 1.32.0.
+
+
+
+
+ the #NMIPAddress
+
+
+
+
+
+ Determines if two #NMIPAddress objects contain the same address and prefix
+(attributes are not compared).
+
+
+ %TRUE if the objects contain the same values, %FALSE if they do not.
+
+
+
+
+ the #NMIPAddress
+
+
+
+ the #NMIPAddress to compare @address to.
+
+
+
+
+
+ Gets the IP address property of this address object.
+
+
+ the IP address
+
+
+
+
+ the #NMIPAddress
+
+
+
+
+
+ Gets the IP address property of this address object.
+
+@addr must point to a buffer that is the correct size for @address's family.
+
+
+
+
+
+
+ the #NMIPAddress
+
+
+
+ a buffer in which to store the address in binary format.
+
+
+
+
+
+ Gets the value of the attribute with name @name on @address
+
+
+ the value of the attribute with name @name on
+ @address, or %NULL if @address has no such attribute.
+
+
+
+
+ the #NMIPAddress
+
+
+
+ the name of an address attribute
+
+
+
+
+
+ Gets an array of attribute names defined on @address.
+
+
+ a %NULL-terminated array of attribute names,
+
+
+
+
+
+
+ the #NMIPAddress
+
+
+
+
+
+ Gets the IP address family (eg, AF_INET) property of this address
+object.
+
+
+ the IP address family
+
+
+
+
+ the #NMIPAddress
+
+
+
+
+
+ Gets the IP address prefix (ie "24" or "30" etc) property of this address
+object.
+
+
+ the IP address prefix
+
+
+
+
+ the #NMIPAddress
+
+
+
+
+
+ Increases the reference count of the object.
+
+
+
+
+
+
+ the #NMIPAddress
+
+
+
+
+
+ Sets the IP address property of this address object.
+
+@addr must be a valid address of @address's family. If you aren't sure you
+have a valid address, use nm_utils_ipaddr_valid() to check it.
+
+
+
+
+
+
+ the #NMIPAddress
+
+
+
+ the IP address, as a string
+
+
+
+
+
+ Sets the IP address property of this address object.
+
+@addr must point to a buffer that is the correct size for @address's family.
+
+
+
+
+
+
+ the #NMIPAddress
+
+
+
+ the address, in binary format
+
+
+
+
+
+ Sets or clears the named attribute on @address to the given value.
+
+
+
+
+
+
+ the #NMIPAddress
+
+
+
+ the name of an address attribute
+
+
+
+ the value
+
+
+
+
+
+ Sets the IP address prefix property of this address object.
+
+
+
+
+
+
+ the #NMIPAddress
+
+
+
+ the IP address prefix
+
+
+
+
+
+ Decreases the reference count of the object. If the reference count
+reaches zero, the object will be destroyed.
+
+
+
+
+
+
+ the #NMIPAddress
+
+
+
+
+
+
+ Compare flags for nm_ip_address_cmp_full().
+
+ no flags.
+
+
+ when comparing two addresses,
+ also consider their attributes. Warning: note that attributes are GVariants
+ and they don't have a total order. In other words, if the address differs only
+ by their attributes, the returned compare order is not total. In that case,
+ the return value merely indicates equality (zero) or inequality.
+
+
+
+
+
+ Gets the IP addresses (containing the address, prefix, and gateway).
+
+
+ the #GPtrArray
+containing #NMIPAddress<!-- -->es. This is the internal copy used by the
+configuration and must not be modified. The library never modifies the
+returned array and thus it is safe for callers to reference and keep using it.
+
+
+
+
+
+
+ a #NMIPConfig
+
+
+
+
+
+ Gets the domain names.
+
+
+ the array of domains.
+(This is never %NULL, though it may be 0-length).
+
+
+
+
+
+
+ a #NMIPConfig
+
+
+
+
+
+ Gets the IP address family
+
+
+ the IP address family; either <literal>AF_INET</literal> or
+<literal>AF_INET6</literal>
+
+
+
+
+ a #NMIPConfig
+
+
+
+
+
+ Gets the IP gateway address.
+
+
+ the IP address of the gateway.
+
+
+
+
+ a #NMIPConfig
+
+
+
+
+
+ Gets the domain name servers (DNS).
+
+
+ the array of nameserver IP addresses
+
+
+
+
+
+
+ a #NMIPConfig
+
+
+
+
+
+ Gets the routes.
+
+
+ the #GPtrArray containing
+#NMIPRoute<!-- -->s. This is the internal copy used by the configuration, and must
+not be modified. The library never modifies the returned array and thus it is
+safe for callers to reference and keep using it.
+
+
+
+
+
+
+ a #NMIPConfig
+
+
+
+
+
+ Gets the DNS searches.
+
+
+ the array of DNS search strings.
+(This is never %NULL, though it may be 0-length).
+
+
+
+
+
+
+ a #NMIPConfig
+
+
+
+
+
+ Gets the Windows Internet Name Service servers (WINS).
+
+
+ the arry of WINS server IP address strings.
+(This is never %NULL, though it may be 0-length.)
+
+
+
+
+
+
+ a #NMIPConfig
+
+
+
+
+
+ A #GPtrArray containing the addresses (#NMIPAddress) of the configuration.
+
+
+
+
+
+ The array containing domain strings of the configuration.
+
+
+
+
+
+ The IP address family of the configuration; either
+<literal>AF_INET</literal> or <literal>AF_INET6</literal>.
+
+
+
+ The IP gateway address of the configuration as string.
+
+
+
+ The array containing name server IP addresses of the configuration.
+
+
+
+
+
+ A #GPtrArray containing the routes (#NMIPRoute) of the configuration.
+
+
+
+
+
+ The array containing DNS search strings of the configuration.
+
+
+
+
+
+ The array containing WINS server IP addresses of the configuration.
+(This will always be empty for IPv6 configurations.)
+
+
+
+
+
+
+
+
+
+
+
+ Creates a new #NMIPRoute object.
+
+
+ the new #NMIPRoute object, or %NULL on error
+
+
+
+
+ the IP address family (<literal>AF_INET</literal> or
+ <literal>AF_INET6</literal>)
+
+
+
+ the IP address of the route's destination
+
+
+
+ the address prefix length
+
+
+
+ the IP address of the next hop (or %NULL)
+
+
+
+ the route metric (or -1 for "default")
+
+
+
+
+
+ Creates a new #NMIPRoute object. @dest and @next_hop (if non-%NULL) must
+point to buffers of the correct size for @family.
+
+
+ the new #NMIPRoute object, or %NULL on error
+
+
+
+
+ the IP address family (<literal>AF_INET</literal> or
+ <literal>AF_INET6</literal>)
+
+
+
+ the IP address of the route's destination
+
+
+
+ the address prefix length
+
+
+
+ the IP address of the next hop (or %NULL)
+
+
+
+ the route metric (or -1 for "default")
+
+
+
+
+
+ Creates a copy of @route
+
+
+ a copy of @route
+
+This API was part of public headers before 1.32.0 but
+was erroneously not exported in the ABI. It is thus only
+usable since 1.32.0.
+
+
+
+
+ the #NMIPRoute
+
+
+
+
+
+ Determines if two #NMIPRoute objects contain the same destination, prefix,
+next hop, and metric. (Attributes are not compared.)
+
+
+ %TRUE if the objects contain the same values, %FALSE if they do not.
+
+
+
+
+ the #NMIPRoute
+
+
+
+ the #NMIPRoute to compare @route to.
+
+
+
+
+
+ Determines if two #NMIPRoute objects contain the same destination, prefix,
+next hop, and metric.
+
+
+ %TRUE if the objects contain the same values, %FALSE if they do not.
+
+
+
+
+ the #NMIPRoute
+
+
+
+ the #NMIPRoute to compare @route to.
+
+
+
+ tune how to compare attributes. Currently, only
+ NM_IP_ROUTE_EQUAL_CMP_FLAGS_NONE (0) and NM_IP_ROUTE_EQUAL_CMP_FLAGS_WITH_ATTRS (1)
+ is supported.
+
+
+
+
+
+ Gets the value of the attribute with name @name on @route
+
+
+ the value of the attribute with name @name on
+ @route, or %NULL if @route has no such attribute.
+
+
+
+
+ the #NMIPRoute
+
+
+
+ the name of an route attribute
+
+
+
+
+
+ Gets an array of attribute names defined on @route.
+
+
+ a %NULL-terminated array of attribute names
+
+
+
+
+
+
+ the #NMIPRoute
+
+
+
+
+
+ Gets the IP destination address property of this route object.
+
+
+ the IP address of the route's destination
+
+
+
+
+ the #NMIPRoute
+
+
+
+
+
+ Gets the destination property of this route object.
+
+@dest must point to a buffer that is the correct size for @route's family.
+
+
+
+
+
+
+ the #NMIPRoute
+
+
+
+ a buffer in which to store the destination in binary format.
+
+
+
+
+
+ Gets the IP address family (eg, AF_INET) property of this route
+object.
+
+
+ the IP address family
+
+
+
+
+ the #NMIPRoute
+
+
+
+
+
+ Gets the route metric property of this route object; lower values
+indicate "better" or more preferred routes; -1 indicates "default"
+(meaning NetworkManager will set it appropriately).
+
+
+ the route metric
+
+
+
+
+ the #NMIPRoute
+
+
+
+
+
+ Gets the IP address of the next hop of this route; this will be %NULL if the
+route has no next hop.
+
+
+ the IP address of the next hop, or %NULL if this is a device route.
+
+
+
+
+ the #NMIPRoute
+
+
+
+
+
+ Gets the next hop property of this route object.
+
+@next_hop must point to a buffer that is the correct size for @route's family.
+
+
+ %TRUE if @route has a next hop, %FALSE if not (in which case
+@next_hop will be zeroed out)
+
+
+
+
+ the #NMIPRoute
+
+
+
+ a buffer in which to store the next hop in binary format.
+
+
+
+
+
+ Gets the IP prefix (ie "24" or "30" etc) of this route.
+
+
+ the IP prefix
+
+
+
+
+ the #NMIPRoute
+
+
+
+
+
+ Increases the reference count of the object.
+
+
+
+
+
+
+ the #NMIPRoute
+
+
+
+
+
+ Sets the named attribute on @route to the given value.
+
+
+
+
+
+
+ the #NMIPRoute
+
+
+
+ the name of a route attribute
+
+
+
+ the value
+
+
+
+
+
+ Sets the destination property of this route object.
+
+@dest must be a valid address of @route's family. If you aren't sure you
+have a valid address, use nm_inet_is_valid() to check it.
+
+
+
+
+
+
+ the #NMIPRoute
+
+
+
+ the route's destination, as a string
+
+
+
+
+
+ Sets the destination property of this route object.
+
+@dest must point to a buffer that is the correct size for @route's family.
+
+
+
+
+
+
+ the #NMIPRoute
+
+
+
+ the route's destination, in binary format
+
+
+
+
+
+ Sets the metric property of this route object.
+
+
+
+
+
+
+ the #NMIPRoute
+
+
+
+ the route metric (or -1 for "default")
+
+
+
+
+
+ Sets the next-hop property of this route object.
+
+@next_hop (if non-%NULL) must be a valid address of @route's family. If you
+aren't sure you have a valid address, use nm_utils_ipaddr_valid() to check
+it.
+
+
+
+
+
+
+ the #NMIPRoute
+
+
+
+ the route's next hop, as a string
+
+
+
+
+
+ Sets the destination property of this route object.
+
+@next_hop (if non-%NULL) must point to a buffer that is the correct size for
+@route's family.
+
+
+
+
+
+
+ the #NMIPRoute
+
+
+
+ the route's next hop, in binary format
+
+
+
+
+
+ Sets the prefix property of this route object.
+
+
+
+
+
+
+ the #NMIPRoute
+
+
+
+ the route prefix
+
+
+
+
+
+ Decreases the reference count of the object. If the reference count
+reaches zero, the object will be destroyed.
+
+
+
+
+
+
+ the #NMIPRoute
+
+
+
+
+
+ Validates a route attribute, i.e. checks that the attribute is a known one
+and the value is of the correct type and well-formed.
+
+
+ %TRUE if the attribute is valid, %FALSE otherwise
+
+
+
+
+ the attribute name
+
+
+
+ the attribute value
+
+
+
+ IP address family of the route
+
+
+
+ on return, whether the attribute name is a known one
+
+
+
+
+
+
+
+ the specifiers for route attributes
+
+
+
+
+
+
+
+
+
+ a newly created rule instance with the
+ provided address family. The instance is unsealed.
+
+
+
+
+ the address family of the routing rule. Must be either
+ %AF_INET (2) or %AF_INET6 (10).
+
+
+
+
+
+
+
+ zero, a positive, or a negative integer to indicate
+ equality or how the arguments compare.
+
+
+
+
+ the #NMIPRoutingRule instance to compare
+
+
+
+ the other #NMIPRoutingRule instance to compare
+
+
+
+
+
+
+
+ the set action.
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+
+
+
+
+ the address family of the rule. Either %AF_INET or %AF_INET6.
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+
+
+
+
+ the destination port end setting.
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+
+
+
+
+ the destination port start setting.
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+
+
+
+
+ the set from/src parameter or
+ %NULL, if no value is set.
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+
+
+
+
+ the set prefix length for the from/src parameter.
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+
+
+
+
+ the fwmark setting.
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+
+
+
+
+ the fwmask setting.
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+
+
+
+
+ the set iifname or %NULL if unset.
+
+
+
+
+ the #NMIPRoutingRule instance.
+
+
+
+
+
+
+
+ the "invert" setting of the rule.
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+
+
+
+
+ the ipproto of the rule.
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+
+
+
+
+ the set oifname or %NULL if unset.
+
+
+
+
+ the #NMIPRoutingRule instance.
+
+
+
+
+
+
+
+ the priority. A valid priority is in the range from
+ 0 to %G_MAXUINT32. If unset, -1 is returned.
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+
+
+
+
+ the source port end setting.
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+
+
+
+
+ the source port start setting.
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+
+
+
+
+ the suppress_prefixlength of the rule. -1 means that the value is unset.
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+
+
+
+
+ the set table.
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+
+
+
+
+ the set to/dst parameter or
+ %NULL, if no value is set.
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+
+
+
+
+ the set prefix length for the to/dst parameter.
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+
+
+
+
+ the tos of the rule.
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+
+
+
+
+ %TRUE if a uid range is set.
+
+This API was wrongly introduced in the header files for 1.32, but the
+symbols were not exported. The API only works since 1.34 and newer.
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+ returns the start of the range
+ or 0 if the range is not set.
+
+
+
+ returns the end of the range
+ or 0 if the range is not set.
+
+
+
+
+
+
+
+ whether @self is sealed. Once sealed, an instance
+ cannot be modified nor unsealed.
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+
+
+ Since 1.42, ref-counting of #NMIPRoutingRule is thread-safe.
+
+
+ a newly created rule instance with
+ the same settings as @rule. Note that the instance will
+ always be unsealed.
+
+
+
+
+ the #NMIPRoutingRule to clone.
+
+
+
+
+
+ Increases the reference count of the instance.
+
+
+ the @self argument with incremented
+ reference count.
+
+Since 1.42, ref-counting of #NMIPRoutingRule is thread-safe.
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+
+
+ Seals the routing rule. Afterwards, the instance can no longer be
+modified, and it is a bug to call any of the accessors that would
+modify the rule. If @self was already sealed, this has no effect.
+
+
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+
+
+ Note that currently only certain actions are allowed. nm_ip_routing_rule_validate()
+will reject unsupported actions as invalid.
+
+
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+ the action to set
+
+
+
+
+
+
+
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+ the start port to set.
+
+
+
+ the end port to set.
+
+
+
+
+
+ Setting invalid values is accepted, but will later fail
+during nm_ip_routing_rule_validate().
+
+
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+ the from/src address to set.
+ The address family must match.
+
+
+
+ the corresponding prefix length of the address.
+
+
+
+
+
+
+
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+ the fwmark
+
+
+
+ the fwmask
+
+
+
+
+
+ The name supports C backslash escaping for non-UTF-8 characters.
+Note that nm_ip_routing_rule_from_string() too uses backslash
+escaping when tokenizing the words by whitespace. So, in string
+representation you'd get double backslashes.
+
+
+
+
+
+
+ the #NMIPRoutingRule instance.
+
+
+
+ the iifname to set or %NULL to unset.
+
+
+
+
+
+
+
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+ the new value to set
+
+
+
+
+
+
+
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+ the ipproto to set
+
+
+
+
+
+ The name supports C backslash escaping for non-UTF-8 characters.
+Note that nm_ip_routing_rule_from_string() too uses backslash
+escaping when tokenizing the words by whitespace. So, in string
+representation you'd get double backslashes.
+
+
+
+
+
+
+ the #NMIPRoutingRule instance.
+
+
+
+ the oifname to set or %NULL to unset.
+
+
+
+
+
+ A valid priority ranges from 0 to %G_MAXUINT32. "-1" is also allowed
+to reset the priority. It is a bug calling this function with any
+other value.
+
+
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+ the priority to set
+
+
+
+
+
+
+
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+ the start port to set.
+
+
+
+ the end port to set.
+
+
+
+
+
+
+
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+ the suppress_prefixlength to set. The value -1 means
+ unset.
+
+
+
+
+
+
+
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+ the table to set
+
+
+
+
+
+ Setting invalid values is accepted, but will later fail
+during nm_ip_routing_rule_validate().
+
+
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+ the to/dst address to set.
+ The address family must match.
+
+
+
+ the corresponding prefix length of the address.
+ If @to is %NULL, this valid is ignored.
+
+
+
+
+
+
+
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+ the tos to set
+
+
+
+
+
+ For a valid range, start must be less or equal to end.
+If set to an invalid range, the range gets unset.
+
+This API was wrongly introduced in the header files for 1.32, but the
+symbols were not exported. The API only works since 1.34 and newer.
+
+
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+ the uid_range start to set.
+
+
+
+ the uid_range start to set.
+
+
+
+
+
+
+
+ the string representation or %NULL on error.
+
+
+
+
+ the #NMIPRoutingRule instance to convert to string.
+
+
+
+ #NMIPRoutingRuleAsStringFlags for controlling the
+ string conversion.
+
+
+
+ extra arguments for controlling the string
+ conversion. Currently, not extra arguments are supported.
+
+
+
+
+
+
+
+
+ Decreases the reference count of the instance and destroys
+the instance if the reference count reaches zero.
+
+Since 1.42, ref-counting of #NMIPRoutingRule is thread-safe.
+
+
+
+
+
+
+ the #NMIPRoutingRule instance
+
+
+
+
+
+
+
+ %TRUE if the rule validates.
+
+
+
+
+ the #NMIPRoutingRule instance to validate
+
+
+
+
+
+
+
+ the new #NMIPRoutingRule or %NULL on error.
+
+
+
+
+ the string representation to convert to an #NMIPRoutingRule
+
+
+
+ #NMIPRoutingRuleAsStringFlags for controlling the
+ string conversion.
+
+
+
+ extra arguments for controlling the string
+ conversion. Currently, not extra arguments are supported.
+
+
+
+
+
+
+
+
+
+
+ no flags selected.
+
+
+ whether to allow parsing
+ IPv4 addresses.
+
+
+ whether to allow parsing
+ IPv6 addresses. If both @NM_IP_ROUTING_RULE_AS_STRING_FLAGS_AF_INET and
+ @NM_IP_ROUTING_RULE_AS_STRING_FLAGS_AF_INET6 are unset, it's the same
+ as setting them both.
+
+
+ if set, ensure that the
+ rule verfies or fail.
+
+
+
+ IP tunnel flags.
+
+ no flag
+
+
+ don't add encapsulation limit
+ if one isn't present in inner packet
+
+
+ copy the traffic class field
+ from the inner packet
+
+
+ copy the flowlabel from the
+ inner packet
+
+
+ used for Mobile IPv6
+
+
+ copy DSCP from the outer packet
+
+
+ copy fwmark from inner packet
+
+
+
+ The tunneling mode.
+
+ Unknown/unset tunnel mode
+
+
+ IP in IP tunnel
+
+
+ GRE tunnel
+
+
+ SIT tunnel
+
+
+ ISATAP tunnel
+
+
+ VTI tunnel
+
+
+ IPv6 in IPv6 tunnel
+
+
+ IPv4 in IPv6 tunnel
+
+
+ IPv6 GRE tunnel
+
+
+ IPv6 VTI tunnel
+
+
+ GRETAP tunnel
+
+
+ IPv6 GRETAP tunnel
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Opaque type with parameters for the callback. The actual content
+depends on the %NMKeyfileHandlerType.
+
+
+ Set the error for the handler. This lets the operation fail
+with the provided error. You may only set the error once.
+
+@src must be non-%NULL.
+
+Note that @src is no longer valid after this call. If you want
+to keep using the same GError*, you need to set it to %NULL
+after calling this function on it.
+
+
+
+
+
+
+ the #NMKeyfileHandlerData
+
+
+
+ error to move into the return location
+
+
+
+
+
+ Get context information of the current event. This function can be called
+on all events, but the context information may be unset.
+
+
+
+
+
+
+ the #NMKeyfileHandlerData for any event.
+
+
+
+ if the event
+ is in the context of a keyfile group, the group name.
+
+
+
+ if the event
+ is in the context of a keyfile value, the key name.
+
+
+
+ if the event
+ happens while handling a particular #NMSetting instance.
+
+
+
+ the
+ property name if applicable.
+
+
+
+
+
+
+
+
+
+
+
+ the #NMKeyfileHandlerData for a %NM_KEYFILE_HANDLER_TYPE_WARN
+ event.
+
+
+
+ the warning message.
+
+
+
+ the #NMKeyfileWarnSeverity warning severity.
+
+
+
+
+
+
+ Flags for customizing nm_keyfile_read() and nm_keyfile_write().
+
+Currently no flags are implemented.
+
+ no flags set.
+
+
+
+ The type of the callback for %NMKeyfileReadHandler and %NMKeyfileWriteHandler.
+Depending on the type, you can interpret %NMKeyfileHandlerData.
+
+ a warning.
+
+
+ for handling certificates while writing
+ a connection to keyfile.
+
+
+
+ Hook to nm_keyfile_read().
+
+The callee may abort the reading by setting an error via nm_keyfile_handler_data_fail_with_error().
+
+
+ the callee should return TRUE, if the event was handled and/or recognized.
+ Otherwise, a default action will be performed that depends on the @type.
+ For %NM_KEYFILE_HANDLER_TYPE_WARN type, the default action is doing nothing.
+
+
+
+
+ the #GKeyFile that is currently read
+
+
+
+ the #NMConnection that is being constructed.
+
+
+
+ the %NMKeyfileHandlerType that indicates which type
+ the request is.
+
+
+
+ the #NMKeyfileHandlerData. What you can do with it
+ depends on the @handler_type.
+
+
+
+ the user-data argument to nm_keyfile_read().
+
+
+
+
+
+ The severity level of %NM_KEYFILE_HANDLER_TYPE_WARN events.
+
+ debug message
+
+
+ info message
+
+
+ info message about a missing file
+
+
+ a warning message
+
+
+
+ This is a hook to tweak the serialization.
+
+Handler for certain properties or events that are not entirely contained
+within the keyfile or that might be serialized differently. The @type and
+@handler_data arguments tell which kind of argument we have at hand.
+
+Currently only the type %NM_KEYFILE_HANDLER_TYPE_WRITE_CERT is supported.
+
+The callee may call nm_keyfile_handler_data_fail_with_error() to abort
+the writing with error.
+
+
+ the callee should return %TRUE if the event was handled. If the
+ event was unhandled, a default action will be performed that depends on
+ the @handler_type.
+
+
+
+
+ the #NMConnection that is currently written.
+
+
+
+ the #GKeyFile that is currently constructed.
+
+
+
+ the %NMKeyfileHandlerType that indicates which type
+ the request is.
+
+
+
+ the #NMKeyfileHandlerData. What you can do with it
+ depends on the @handler_type.
+
+
+
+ the user-data argument to nm_keyfile_read().
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Supported attributes are:
+
+- #NM_LLDP_ATTR_CHASSIS_ID_TYPE (type: 'u')
+- #NM_LLDP_ATTR_CHASSIS_ID (type: 's')
+- #NM_LLDP_ATTR_DESTINATION (type: 's')
+- #NM_LLDP_ATTR_IEEE_802_1_PPVID (type: 'u'). This attribute only reports the first PPVID
+ and therefore it is deprecated in favor of NM_LLDP_ATTR_IEEE_802_1_PPVIDS which reports
+ all the PPVID.
+- #NM_LLDP_ATTR_IEEE_802_1_PPVID_FLAGS (type: 'u'). This attribute only reports the first PPVID
+ and therefore it is deprecated in favor of NM_LLDP_ATTR_IEEE_802_1_PPVIDS which reports
+ all the PPVID.
+- #NM_LLDP_ATTR_IEEE_802_1_PPVIDS (type: 'aa{sv}')
+
+ An array of dictionaries where each element has keys:
+ - flags (type: 'u')
+ - ppvid (type: 'u')
+- #NM_LLDP_ATTR_IEEE_802_1_PVID (type: 'u')
+- #NM_LLDP_ATTR_IEEE_802_1_VID (type: 'u'). This attribute only reports the first VLAN
+ and therefore it is deprecated in favor of NM_LLDP_ATTR_IEEE_802_1_VLANS which reports
+ all the VLANs.
+- #NM_LLDP_ATTR_IEEE_802_1_VLAN_NAME (type: 's'). This attribute only reports the first VLAN
+ and therefore it is deprecated in favor of NM_LLDP_ATTR_IEEE_802_1_VLANS which reports
+ all the VLANs.
+- #NM_LLDP_ATTR_IEEE_802_1_VLANS (type: 'aa{sv}')
+
+ An array of dictionaries where each element has keys:
+ - name (type: 's')
+ - vid (type: 'u')
+- #NM_LLDP_ATTR_IEEE_802_3_MAC_PHY_CONF (type: 'a{sv}')
+
+ Dictionary where each element has keys:
+ - autoneg (type: 'u')
+ - operational-mau-type (type: 'u')
+ - pmd-autoneg-cap (type: 'u')
+- #NM_LLDP_ATTR_IEEE_802_3_MAX_FRAME_SIZE (type: 'u')
+- #NM_LLDP_ATTR_IEEE_802_3_POWER_VIA_MDI (type: 'a{sv}')
+
+ Dictionary where each element has keys:
+ - mdi-power-support (type: 'u')
+ - power-class (type: 'u')
+ - pse-power-pair (type: 'u')
+- #NM_LLDP_ATTR_MANAGEMENT_ADDRESSES (type: 'aa{sv}')
+
+ An array of dictionaries where each element has keys:
+ - address (type: 'ay')
+ - address-subtype (type: 'u')
+ - interface-number (type: 'u')
+ - interface-number-subtype (type: 'u')
+ - object-id (type: 'ay')
+- #NM_LLDP_ATTR_PORT_DESCRIPTION (type: 's')
+- #NM_LLDP_ATTR_PORT_ID_TYPE (type: 'u')
+- #NM_LLDP_ATTR_PORT_ID (type: 's')
+- #NM_LLDP_ATTR_RAW (type: 'ay')
+- #NM_LLDP_ATTR_SYSTEM_CAPABILITIES (type: 'u')
+- #NM_LLDP_ATTR_SYSTEM_DESCRIPTION (type: 's')
+- #NM_LLDP_ATTR_SYSTEM_NAME (type: 's')
+
+
+ Creates a new #NMLldpNeighbor object.
+
+Note that #NMLldpNeighbor has no public API for mutating
+an instance. Also, libnm will not internally mutate a
+once exposed object. They are guaranteed to be immutable.
+
+Since 1.32, ref-counting of #NMLldpNeighbor is thread-safe.
+
+This function is not useful, as there is no public API to
+actually modify the (empty) instance.
+
+
+ the new #NMLldpNeighbor object.
+
+
+
+
+ Gets an array of attribute names available for @neighbor.
+
+
+ a %NULL-terminated array of attribute names.
+
+
+
+
+
+
+ the #NMLldpNeighbor
+
+
+
+
+
+ Gets the string value of attribute with name @name on @neighbor
+
+
+ %TRUE if a string attribute with name @name was found, %FALSE otherwise
+
+
+
+
+ the #NMLldpNeighbor
+
+
+
+ the attribute name
+
+
+
+ on return, the
+ attribute value
+
+
+
+
+
+ Get the type of an attribute.
+
+
+ the #GVariantType of the attribute with name @name
+
+
+
+
+ the #NMLldpNeighbor
+
+
+
+ the attribute name
+
+
+
+
+
+ Gets the uint32 value of attribute with name @name on @neighbor
+
+
+ %TRUE if a uint32 attribute with name @name was found, %FALSE otherwise
+
+
+
+
+ the #NMLldpNeighbor
+
+
+
+ the attribute name
+
+
+
+ on return, the attribute value
+
+
+
+
+
+ Gets the value (as a GVariant) of attribute with name @name on @neighbor
+
+
+ the value or %NULL if the attribute with @name was
+not found.
+
+
+
+
+ the #NMLldpNeighbor
+
+
+
+ the attribute name
+
+
+
+
+
+ Increases the reference count of the object.
+
+Since 1.32, ref-counting of #NMLldpNeighbor is thread-safe.
+
+
+
+
+
+
+ the #NMLldpNeighbor
+
+
+
+
+
+ Decreases the reference count of the object. If the reference count
+reaches zero, the object will be destroyed.
+
+Since 1.32, ref-counting of #NMLldpNeighbor is thread-safe.
+
+
+
+
+
+
+ the #NMLldpNeighbor
+
+
+
+
+
+
+ Evaluates to the major version number of NetworkManager which this source
+is compiled against.
+
+
+
+
+ Evaluates to the micro version number of NetworkManager which this source
+compiled against.
+
+
+
+
+ Evaluates to the minor version number of NetworkManager which this source
+is compiled against.
+
+
+
+
+ Errors related to the main "network management" interface of NetworkManager.
+These may be returned from #NMClient methods that invoke D-Bus operations on
+the "org.freedesktop.NetworkManager" interface, and correspond to D-Bus
+errors in that namespace.
+
+ unknown or unclassified error
+
+
+ Permission denied.
+
+
+ The requested connection is not known.
+
+
+ The requested device is not known.
+
+
+ The requested connection cannot be
+ activated at this time.
+
+
+ The request could not be completed
+ because a required connection is not active.
+
+
+ The connection to be activated was
+ already active on another device.
+
+
+ An activation request failed due to a
+ dependency being unavailable.
+
+
+ The manager is already in the requested
+ sleep/wake state.
+
+
+ The network is already
+ enabled/disabled.
+
+
+ Unknown log level in SetLogging
+
+
+ Unknown log domain in SetLogging
+
+
+ Invalid arguments for D-Bus request
+
+
+ A plug-in was needed to complete the
+ activation but is not available.
+
+
+
+
+
+
+
+
+ Flags for the manager Reload() call.
+
+ reload the NetworkManager.conf configuration
+ from disk. Note that this does not include connections, which can be
+ reloaded via Setting's ReloadConnections().
+
+
+ update DNS configuration, which usually
+ involves writing /etc/resolv.conf anew.
+
+
+ means to restart the DNS plugin. This
+ is for example useful when using dnsmasq plugin, which uses additional
+ configuration in /etc/NetworkManager/dnsmasq.d. If you edit those files,
+ you can restart the DNS plugin. This action shortly interrupts name
+ resolution.
+
+
+
+ The NMMetered enum has two different purposes: one is to configure
+"connection.metered" setting of a connection profile in #NMSettingConnection, and
+the other is to express the actual metered state of the #NMDevice at a given moment.
+
+For the connection profile only #NM_METERED_UNKNOWN, #NM_METERED_NO
+and #NM_METERED_YES are allowed.
+
+The device's metered state at runtime is determined by the profile
+which is currently active. If the profile explicitly specifies #NM_METERED_NO
+or #NM_METERED_YES, then the device's metered state is as such.
+If the connection profile leaves it undecided at #NM_METERED_UNKNOWN (the default),
+then NetworkManager tries to guess the metered state, for example based on the
+device type or on DHCP options (like Android devices exposing a "ANDROID_METERED"
+DHCP vendor option). This then leads to either #NM_METERED_GUESS_NO or #NM_METERED_GUESS_YES.
+
+Most applications probably should treat the runtime state #NM_METERED_GUESS_YES
+like #NM_METERED_YES, and all other states as not metered.
+
+Note that the per-device metered states are then combined to a global metered
+state. This is basically the metered state of the device with the best default
+route. However, that generalization of a global metered state may not be correct
+if the default routes for IPv4 and IPv6 are on different devices, or if policy
+routing is configured. In general, the global metered state tries to express whether
+the traffic is likely metered, but since that depends on the traffic itself,
+there is not one answer in all cases. Hence, an application may want to consider
+the per-device's metered states.
+
+ The metered status is unknown
+
+
+ Metered, the value was explicitly configured
+
+
+ Not metered, the value was explicitly configured
+
+
+ Metered, the value was guessed
+
+
+ Not metered, the value was guessed
+
+
+
+
+ The default, meaning that no MPTCP flags are set.
+
+
+ don't configure MPTCP endpoints on the device.
+
+
+ MPTCP is enabled and endpoints will be configured.
+ This flag is implied if any of the other flags indicate that
+ MPTCP is enabled and therefore in most cases unnecessary.
+ Note that if "/proc/sys/net/mptcp/enabled" sysctl is disabled, MPTCP
+ handling is disabled despite this flag. This can be overruled with the
+ "also-without-sysctl" flag.
+ Note that by default interfaces that don't have a default route are
+ excluded from having MPTCP endpoints configured. This can be overruled
+ with the "also-without-default-route" and this affects endpoints
+ per address family.
+
+
+ even if MPTCP handling is enabled
+ via the "enabled" flag, it is ignored unless "/proc/sys/net/mptcp/enabled"
+ is on. With this flag, MPTCP endpoints will be configured regardless
+ of the sysctl setting.
+
+
+ even if MPTCP handling is enabled
+ via the "enabled" flag, it is ignored per-address family unless NetworkManager
+ configures a default route. With this flag, NetworkManager will also configure
+ MPTCP endpoints if there is no default route. This takes effect per-address
+ family.
+
+
+ Flag for the MPTCP endpoint. The endpoint will be
+ announced/signaled to each peer via an MPTCP ADD_ADDR sub-option.
+
+
+ Flag for the MPTCP endpoint. If additional subflow creation
+ is allowed by the MPTCP limits, the MPTCP path manager will try to create an
+ additional subflow using this endpoint as the source address after the MPTCP connection
+ is established.
+
+
+ Flag for the MPTCP endpoint. If this is a subflow endpoint, the
+ subflows created using this endpoint will have the backup flag set during the connection
+ process. This flag instructs the peer to only send data on a given subflow when all
+ non-backup subflows are unavailable. This does not affect outgoing data,
+ where subflow priority is determined by the backup/non-backup flag received
+ from the peer
+
+
+ Flag for the MPTCP endpoint. If this is a subflow endpoint and additional
+ subflow creation is allowed by the MPTCP limits, the MPTCP path manager will try to create an
+ additional subflow for each known peer address, using this endpoint as the source address.
+ This will occur after the MPTCP connection is established. If the peer did not announce
+ any additional addresses using the MPTCP ADD_ADDR sub-option, this will behave the same
+ as a plain subflow endpoint. When the peer does announce addresses, each received ADD_ADDR
+ sub-option will trigger creation of an additional subflow to generate a full mesh topology.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns the #NMClient instance in which object is cached.
+Also, if the object got removed from the client cached,
+this returns %NULL. So it can be used to check whether the
+object is still alive.
+
+
+ the #NMClient cache in which the
+object can be found, or %NULL if the object is no longer
+cached.
+
+
+
+
+ a #NMObject
+
+
+
+
+
+ Gets the DBus path of the #NMObject.
+
+
+ the object's path. This is the internal string used by the
+object, and must not be modified.
+
+Note that the D-Bus path of an NMObject never changes, even
+if the instance gets removed from the cache. To find out
+whether the object is still alive/cached, check nm_object_get_client().
+
+
+
+
+ a #NMObject
+
+
+
+
+
+ The NMClient instance as returned by nm_object_get_client().
+
+When an NMObject gets removed from the NMClient cache,
+the NMObject:path property stays unchanged, but this client
+instance gets reset to %NULL. You can use this property to
+track removal of the object from the cache.
+
+
+
+ The D-Bus object path.
+
+The D-Bus path of an object instance never changes, even if the object
+gets removed from the cache. To see whether the object is still in the
+cache, check NMObject:client.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Flags related to radio interfaces.
+
+ an alias for numeric zero, no flags set.
+
+
+ A Wireless LAN device or rfkill switch
+ is detected in the system.
+
+
+ A Wireless WAN device or rfkill switch
+ is detected in the system.
+
+
+
+
+
+ Creates a new #NMRange object for the given range. Setting @end
+equal to @start creates a single-element range.
+
+
+ the new #NMRange object.
+
+
+
+
+ the first element of the range
+
+
+
+ the last element of the range, must be greater than or equal
+to @start.
+
+
+
+
+
+ Compare two ranges.
+
+
+ zero if the two instances are equivalent or
+ a non-zero integer otherwise. This defines a total ordering
+ over the ranges.
+
+
+
+
+ a #NMRange
+
+
+
+ another #NMRange
+
+
+
+
+
+ Gets the start and end values for the range.
+
+
+ %TRUE if the range contains more than one
+element, %FALSE otherwise.
+
+
+
+
+ the #NMRange
+
+
+
+ location to store the start value
+
+
+
+ location to store the end value
+
+
+
+
+
+ Increases the reference count of the object.
+This is thread-safe.
+
+
+ the input argument @range object.
+
+
+
+
+ the #NMRange
+
+
+
+
+
+ Convert a %NMRange to a string.
+
+
+ a string representing the range.
+
+
+
+
+ the %NMRange
+
+
+
+
+
+ Decreases the reference count of the object. If the reference count
+reaches zero the object will be destroyed.
+This is thread-safe.
+
+
+
+
+
+
+ the #NMRange
+
+
+
+
+
+ Parses the string representation of the range to create a %NMRange
+instance.
+
+
+ the %NMRange or %NULL
+
+
+
+
+ the string representation of a range
+
+
+
+
+
+
+
+
+
+ Send any local changes to the settings and properties of @connection to
+NetworkManager. If @save_to_disk is %TRUE, the updated connection will be saved to
+disk; if %FALSE, then only the in-memory representation will be changed.
+ Use nm_remote_connection_commit_changes_async() or GDBusConnection.
+
+
+ %TRUE on success, %FALSE on error, in which case @error will be set.
+
+
+
+
+ the #NMRemoteConnection
+
+
+
+ whether to persist the changes to disk
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+
+
+ Asynchronously sends any local changes to the settings and properties of
+@connection to NetworkManager. If @save is %TRUE, the updated connection will
+be saved to disk; if %FALSE, then only the in-memory representation will be
+changed.
+
+
+
+
+
+
+ the #NMRemoteConnection
+
+
+
+ whether to save the changes to persistent storage
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ callback to be called when the commit operation completes
+
+
+
+ caller-specific data passed to @callback
+
+
+
+
+
+ Gets the result of a call to nm_remote_connection_commit_changes_async().
+
+
+ %TRUE on success, %FALSE on error, in which case @error will be set.
+
+
+
+
+ the #NMRemoteConnection
+
+
+
+ the result passed to the #GAsyncReadyCallback
+
+
+
+
+
+ Deletes the connection.
+ Use nm_remote_connection_delete_async() or GDBusConnection.
+
+
+ %TRUE on success, %FALSE on error, in which case @error will be set.
+
+
+
+
+ the #NMRemoteConnection
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+
+
+ Asynchronously deletes the connection.
+
+
+
+
+
+
+ the #NMRemoteConnection
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ callback to be called when the delete operation completes
+
+
+
+ caller-specific data passed to @callback
+
+
+
+
+
+ Gets the result of a call to nm_remote_connection_delete_async().
+
+
+ %TRUE on success, %FALSE on error, in which case @error will be set.
+
+
+
+
+ the #NMRemoteConnection
+
+
+
+ the result passed to the #GAsyncReadyCallback
+
+
+
+
+
+
+
+ file that stores the connection in case the connection is file-backed.
+
+
+
+
+ the #NMRemoteConnection
+
+
+
+
+
+
+
+ the flags of the connection of type #NMSettingsConnectionFlags.
+
+
+
+
+ the #NMRemoteConnection
+
+
+
+
+
+ Request the connection's secrets. Note that this is a blocking D-Bus call,
+not a simple property accessor.
+
+
+ a #GVariant of type %NM_VARIANT_TYPE_CONNECTION containing
+@connection's secrets, or %NULL on error.
+
+Warning: NMClient contains a cache of objects on D-Bus. This cache gets updated
+ with D-Bus signals when iterating the GMainContext. This function performs a
+ (pseudo) blocking D-Bus call. Aside blocking, the result will not be in sync
+ and not be ordered with the content of the NMClient cache.
+ This function used to be deprecated between 1.22 and 1.38 releases.
+
+
+
+
+ the #NMRemoteConnection
+
+
+
+ the #NMSetting object name to get secrets for
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+
+
+ Asynchronously requests the connection's secrets.
+
+
+
+
+
+
+ the #NMRemoteConnection
+
+
+
+ the #NMSetting object name to get secrets for
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ callback to be called when the secret request completes
+
+
+
+ caller-specific data passed to @callback
+
+
+
+
+
+ Gets the result of a call to nm_remote_connection_get_secrets_async().
+
+
+ a #GVariant of type %NM_VARIANT_TYPE_CONNECTION
+ containing @connection's secrets, or %NULL on error.
+
+
+
+
+ the #NMRemoteConnection
+
+
+
+ the result passed to the #GAsyncReadyCallback
+
+
+
+
+
+
+
+ %TRUE if the remote connection contains changes that have not
+been saved to disk, %FALSE if the connection is the same as its on-disk
+representation.
+
+
+
+
+ the #NMRemoteConnection
+
+
+
+
+
+
+
+ the version-id of the profile. This ID is incremented
+ whenever the profile is modified.
+
+
+
+
+ the #NMRemoteConnection
+
+
+
+
+
+ Checks if the connection is visible to the current user. If the
+connection is not visible then it is essentially useless; it will
+not contain any settings, and operations such as
+nm_remote_connection_save() and nm_remote_connection_delete() will
+always fail. (#NMRemoteSettings will not normally return
+non-visible connections to callers, but it is possible for a
+connection's visibility to change after you already have a
+reference to it.)
+
+
+ %TRUE if the remote connection is visible to the current
+user, %FALSE if not.
+
+
+
+
+ the #NMRemoteConnection
+
+
+
+
+
+ Saves the connection to disk if the connection has changes that have not yet
+been written to disk, or if the connection has never been saved.
+ Use nm_remote_connection_save_async() or GDBusConnection.
+
+
+ %TRUE on success, %FALSE on error, in which case @error will be set.
+
+
+
+
+ the #NMRemoteConnection
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+
+
+ Saves the connection to disk if the connection has changes that have not yet
+been written to disk, or if the connection has never been saved.
+
+
+
+
+
+
+ the #NMRemoteConnection
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ callback to be called when the save operation completes
+
+
+
+ caller-specific data passed to @callback
+
+
+
+
+
+ Gets the result of a call to nm_remote_connection_save_async().
+
+
+ %TRUE on success, %FALSE on error, in which case @error will be set.
+
+
+
+
+ the #NMRemoteConnection
+
+
+
+ the result passed to the #GAsyncReadyCallback
+
+
+
+
+
+ Asynchronously calls the Update2() D-Bus method.
+
+
+
+
+
+
+ the #NMRemoteConnection
+
+
+
+ optional connection to update the settings.
+
+
+
+ update-flags
+
+
+
+ optional arguments.
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ callback to be called when the commit operation completes
+
+
+
+ caller-specific data passed to @callback
+
+
+
+
+
+ Gets the result of a call to nm_remote_connection_commit_changes_async().
+
+
+ on success, a #GVariant of type "a{sv}" with the result. On failure,
+ %NULL.
+
+
+
+
+ the #NMRemoteConnection
+
+
+
+ the result passed to the #GAsyncReadyCallback
+
+
+
+
+
+ File that stores the connection in case the connection is
+file-backed.
+
+
+
+ The flags of the connection as unsigned integer. The values
+correspond to the #NMSettingsConnectionFlags enum.
+
+
+
+ %TRUE if the remote connection contains changes that have not been saved
+to disk, %FALSE if the connection is the same as its on-disk representation.
+
+
+
+ The version ID of the profile that is incremented when the profile gets modified.
+This can be used to track concurrent modifications of the profile.
+
+
+
+ %TRUE if the remote connection is visible to the current user, %FALSE if
+not. If the connection is not visible then it is essentially useless; it
+will not contain any settings, and operations such as
+nm_remote_connection_save() and nm_remote_connection_delete() will always
+fail. (#NMRemoteSettings will not normally return non-visible connections
+to callers, but it is possible for a connection's visibility to change
+after you already have a reference to it.)
+
+
+
+
+
+
+
+ The result of a checkpoint Rollback() operation for a specific device.
+
+
+ the rollback succeeded.
+
+
+ the device no longer exists.
+
+
+ the device is now unmanaged.
+
+
+ other errors during rollback.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Connection type describing a connection to devices that support the Bluetooth
+DUN profile.
+
+
+
+
+ Connection type describing a Bluetooth NAP (Network Access Point),
+which accepts PANU clients.
+
+
+
+
+ Connection type describing PANU connection to a Bluetooth NAP (Network
+Access Point).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Indicates that the FCoE controller should use "fabric" mode (default)
+
+
+
+
+ Indicates that the FCoE controller should use "VN2VN" mode.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IPv4 configuration should be automatically determined via a method appropriate
+for the hardware interface, ie DHCP or PPP or some other device-specific
+manner.
+
+
+
+
+ This connection does not use or require IPv4 address and it should be disabled.
+
+
+
+
+ IPv4 configuration should be automatically configured for link-local-only
+operation.
+
+
+
+
+ All necessary IPv4 configuration (addresses, prefix, DNS, etc) is specified
+in the setting's properties.
+
+
+
+
+ This connection specifies configuration that allows other computers to
+connect through it to the default network (usually the Internet). The
+connection's interface will be assigned a private address, and a DHCP server,
+caching DNS server, and Network Address Translation (NAT) functionality will
+be started on this connection's interface to allow other devices to connect
+through that interface to the default network.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IPv6 configuration should be automatically determined via a method appropriate
+for the hardware interface, ie router advertisements, DHCP, or PPP or some
+other device-specific manner.
+
+
+
+
+ IPv6 configuration should be automatically determined via DHCPv6 only and
+router advertisements should be ignored.
+
+
+
+
+ IPv6 is disabled for the connection.
+
+
+
+
+ IPv6 is not required or is handled by some other mechanism, and NetworkManager
+should not configure IPv6 for this connection.
+
+
+
+
+ IPv6 configuration should be automatically configured for link-local-only
+operation.
+
+
+
+
+ All necessary IPv6 configuration (addresses, prefix, DNS, etc) is specified
+in the setting's properties.
+
+
+
+
+ This connection specifies configuration that allows other computers to
+connect through it to the default network (usually the Internet). The
+connection's interface will be assigned a private address, and router
+advertisements, a caching DNS server, and Network Address Translation (NAT)
+functionality will be started on this connection's interface to allow other
+devices to connect through that interface to the default network. (not yet
+supported for IPv6)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The mac address of the peer to connect to.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Indicates Ad-Hoc mode where no access point is expected to be present.
+
+
+
+
+ Indicates AP/master mode where the wireless device is started as an access
+point/hotspot.
+
+
+
+
+ Indicates infrastructure mode where an access point is expected to be present
+for this connection.
+
+
+
+
+ Indicates that the connection should create a mesh point.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #NMSecretAgentCapabilities indicate various capabilities of the agent.
+
+ the agent supports no special capabilities
+
+
+ the agent supports passing hints to
+VPN plugin authentication dialogs.
+
+
+ bounds checking value; should not be used.
+
+
+
+ #NMSecretAgentError values are passed by secret agents back to NetworkManager
+when they encounter problems retrieving secrets on behalf of NM. They
+correspond to errors in the "org.freedesktop.NetworkManager.SecretManager"
+namespace.
+
+Client APIs such as nm_client_activate_connection() will not see these error
+codes; instead, the secret agent manager will translate them to the
+corresponding #NMAgentManagerError codes.
+
+ unknown or unclassified error
+
+
+ the caller (ie, NetworkManager) is
+ not authorized to make this request
+
+
+ the connection for which secrets
+ were requested is invalid
+
+
+ the request was canceled by the user
+
+
+ the agent canceled the request
+ because it was requested to do so by NetworkManager
+
+
+ the agent cannot find any secrets for this
+ connection
+
+
+
+
+
+
+
+
+ #NMSecretAgentGetSecretsFlags values modify the behavior of a GetSecrets request.
+
+ no special behavior; by default no
+ user interaction is allowed and requests for secrets are fulfilled from
+ persistent storage, or if no secrets are available an error is returned.
+
+
+ allows the request to
+ interact with the user, possibly prompting via UI for secrets if any are
+ required, or if none are found in persistent storage.
+
+
+ explicitly prompt for new
+ secrets from the user. This flag signals that NetworkManager thinks any
+ existing secrets are invalid or wrong. This flag implies that interaction
+ is allowed.
+
+
+ set if the request was
+ initiated by user-requested action via the D-Bus interface, as opposed to
+ automatically initiated by NetworkManager in response to (for example) scan
+ results or carrier changes.
+
+
+ indicates that WPS enrollment
+ is active with PBC method. The agent may suggest that the user pushes a button
+ on the router instead of supplying a PSK.
+
+
+ Internal flag, not part of
+ the D-Bus API.
+
+
+ Internal flag, not part of
+ the D-Bus API.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Asynchronously asks the agent to delete all saved secrets belonging to
+@connection.
+
+
+
+
+
+
+ a #NMSecretAgentOld
+
+
+
+ a #NMConnection
+
+
+
+
+
+
+ a callback, to be invoked when the operation is done
+
+
+
+ caller-specific data to be passed to @callback
+
+
+
+
+
+ Asynchronously retrieves secrets belonging to @connection for the
+setting @setting_name. @flags indicate specific behavior that the secret
+agent should use when performing the request, for example returning only
+existing secrets without user interaction, or requesting entirely new
+secrets from the user.
+
+
+
+
+
+
+ a #NMSecretAgentOld
+
+
+
+ the #NMConnection for which we're asked secrets
+
+
+
+
+
+
+ the name of the secret setting
+
+
+
+ hints to the agent
+
+
+
+
+
+ flags that modify the behavior of the request
+
+
+
+ a callback, to be invoked when the operation is done
+
+
+
+ caller-specific data to be passed to @callback
+
+
+
+
+
+ Asynchronously ensures that all secrets inside @connection are stored to
+disk.
+
+
+
+
+
+
+ a #NMSecretAgentOld
+
+
+
+ a #NMConnection
+
+
+
+
+
+
+ a callback, to be invoked when the operation is done
+
+
+
+ caller-specific data to be passed to @callback
+
+
+
+
+
+ Asynchronously asks the agent to delete all saved secrets belonging to
+@connection.
+
+
+
+
+
+
+ a #NMSecretAgentOld
+
+
+
+ a #NMConnection
+
+
+
+ a callback, to be invoked when the operation is done
+
+
+
+ caller-specific data to be passed to @callback
+
+
+
+
+
+ Since 1.24, the instance will already register a D-Bus object on the
+D-Bus connection during initialization. That object will stay registered
+until @self gets unrefed (destroyed) or this function is called. This
+function performs the necessary cleanup to tear down the instance. Afterwards,
+the function can not longer be used. This is optional, but necessary to
+ensure unregistering the D-Bus object at a define point, when other users
+might still have a reference on @self.
+
+You may call this function any time and repeatedly. However, after destroying
+the instance, it is a bug to still use the instance for other purposes. The
+instance becomes defunct and cannot re-register.
+
+
+
+
+
+
+ the #NMSecretAgentOld instance.
+
+
+
+
+
+ This has the same effect as setting %NM_SECRET_AGENT_OLD_AUTO_REGISTER
+property.
+
+Unlike most other functions, you may already call this function before
+initialization completes.
+
+
+
+
+
+
+ the #NMSecretAgentOld instance
+
+
+
+ whether to enable or disable the listener.
+
+
+
+
+
+ Returns a #GObject that stays alive as long as there are pending
+requests in the #GDBusConnection. Such requests keep the #GMainContext
+alive, and thus you may want to keep iterating the context as long
+until a weak reference indicates that this object is gone. This is
+useful because even when you destroy the instance right away (and all
+the internally pending requests get cancelled), any pending g_dbus_connection_call()
+requests will still invoke the result on the #GMainContext. Hence, this
+allows you to know how long you must iterate the context to know
+that all remains are cleaned up.
+
+
+ a #GObject that you may register a weak pointer
+ to know that the #GMainContext is still kept busy by @self.
+
+
+
+
+ the #NMSecretAgentOld instance
+
+
+
+
+
+
+
+ the #GDBusConnection used by the secret agent.
+ You may either set this as construct property %NM_SECRET_AGENT_OLD_DBUS_CONNECTION,
+ or it will automatically set during initialization.
+
+
+
+
+ the #NMSecretAgentOld instance
+
+
+
+
+
+
+
+ the current D-Bus name owner. While this property
+ is set while registering, it really only makes sense when
+ the nm_secret_agent_old_get_registered() indicates that
+ registration is successful.
+
+
+
+
+ the #NMSecretAgentOld instance
+
+
+
+
+
+
+
+ the #GMainContext instance associate with the
+ instance. This is the g_main_context_get_thread_default() at the time
+ when creating the instance.
+
+
+
+
+ the #NMSecretAgentOld instance
+
+
+
+
+
+ Note that the secret agent transparently registers and re-registers
+as the D-Bus name owner appears. Hence, this property is not really
+useful. Also, to be graceful against races during registration, the
+instance will already accept requests while being in the process of
+registering.
+If you need to avoid races and want to wait until @self is registered,
+call nm_secret_agent_old_register_async(). If that function completes
+with success, you know the instance is registered.
+
+
+ a %TRUE if the agent is registered, %FALSE if it is not.
+
+
+
+
+ a #NMSecretAgentOld
+
+
+
+
+
+ Asynchronously retrieves secrets belonging to @connection for the
+setting @setting_name. @flags indicate specific behavior that the secret
+agent should use when performing the request, for example returning only
+existing secrets without user interaction, or requesting entirely new
+secrets from the user.
+
+
+
+
+
+
+ a #NMSecretAgentOld
+
+
+
+ the #NMConnection for which we're asked secrets
+
+
+
+ the name of the secret setting
+
+
+
+ hints to the agent
+
+
+
+
+
+ flags that modify the behavior of the request
+
+
+
+ a callback, to be invoked when the operation is done
+
+
+
+ caller-specific data to be passed to @callback
+
+
+
+
+
+ Registers the #NMSecretAgentOld with the NetworkManager secret manager,
+indicating to NetworkManager that the agent is able to provide and save
+secrets for connections on behalf of its user.
+ Use nm_secret_agent_old_enable() or nm_secret_agent_old_register_async().
+
+
+ %TRUE if registration was successful, %FALSE on error.
+
+Since 1.24, this can no longer fail unless the @cancellable gets
+cancelled. Contrary to nm_secret_agent_old_register_async(), this also
+does not wait for the registration to succeed. You cannot synchronously
+(without iterating the caller's GMainContext) wait for registration.
+
+Since 1.24, registration is idempotent. It has the same effect as setting
+%NM_SECRET_AGENT_OLD_AUTO_REGISTER to %TRUE or nm_secret_agent_old_enable().
+
+
+
+
+ a #NMSecretAgentOld
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+
+
+ Asynchronously registers the #NMSecretAgentOld with the NetworkManager secret
+manager, indicating to NetworkManager that the agent is able to provide and
+save secrets for connections on behalf of its user.
+
+Since 1.24, registration cannot fail and is idempotent. It has
+the same effect as setting %NM_SECRET_AGENT_OLD_AUTO_REGISTER to %TRUE
+or nm_secret_agent_old_enable().
+
+Since 1.24, the asynchronous result indicates whether the instance is successfully
+registered. In any case, this call enables the agent and it will automatically
+try to register and handle secret requests. A failure of this function only indicates
+that currently the instance might not be ready (but since it will automatically
+try to recover, it might be ready in a moment afterwards). Use this function if
+you want to check and ensure that the agent is registered.
+
+
+
+
+
+
+ a #NMSecretAgentOld
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ callback to call when the agent is registered
+
+
+
+ data for @callback
+
+
+
+
+
+ Gets the result of a call to nm_secret_agent_old_register_async().
+
+
+ %TRUE if registration was successful, %FALSE on error.
+
+Since 1.24, registration cannot fail and is idempotent. It has
+the same effect as setting %NM_SECRET_AGENT_OLD_AUTO_REGISTER to %TRUE
+or nm_secret_agent_old_enable().
+
+
+
+
+ a #NMSecretAgentOld
+
+
+
+ the result passed to the #GAsyncReadyCallback
+
+
+
+
+
+ Asynchronously ensures that all secrets inside @connection are stored to
+disk.
+
+
+
+
+
+
+ a #NMSecretAgentOld
+
+
+
+ a #NMConnection
+
+
+
+ a callback, to be invoked when the operation is done
+
+
+
+ caller-specific data to be passed to @callback
+
+
+
+
+
+ Unregisters the #NMSecretAgentOld with the NetworkManager secret manager,
+indicating to NetworkManager that the agent will no longer provide or
+store secrets on behalf of this user.
+ Use nm_secret_agent_old_enable().
+
+
+ %TRUE if unregistration was successful, %FALSE on error
+
+Since 1.24, registration cannot fail and is idempotent. It has
+the same effect as setting %NM_SECRET_AGENT_OLD_AUTO_REGISTER to %FALSE
+or nm_secret_agent_old_enable().
+
+
+
+
+ a #NMSecretAgentOld
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+
+
+ Asynchronously unregisters the #NMSecretAgentOld with the NetworkManager secret
+manager, indicating to NetworkManager that the agent will no longer provide
+or store secrets on behalf of this user.
+
+Since 1.24, registration cannot fail and is idempotent. It has
+the same effect as setting %NM_SECRET_AGENT_OLD_AUTO_REGISTER to %FALSE
+or nm_secret_agent_old_enable().
+ Use nm_secret_agent_old_enable().
+
+
+
+
+
+
+ a #NMSecretAgentOld
+
+
+
+ a #GCancellable, or %NULL
+
+
+
+ callback to call when the agent is unregistered
+
+
+
+ data for @callback
+
+
+
+
+
+ Gets the result of a call to nm_secret_agent_old_unregister_async().
+ Use nm_secret_agent_old_enable().
+
+
+ %TRUE if unregistration was successful, %FALSE on error.
+
+Since 1.24, registration cannot fail and is idempotent. It has
+the same effect as setting %NM_SECRET_AGENT_OLD_AUTO_REGISTER to %FALSE
+or nm_secret_agent_old_enable().
+
+
+
+
+ a #NMSecretAgentOld
+
+
+
+ the result passed to the #GAsyncReadyCallback
+
+
+
+
+
+ If %TRUE (the default), the agent will always be registered when
+NetworkManager is running; if NetworkManager exits and restarts, the
+agent will re-register itself automatically.
+
+In particular, if this property is %TRUE at construct time, then the
+agent will register itself with NetworkManager during
+construction/initialization and initialization will only complete
+after registration is completed (either successfully or unsuccessfully).
+Since 1.24, a failure to register will no longer cause initialization
+of #NMSecretAgentOld to fail.
+
+If the property is %FALSE, the agent will not automatically register with
+NetworkManager, and nm_secret_agent_old_enable() or
+nm_secret_agent_old_register_async() must be called to register it.
+
+Calling nm_secret_agent_old_enable() has the same effect as setting this
+property.
+
+
+
+ A bitfield of %NMSecretAgentCapabilities.
+
+Changing this property is possible at any time. In case the secret
+agent is currently registered, this will cause a re-registration.
+
+
+
+ The #GDBusConnection used by the instance. You may either set this
+as construct-only property, or otherwise #NMSecretAgentOld will choose
+a connection via g_bus_get() during initialization.
+
+
+
+ Identifies this agent; only one agent in each user session may use the
+same identifier. Identifier formatting follows the same rules as
+D-Bus bus names with the exception that the ':' character is not
+allowed. The valid set of characters is "[A-Z][a-z][0-9]_-." and the
+identifier is limited in length to 255 characters with a minimum
+of 3 characters. An example valid identifier is 'org.gnome.nm-applet'
+(without quotes).
+
+
+
+ %TRUE if the agent is registered with NetworkManager, %FALSE if not.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ a #NMSecretAgentOld
+
+
+
+ the #NMConnection for which we're asked secrets
+
+
+
+
+
+
+ the name of the secret setting
+
+
+
+ hints to the agent
+
+
+
+
+
+ flags that modify the behavior of the request
+
+
+
+ a callback, to be invoked when the operation is done
+
+
+
+ caller-specific data to be passed to @callback
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ a #NMSecretAgentOld
+
+
+
+ a #NMConnection
+
+
+
+
+
+
+ a callback, to be invoked when the operation is done
+
+
+
+ caller-specific data to be passed to @callback
+
+
+
+
+
+
+
+
+
+
+
+
+
+ a #NMSecretAgentOld
+
+
+
+ a #NMConnection
+
+
+
+
+
+
+ a callback, to be invoked when the operation is done
+
+
+
+ caller-specific data to be passed to @callback
+
+
+
+
+
+
+
+
+
+
+
+
+ Called as a result of a request by NM to delete secrets. When the
+#NMSecretAgentOld subclass has finished deleting the secrets, this function
+should be called.
+
+
+
+
+
+
+ the secret agent object
+
+
+
+ the connection for which secrets were to be deleted,
+note that this object will be unrefed after the callback has returned, use
+g_object_ref()/g_object_unref() if you want to use this object after the callback
+has returned
+
+
+
+ if the deleting secrets failed, give a descriptive error here
+
+
+
+ caller-specific data to be passed to the function
+
+
+
+
+
+ Called as a result of a request by NM to retrieve secrets. When the
+#NMSecretAgentOld subclass has finished retrieving secrets and is ready to
+return them, or to return an error, this function should be called with
+those secrets or the error.
+
+To easily create the dictionary to return the Wi-Fi PSK, you could do
+something like this:
+<example>
+ <title>Creating a secrets dictionary</title>
+ <programlisting>
+ NMConnection *secrets;
+ NMSettingWirelessSecurity *s_wsec;
+ GVariant *secrets_dict;
+
+ secrets = nm_simple_connection_new ();
+ s_wsec = (NMSettingWirelessSecurity *) nm_setting_wireless_security_new ();
+ g_object_set (G_OBJECT (s_wsec),
+ NM_SETTING_WIRELESS_SECURITY_PSK, "my really cool PSK",
+ NULL);
+ nm_connection_add_setting (secrets, NM_SETTING (s_wsec));
+ secrets_dict = nm_connection_to_dbus (secrets, NM_CONNECTION_SERIALIZE_ALL);
+
+ (call the NMSecretAgentOldGetSecretsFunc with secrets_dict)
+
+ g_object_unref (secrets);
+ g_variant_unref (secrets_dict);
+ </programlisting>
+</example>
+
+
+
+
+
+
+ the secret agent object
+
+
+
+ the connection for which secrets were requested,
+note that this object will be unrefed after the callback has returned, use
+g_object_ref()/g_object_unref() if you want to use this object after the callback
+has returned
+
+
+
+ the #GVariant of type %NM_VARIANT_TYPE_CONNECTION containing the requested
+secrets (as created by nm_connection_to_dbus() for example). Each key in @secrets
+should be the name of a #NMSetting object (like "802-11-wireless-security")
+and each value should be an %NM_VARIANT_TYPE_SETTING variant. The sub-dicts
+map string:value, where the string is the setting property name (like "psk")
+and the value is the secret
+
+
+
+ if the secrets request failed, give a descriptive error here
+
+
+
+ caller-specific data to be passed to the function
+
+
+
+
+
+ Called as a result of a request by NM to save secrets. When the
+#NMSecretAgentOld subclass has finished saving the secrets, this function
+should be called.
+
+
+
+
+
+
+ the secret agent object
+
+
+
+ the connection for which secrets were to be saved,
+note that this object will be unrefed after the callback has returned, use
+g_object_ref()/g_object_unref() if you want to use this object after the callback
+has returned
+
+
+
+ if the saving secrets failed, give a descriptive error here
+
+
+
+ caller-specific data to be passed to the function
+
+
+
+
+
+
+
+ Get the type of the enum that defines the values that the property accepts. It is only
+useful for properties configured to accept values from certain enum type, otherwise
+it will return %G_TYPE_INVALID. Note that flags (children of G_TYPE_FLAGS) are also
+considered enums.
+
+Note that the GObject property might be implemented as an integer, actually, and not
+as enum. Find out what underlying type is used, checking the #GParamSpec, before
+setting the GObject property.
+
+
+ the enum's GType, or %G_TYPE_INVALID if the property is not of enum type
+
+
+
+
+ the GType of the NMSetting instance
+
+
+
+ the name of the property
+
+
+
+
+
+ Returns the #GType of the setting's class for a given setting name.
+
+
+ the #GType of the setting's class, or %G_TYPE_INVALID if
+ @name is not recognized.
+
+
+
+
+ a setting name
+
+
+
+
+
+ Compares two #NMSetting objects for similarity, with comparison behavior
+modified by a set of flags. See the documentation for #NMSettingCompareFlags
+for a description of each flag's behavior.
+
+
+ %TRUE if the comparison succeeds, %FALSE if it does not
+
+
+
+
+ a #NMSetting
+
+
+
+ a second #NMSetting to compare with the first
+
+
+
+ compare flags, e.g. %NM_SETTING_COMPARE_FLAG_EXACT
+
+
+
+
+
+ Compares two #NMSetting objects for similarity, with comparison behavior
+modified by a set of flags. See the documentation for #NMSettingCompareFlags
+for a description of each flag's behavior. If the settings differ, the keys
+of each setting that differ from the other are added to @results, mapped to
+one or more #NMSettingDiffResult values.
+
+
+ %TRUE if the settings contain the same values, %FALSE if they do not
+
+
+
+
+ a #NMSetting
+
+
+
+ a second #NMSetting to compare with the first
+
+
+
+ compare flags, e.g. %NM_SETTING_COMPARE_FLAG_EXACT
+
+
+
+ this parameter is used internally by libnm and should
+be set to %FALSE. If %TRUE inverts the meaning of the #NMSettingDiffResult.
+
+
+
+ if the
+settings differ, on return a hash table mapping the differing keys to one or
+more %NMSettingDiffResult values OR-ed together. If the settings do not
+differ, any hash table passed in is unmodified. If no hash table is passed
+in and the settings differ, a new one is created and returned.
+
+
+
+
+
+
+
+
+ Duplicates a #NMSetting.
+
+
+ a new #NMSetting containing the same properties and values as the
+source #NMSetting
+
+
+
+
+ the #NMSetting to duplicate
+
+
+
+
+
+ Iterates over each property of the #NMSetting object, calling the supplied
+user function for each property.
+
+
+
+
+
+
+ the #NMSetting
+
+
+
+ user-supplied function called for each property of the setting
+
+
+
+ user data passed to @func at each invocation
+
+
+
+
+
+ Gets the D-Bus marshalling type of a property. @property_name is a D-Bus
+property name, which may not necessarily be a #GObject property.
+
+
+ the D-Bus marshalling type of @property on @setting.
+
+
+
+
+ an #NMSetting
+
+
+
+ the property of @setting to get the type of
+
+
+
+
+
+ Returns the type name of the #NMSetting object
+
+
+ a string containing the type name of the #NMSetting object,
+like 'ppp' or 'wireless' or 'wired'.
+
+
+
+
+ the #NMSetting
+
+
+
+
+
+ For a given secret, retrieves the #NMSettingSecretFlags describing how to
+handle that secret.
+
+
+ %TRUE on success (if the given secret name was a valid property of
+this setting, and if that property is secret), %FALSE if not
+
+
+
+
+ the #NMSetting
+
+
+
+ the secret key name to get flags for
+
+
+
+ on success, the #NMSettingSecretFlags for the secret
+
+
+
+
+
+
+
+
+
+
+
+ the #NMSetting
+
+
+
+ the predicate for which names
+ should be clear.
+ If the predicate returns %TRUE for an option name, the option
+ gets removed. If %NULL, all options will be removed.
+
+
+
+
+
+
+
+ the #GVariant or %NULL if the option
+ is not set.
+
+
+
+
+ the #NMSetting
+
+
+
+ the option name to request.
+
+
+
+
+
+ Gives the name of all set options.
+
+
+
+ A %NULL terminated array of key names. If no names are present, this returns
+ %NULL. The returned array and the names are owned by %NMSetting and might be invalidated
+ by the next operation.
+
+
+
+
+
+
+ the #NMSetting
+
+
+
+
+
+
+
+
+
+
+ %TRUE if @opt_name is set to a boolean variant.
+
+
+
+
+ the #NMSetting
+
+
+
+ the option to get
+
+
+
+ the optional output value.
+ If the option is unset, %FALSE will be returned.
+
+
+
+
+
+
+
+ %TRUE if @opt_name is set to a uint32 variant.
+
+
+
+
+ the #NMSetting
+
+
+
+ the option to get
+
+
+
+ the optional output value.
+ If the option is unset, 0 will be returned.
+
+
+
+
+
+ If @variant is %NULL, this clears the option if it is set.
+Otherwise, @variant is set as the option. If @variant is
+a floating reference, it will be consumed.
+
+Note that not all setting types support options. It is a bug
+setting a variant to a setting that doesn't support it.
+Currently, only #NMSettingEthtool supports it.
+
+
+
+
+
+
+ the #NMSetting
+
+
+
+ the option name to set
+
+
+
+ the variant to set.
+
+
+
+
+
+ Like nm_setting_option_set() to set a boolean GVariant.
+
+
+
+
+
+
+ the #NMSetting
+
+
+
+
+
+
+ the value to set.
+
+
+
+
+
+ Like nm_setting_option_set() to set a uint32 GVariant.
+
+
+
+
+
+
+ the #NMSetting
+
+
+
+
+
+
+ the value to set.
+
+
+
+
+
+ For a given secret, stores the #NMSettingSecretFlags describing how to
+handle that secret.
+
+
+ %TRUE on success (if the given secret name was a valid property of
+this setting, and if that property is secret), %FALSE if not
+
+
+
+
+ the #NMSetting
+
+
+
+ the secret key name to set flags for
+
+
+
+ the #NMSettingSecretFlags for the secret
+
+
+
+
+
+ Convert the setting (including secrets!) into a string. For debugging
+purposes ONLY, should NOT be used for serialization of the setting,
+or machine-parsed in any way. The output format is not guaranteed to
+be stable and may change at any time.
+
+
+ an allocated string containing a textual representation of the
+setting's properties and values, which the caller should
+free with g_free()
+
+
+
+
+ the #NMSetting
+
+
+
+
+
+ Validates the setting. Each setting's properties have allowed values, and
+some are dependent on other values (hence the need for @connection). The
+returned #GError contains information about which property of the setting
+failed validation, and in what way that property failed validation.
+
+
+ %TRUE if the setting is valid, %FALSE if it is not
+
+
+
+
+ the #NMSetting to verify
+
+
+
+ the #NMConnection that @setting came from, or
+ %NULL if @setting is being verified in isolation.
+
+
+
+
+
+ Verifies the secrets in the setting.
+The returned #GError contains information about which secret of the setting
+failed validation, and in what way that secret failed validation.
+The secret validation is done separately from main setting validation, because
+in some cases connection failure is not desired just for the secrets.
+
+
+ %TRUE if the setting secrets are valid, %FALSE if they are not
+
+
+
+
+ the #NMSetting to verify secrets in
+
+
+
+ the #NMConnection that @setting came from, or
+ %NULL if @setting is being verified in isolation.
+
+
+
+
+
+ The setting's name, which uniquely identifies the setting within the
+connection. Each setting type has a name unique to that type, for
+example "ppp" or "802-11-wireless" or "802-3-ethernet".
+
+
+
+
+ 6LoWPAN Settings
+
+
+ Creates a new #NMSetting6Lowpan object with default values.
+
+
+ the new empty #NMSetting6Lowpan object
+
+
+
+
+
+
+ the #NMSetting6Lowpan:parent property of the setting
+
+
+
+
+ the #NMSetting6Lowpan
+
+
+
+
+
+ If given, specifies the parent interface name or parent connection UUID
+from which this 6LowPAN interface should be created.
+
+
+
+
+
+
+
+ IEEE 802.1x Authentication Settings
+
+
+ Creates a new #NMSetting8021x object with default values.
+
+
+ the new empty #NMSetting8021x object
+
+
+
+
+ Determines and verifies the blob type.
+When setting certificate properties of NMSetting8021x
+the blob must be not UNKNOWN (or NULL).
+
+
+ the scheme of the blob or %NM_SETTING_802_1X_CK_SCHEME_UNKNOWN.
+For NULL it also returns NM_SETTING_802_1X_CK_SCHEME_UNKNOWN.
+
+
+
+
+ the data pointer
+
+
+
+ the length of the data
+
+
+
+
+
+ Adds an allowed alternate subject name match. Until at least one
+match is added, the altSubjectName of the remote authentication
+server is not verified.
+
+
+ %TRUE if the alternative subject name match was
+ successfully added, %FALSE if it was already allowed.
+
+
+
+
+ the #NMSetting8021x
+
+
+
+ the altSubjectName to allow for this connection
+
+
+
+
+
+ Adds an allowed EAP method. The setting is not valid until at least one
+EAP method has been added. See #NMSetting8021x:eap property for a list of
+allowed EAP methods.
+
+
+ %TRUE if the EAP method was successfully added, %FALSE if it was
+ not a valid method or if it was already allowed.
+
+
+
+
+ the #NMSetting8021x
+
+
+
+ the name of the EAP method to allow for this connection
+
+
+
+
+
+ Adds an allowed alternate subject name match for "phase 2". Until
+at least one match is added, the altSubjectName of the "phase 2"
+remote authentication server is not verified.
+
+
+ %TRUE if the "phase 2" alternative subject name match was
+ successfully added, %FALSE if it was already allowed.
+
+
+
+
+ the #NMSetting8021x
+
+
+
+ the "phase 2" altSubjectName to allow for this
+connection
+
+
+
+
+
+ Clears all altSubjectName matches.
+
+
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Clears all allowed EAP methods.
+
+
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Clears all "phase 2" altSubjectName matches.
+
+
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Returns the altSubjectName match at index @i.
+
+
+ the altSubjectName match at index @i
+
+
+
+
+ the #NMSettingConnection
+
+
+
+ the zero-based index of the array of altSubjectName matches
+
+
+
+
+
+ Returns the anonymous identifier used by some EAP methods (like TTLS) to
+authenticate the user in the outer unencrypted "phase 1" authentication. The
+inner "phase 2" authentication will use the #NMSetting8021x:identity in
+a secure form, if applicable for that EAP method.
+
+
+ the anonymous identifier
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Returns the value contained in the #NMSetting8021x:auth-timeout property.
+
+
+ the configured authentication timeout in seconds. Zero means the
+global default value.
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Returns the CA certificate blob if the CA certificate is stored using the
+%NM_SETTING_802_1X_CK_SCHEME_BLOB scheme. Not all EAP methods use a
+CA certificate (LEAP for example), and those that can take advantage of the
+CA certificate allow it to be unset. Note that lack of a CA certificate
+reduces security by allowing man-in-the-middle attacks, because the identity
+of the network cannot be confirmed by the client.
+
+
+ the CA certificate data
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+
+
+ the password used to access the CA certificate stored in
+#NMSetting8021x:ca-cert property. Only makes sense if the certificate
+is stored on a PKCS#<!-- -->11 token that requires a login.
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+
+
+ the #NMSettingSecretFlags pertaining to the
+#NMSetting8021x:ca-cert-password
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Returns the CA certificate path if the CA certificate is stored using the
+%NM_SETTING_802_1X_CK_SCHEME_PATH scheme. Not all EAP methods use a
+CA certificate (LEAP for example), and those that can take advantage of the
+CA certificate allow it to be unset. Note that lack of a CA certificate
+reduces security by allowing man-in-the-middle attacks, because the identity
+of the network cannot be confirmed by the client.
+
+
+ path to the CA certificate file
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Returns the scheme used to store the CA certificate. If the returned scheme
+is %NM_SETTING_802_1X_CK_SCHEME_BLOB, use nm_setting_802_1x_get_ca_cert_blob();
+if %NM_SETTING_802_1X_CK_SCHEME_PATH, use nm_setting_802_1x_get_ca_cert_path();
+if %NM_SETTING_802_1X_CK_SCHEME_PKCS11, use nm_setting_802_1x_get_ca_cert_uri().
+
+
+ scheme used to store the CA certificate (blob or path)
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Returns the CA certificate URI analogously to
+nm_setting_802_1x_get_ca_cert_blob() and
+nm_setting_802_1x_get_ca_cert_path().
+
+Currently, it's limited to PKCS#11 URIs ('pkcs11' scheme as defined by RFC
+7512), but may be extended to other schemes in future (such as 'file' URIs
+for local files and 'data' URIs for inline certificate data).
+
+
+ the URI string
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Returns the path of the CA certificate directory if previously set. Systems
+will often have a directory that contains multiple individual CA certificates
+which the supplicant can then add to the verification chain. This may be
+used in addition to the #NMSetting8021x:ca-cert property to add more CA
+certificates for verifying the network to client.
+
+
+ the CA certificate directory path
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Client certificates are used to identify the connecting client to the network
+when EAP-TLS is used as either the "phase 1" or "phase 2" 802.1x
+authentication method.
+
+
+ the client certificate data
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+
+
+ the password used to access the client certificate stored in
+#NMSetting8021x:client-cert property. Only makes sense if the certificate
+is stored on a PKCS#<!-- -->11 token that requires a login.
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+
+
+ the #NMSettingSecretFlags pertaining to the
+#NMSetting8021x:client-cert-password
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Client certificates are used to identify the connecting client to the network
+when EAP-TLS is used as either the "phase 1" or "phase 2" 802.1x
+authentication method.
+
+
+ path to the client certificate file
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Returns the scheme used to store the client certificate. If the returned scheme
+is %NM_SETTING_802_1X_CK_SCHEME_BLOB, use nm_setting_802_1x_get_client_cert_blob();
+if %NM_SETTING_802_1X_CK_SCHEME_PATH, use nm_setting_802_1x_get_client_cert_path();
+if %NM_SETTING_802_1X_CK_SCHEME_PKCS11, use nm_setting_802_1x_get_client_cert_uri().
+
+
+ scheme used to store the client certificate (blob or path)
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Returns the client certificate URI analogously to
+nm_setting_802_1x_get_client_cert_blob() and
+nm_setting_802_1x_get_client_cert_path().
+
+Currently, it's limited to PKCS#11 URIs ('pkcs11' scheme as defined by RFC
+7512), but may be extended to other schemes in future (such as 'file' URIs
+for local files and 'data' URIs for inline certificate data).
+
+
+ the URI string
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+
+
+ the #NMSetting8021x:domain-match property.
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+
+
+ the #NMSetting8021x:domain-suffix-match property.
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Returns the name of the allowed EAP method at index @i.
+
+
+ the name of the allowed EAP method at index @i
+
+
+
+
+ the #NMSetting8021x
+
+
+
+ the index of the EAP method name to return
+
+
+
+
+
+ Returns the identifier used by some EAP methods (like TLS) to
+authenticate the user. Often this is a username or login name.
+
+
+ the user identifier
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Returns the number of entries in the
+#NMSetting8021x:altsubject-matches property of this setting.
+
+
+ the number of altsubject-matches entries.
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Returns the number of eap methods allowed for use when connecting to the
+network. Generally only one EAP method is used. Use the functions
+nm_setting_802_1x_get_eap_method(), nm_setting_802_1x_add_eap_method(),
+and nm_setting_802_1x_remove_eap_method() for adding, removing, and retrieving
+allowed EAP methods.
+
+
+ the number of allowed EAP methods
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Returns the number of entries in the
+#NMSetting8021x:phase2-altsubject-matches property of this setting.
+
+
+ the number of phase2-altsubject-matches entries.
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Returns the value contained in the #NMSetting8021x:optional property.
+
+
+ %TRUE if the activation should proceed even when the 802.1X
+ authentication fails; %FALSE otherwise
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Returns the file containing PAC credentials used by EAP-FAST method.
+
+
+ the PAC file
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+
+
+ the password used by the authentication method, if any, as specified
+ by the #NMSetting8021x:password property
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+
+
+ the #NMSettingSecretFlags pertaining to the #NMSetting8021x:password
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+
+
+ the password used by the authentication method as a
+UTF-8-encoded array of bytes, as specified by the
+#NMSetting8021x:password-raw property
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+
+
+ the #NMSettingSecretFlags pertaining to the
+ #NMSetting8021x:password-raw
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+
+
+ the authentication flags for "phase 1".
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+
+
+ whether "phase 1" PEAP fast provisioning should be used, as specified
+ by the #NMSetting8021x:phase1-fast-provisioning property. See the
+ wpa_supplicant documentation for more details.
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+
+
+ whether the "phase 1" PEAP label is new-style or old-style, to be
+ used when authenticating with EAP-PEAP, as contained in the
+ #NMSetting8021x:phase1-peaplabel property. Valid values are %NULL (unset),
+ "0" (use old-style label), and "1" (use new-style label). See the
+ wpa_supplicant documentation for more details.
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+
+
+ the "phase 1" PEAP version to be used when authenticating with
+ EAP-PEAP as contained in the #NMSetting8021x:phase1-peapver property. Valid
+ values are %NULL (unset), "0" (PEAP version 0), and "1" (PEAP version 1).
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Returns the "phase 2" altSubjectName match at index @i.
+
+
+ the "phase 2" altSubjectName match at index @i
+
+
+
+
+ the #NMSettingConnection
+
+
+
+ the zero-based index of the array of "phase 2" altSubjectName matches
+
+
+
+
+
+
+
+ the "phase 2" non-EAP (ex MD5) allowed authentication method as
+ specified by the #NMSetting8021x:phase2-auth property.
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+
+
+ the "phase 2" EAP-based (ex TLS) allowed authentication method as
+ specified by the #NMSetting8021x:phase2-autheap property.
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Returns the "phase 2" CA certificate blob if the CA certificate is stored
+using the %NM_SETTING_802_1X_CK_SCHEME_BLOB scheme. Not all EAP methods use
+a CA certificate (LEAP for example), and those that can take advantage of the
+CA certificate allow it to be unset. Note that lack of a CA certificate
+reduces security by allowing man-in-the-middle attacks, because the identity
+of the network cannot be confirmed by the client.
+
+
+ the "phase 2" CA certificate data
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+
+
+ the password used to access the "phase2" CA certificate stored in
+#NMSetting8021x:phase2-ca-cert property. Only makes sense if the certificate
+is stored on a PKCS#<!-- -->11 token that requires a login.
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+
+
+ the #NMSettingSecretFlags pertaining to the
+#NMSetting8021x:phase2-private-key-password
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Returns the "phase 2" CA certificate path if the CA certificate is stored
+using the %NM_SETTING_802_1X_CK_SCHEME_PATH scheme. Not all EAP methods use
+a CA certificate (LEAP for example), and those that can take advantage of the
+CA certificate allow it to be unset. Note that lack of a CA certificate
+reduces security by allowing man-in-the-middle attacks, because the identity
+of the network cannot be confirmed by the client.
+
+
+ path to the "phase 2" CA certificate file
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Returns the scheme used to store the "phase 2" CA certificate. If the
+returned scheme is %NM_SETTING_802_1X_CK_SCHEME_BLOB, use
+nm_setting_802_1x_get_ca_cert_blob(); if %NM_SETTING_802_1X_CK_SCHEME_PATH,
+use nm_setting_802_1x_get_ca_cert_path(); if %NM_SETTING_802_1X_CK_SCHEME_PKCS11,
+use nm_setting_802_1x_get_ca_cert_uri().
+
+
+ scheme used to store the "phase 2" CA certificate (blob or path)
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Returns the "phase 2" CA certificate URI analogously to
+nm_setting_802_1x_get_phase2_ca_cert_blob() and
+nm_setting_802_1x_get_phase2_ca_cert_path().
+
+Currently, it's limited to PKCS#<!-- -->11 URIs ('pkcs11' scheme as defined by RFC
+7512), but may be extended to other schemes in future (such as 'file' URIs
+for local files and 'data' URIs for inline certificate data).
+
+
+ the URI string
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Returns the path of the "phase 2" CA certificate directory if previously set.
+Systems will often have a directory that contains multiple individual CA
+certificates which the supplicant can then add to the verification chain.
+This may be used in addition to the #NMSetting8021x:phase2-ca-cert property
+to add more CA certificates for verifying the network to client.
+
+
+ the "phase 2" CA certificate directory path
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Client certificates are used to identify the connecting client to the network
+when EAP-TLS is used as either the "phase 1" or "phase 2" 802.1x
+authentication method.
+
+
+ the "phase 2" client certificate data
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+
+
+ the password used to access the "phase2" client certificate stored in
+#NMSetting8021x:phase2-client-cert property. Only makes sense if the certificate
+is stored on a PKCS#<!-- -->11 token that requires a login.
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+
+
+ the #NMSettingSecretFlags pertaining to the
+#NMSetting8021x:phase2-client-cert-password
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Client certificates are used to identify the connecting client to the network
+when EAP-TLS is used as either the "phase 1" or "phase 2" 802.1x
+authentication method.
+
+
+ path to the "phase 2" client certificate file
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Returns the scheme used to store the "phase 2" client certificate. If the
+returned scheme is %NM_SETTING_802_1X_CK_SCHEME_BLOB, use
+nm_setting_802_1x_get_client_cert_blob(); if
+%NM_SETTING_802_1X_CK_SCHEME_PATH, use
+nm_setting_802_1x_get_client_cert_path(); if
+%NM_SETTING_802_1X_CK_SCHEME_PKCS11, use
+nm_setting_802_1x_get_client_cert_uri().
+
+
+ scheme used to store the "phase 2" client certificate (blob or path)
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Returns the "phase 2" client certificate URI analogously to
+nm_setting_802_1x_get_phase2_ca_cert_blob() and
+nm_setting_802_1x_get_phase2_ca_cert_path().
+
+Currently, it's limited to PKCS#<!-- -->11 URIs ('pkcs11' scheme as defined by RFC
+7512), but may be extended to other schemes in future (such as 'file' URIs
+for local files and 'data' URIs for inline certificate data).
+
+
+ the URI string
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+
+
+ the #NMSetting8021x:phase2-domain-match property.
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+
+
+ the #NMSetting8021x:phase2-domain-suffix-match property.
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Private keys are used to authenticate the connecting client to the network
+when EAP-TLS is used as either the "phase 1" or "phase 2" 802.1x
+authentication method.
+
+WARNING: the phase2 private key property is not a "secret" property, and thus
+unencrypted private key data may be readable by unprivileged users. Private
+keys should always be encrypted with a private key password.
+
+
+ the "phase 2" private key data
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+
+
+ the data format of the "phase 2" private key data stored in the
+ #NMSetting8021x:phase2-private-key property
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+
+
+ the private key password used to decrypt the private key if
+ previously set with nm_setting_802_1x_set_phase2_private_key() or the
+ #NMSetting8021x:phase2-private-key-password property.
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+
+
+ the #NMSettingSecretFlags pertaining to the
+#NMSetting8021x:phase2-private-key-password
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Private keys are used to authenticate the connecting client to the network
+when EAP-TLS is used as either the "phase 1" or "phase 2" 802.1x
+authentication method.
+
+
+ path to the "phase 2" private key file
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Returns the scheme used to store the "phase 2" private key. If the returned
+scheme is %NM_SETTING_802_1X_CK_SCHEME_BLOB, use
+nm_setting_802_1x_get_client_cert_blob(); if
+%NM_SETTING_802_1X_CK_SCHEME_PATH, use
+nm_setting_802_1x_get_client_cert_path(); if
+%NM_SETTING_802_1X_CK_SCHEME_PKCS11, use
+nm_setting_802_1x_get_client_cert_uri().
+
+
+ scheme used to store the "phase 2" private key (blob or path)
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Returns the "phase 2" private key URI analogously to
+nm_setting_802_1x_get_phase2_private_key_blob() and
+nm_setting_802_1x_get_phase2_private_key_path().
+
+Currently, it's limited to PKCS#<!-- -->11 URIs ('pkcs11' scheme as defined by RFC
+7512), but may be extended to other schemes in future (such as 'file' URIs
+for local files and 'data' URIs for inline certificate data).
+
+
+ the URI string
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+
+
+ the #NMSetting8021x:phase2-subject-match property. This is
+the substring to be matched against the subject of the "phase 2"
+authentication server certificate, or %NULL no subject verification
+is to be performed.
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+
+
+ the PIN used by the authentication method, if any, as specified
+ by the #NMSetting8021x:pin property
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+
+
+ the #NMSettingSecretFlags pertaining to the
+#NMSetting8021x:pin
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Private keys are used to authenticate the connecting client to the network
+when EAP-TLS is used as either the "phase 1" or "phase 2" 802.1x
+authentication method.
+
+WARNING: the private key property is not a "secret" property, and thus
+unencrypted private key data may be readable by unprivileged users. Private
+keys should always be encrypted with a private key password.
+
+
+ the private key data
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+
+
+ the data format of the private key data stored in the
+ #NMSetting8021x:private-key property
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+
+
+ the private key password used to decrypt the private key if
+ previously set with nm_setting_802_1x_set_private_key(), or the
+ #NMSetting8021x:private-key-password property.
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+
+
+ the #NMSettingSecretFlags pertaining to the
+#NMSetting8021x:private-key-password
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Private keys are used to authenticate the connecting client to the network
+when EAP-TLS is used as either the "phase 1" or "phase 2" 802.1x
+authentication method.
+
+
+ path to the private key file
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Returns the scheme used to store the private key. If the returned scheme is
+%NM_SETTING_802_1X_CK_SCHEME_BLOB, use
+nm_setting_802_1x_get_client_cert_blob(); if
+%NM_SETTING_802_1X_CK_SCHEME_PATH, use
+nm_setting_802_1x_get_client_cert_path(); if
+%NM_SETTING_802_1X_CK_SCHEME_PKCS11, use
+nm_setting_802_1x_get_client_cert_uri().
+
+
+ scheme used to store the private key (blob or path)
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Returns the private key URI analogously to
+nm_setting_802_1x_get_private_key_blob() and
+nm_setting_802_1x_get_private_key_path().
+
+Currently, it's limited to PKCS#<!-- -->11 URIs ('pkcs11' scheme as defined by RFC
+7512), but may be extended to other schemes in future (such as 'file' URIs
+for local files and 'data' URIs for inline certificate data).
+
+
+ the URI string
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+
+
+ the #NMSetting8021x:subject-match property. This is the
+substring to be matched against the subject of the authentication
+server certificate, or %NULL no subject verification is to be
+performed.
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Sets the #NMSetting8021x:system-ca-certs property. The
+#NMSetting8021x:ca-path and #NMSetting8021x:phase2-ca-path
+properties are ignored if the #NMSetting8021x:system-ca-certs property is
+%TRUE, in which case a system-wide CA certificate directory specified at
+compile time (using the --system-ca-path configure option) is used in place
+of these properties.
+
+
+ %TRUE if a system CA certificate path should be used, %FALSE if not
+
+
+
+
+ the #NMSetting8021x
+
+
+
+
+
+ Removes the allowed altSubjectName at the specified index.
+
+
+
+
+
+
+ the #NMSetting8021x
+
+
+
+ the index of the altSubjectName match to remove
+
+
+
+
+
+ Removes the allowed altSubjectName @altsubject_match.
+
+
+ %TRUE if the alternative subject name match was found and removed,
+ %FALSE if it was not.
+
+
+
+
+ the #NMSetting8021x
+
+
+
+ the altSubjectName to remove
+
+
+
+
+
+ Removes the allowed EAP method at the specified index.
+
+
+
+
+
+
+ the #NMSetting8021x
+
+
+
+ the index of the EAP method to remove
+
+
+
+
+
+ Removes the allowed EAP method @method.
+
+
+ %TRUE if the EAP method was founs and removed, %FALSE if it was not.
+
+
+
+
+ the #NMSetting8021x
+
+
+
+ the name of the EAP method to remove
+
+
+
+
+
+ Removes the allowed "phase 2" altSubjectName at the specified index.
+
+
+
+
+
+
+ the #NMSetting8021x
+
+
+
+ the index of the "phase 2" altSubjectName match to remove
+
+
+
+
+
+ Removes the allowed "phase 2" altSubjectName @phase2_altsubject_match.
+
+
+ %TRUE if the alternative subject name match for "phase 2" was found and removed,
+ %FALSE if it was not.
+
+
+
+
+ the #NMSetting8021x
+
+
+
+ the "phase 2" altSubjectName to remove
+
+
+
+
+
+ Reads a certificate from disk and sets the #NMSetting8021x:ca-cert property
+with the raw certificate data if using the %NM_SETTING_802_1X_CK_SCHEME_BLOB
+scheme, or with the path to the certificate file if using the
+%NM_SETTING_802_1X_CK_SCHEME_PATH scheme.
+
+
+ %TRUE if the operation succeeded, %FALSE if it was unsuccessful
+
+
+
+
+ the #NMSetting8021x
+
+
+
+ when @scheme is set to either %NM_SETTING_802_1X_CK_SCHEME_PATH
+ or %NM_SETTING_802_1X_CK_SCHEME_BLOB, pass the path of the CA certificate
+ file (PEM or DER format). The path must be UTF-8 encoded; use
+ g_filename_to_utf8() to convert if needed. Passing %NULL with any @scheme
+ clears the CA certificate.
+
+
+
+ desired storage scheme for the certificate
+
+
+
+ on successful return, the type of the certificate added
+
+
+
+
+
+ Reads a certificate from disk and sets the #NMSetting8021x:client-cert
+property with the raw certificate data if using the
+%NM_SETTING_802_1X_CK_SCHEME_BLOB scheme, or with the path to the certificate
+file if using the %NM_SETTING_802_1X_CK_SCHEME_PATH scheme.
+
+Client certificates are used to identify the connecting client to the network
+when EAP-TLS is used as either the "phase 1" or "phase 2" 802.1x
+authentication method.
+
+
+ %TRUE if the operation succeeded, %FALSE if it was unsuccessful
+
+
+
+
+ the #NMSetting8021x
+
+
+
+ when @scheme is set to either %NM_SETTING_802_1X_CK_SCHEME_PATH
+ or %NM_SETTING_802_1X_CK_SCHEME_BLOB, pass the path of the client
+ certificate file (PEM, DER, or PKCS#<!-- -->12 format). The path must be UTF-8
+ encoded; use g_filename_to_utf8() to convert if needed. Passing %NULL with
+ any @scheme clears the client certificate.
+
+
+
+ desired storage scheme for the certificate
+
+
+
+ on successful return, the type of the certificate added
+
+
+
+
+
+ Reads a certificate from disk and sets the #NMSetting8021x:phase2-ca-cert
+property with the raw certificate data if using the
+%NM_SETTING_802_1X_CK_SCHEME_BLOB scheme, or with the path to the certificate
+file if using the %NM_SETTING_802_1X_CK_SCHEME_PATH scheme.
+
+
+ %TRUE if the operation succeeded, %FALSE if it was unsuccessful
+
+
+
+
+ the #NMSetting8021x
+
+
+
+ when @scheme is set to either %NM_SETTING_802_1X_CK_SCHEME_PATH
+ or %NM_SETTING_802_1X_CK_SCHEME_BLOB, pass the path of the "phase2" CA
+ certificate file (PEM or DER format). The path must be UTF-8 encoded; use
+ g_filename_to_utf8() to convert if needed. Passing %NULL with any @scheme
+ clears the "phase2" CA certificate.
+
+
+
+ desired storage scheme for the certificate
+
+
+
+ on successful return, the type of the certificate added
+
+
+
+
+
+ Reads a certificate from disk and sets the #NMSetting8021x:phase2-client-cert
+property with the raw certificate data if using the
+%NM_SETTING_802_1X_CK_SCHEME_BLOB scheme, or with the path to the certificate
+file if using the %NM_SETTING_802_1X_CK_SCHEME_PATH scheme.
+
+Client certificates are used to identify the connecting client to the network
+when EAP-TLS is used as either the "phase 1" or "phase 2" 802.1x
+authentication method.
+
+
+ %TRUE if the operation succeeded, %FALSE if it was unsuccessful
+
+
+
+
+ the #NMSetting8021x
+
+
+
+ when @scheme is set to either %NM_SETTING_802_1X_CK_SCHEME_PATH
+ or %NM_SETTING_802_1X_CK_SCHEME_BLOB, pass the path of the "phase2" client
+ certificate file (PEM, DER, or PKCS#<!-- -->12 format). The path must be UTF-8
+ encoded; use g_filename_to_utf8() to convert if needed. Passing %NULL with
+ any @scheme clears the "phase2" client certificate.
+
+
+
+ desired storage scheme for the certificate
+
+
+
+ on successful return, the type of the certificate added
+
+
+
+
+
+ Private keys are used to authenticate the connecting client to the network
+when EAP-TLS is used as either the "phase 1" or "phase 2" 802.1x
+authentication method.
+
+This function reads a private key from disk and sets the
+#NMSetting8021x:phase2-private-key property with the private key file data if
+using the %NM_SETTING_802_1X_CK_SCHEME_BLOB scheme, or with the path to the
+private key file if using the %NM_SETTING_802_1X_CK_SCHEME_PATH scheme.
+
+If @password is given, this function attempts to decrypt the private key to
+verify that @password is correct, and if it is, updates the
+#NMSetting8021x:phase2-private-key-password property with the given
+@password. If the decryption is unsuccessful, %FALSE is returned, @error is
+set, and no internal data is changed. If no @password is given, the private
+key is assumed to be valid, no decryption is performed, and the password may
+be set at a later time.
+
+WARNING: the "phase2" private key property is not a "secret" property, and
+thus unencrypted private key data using the BLOB scheme may be readable by
+unprivileged users. Private keys should always be encrypted with a private
+key password to prevent unauthorized access to unencrypted private key data.
+
+
+ %TRUE if the operation succeeded, %FALSE if it was unsuccessful
+
+
+
+
+ the #NMSetting8021x
+
+
+
+ when @scheme is set to either %NM_SETTING_802_1X_CK_SCHEME_PATH or
+ %NM_SETTING_802_1X_CK_SCHEME_BLOB, pass the path of the "phase2" private
+ key file (PEM, DER, or PKCS#<!-- -->12 format). The path must be UTF-8 encoded;
+ use g_filename_to_utf8() to convert if needed. Passing %NULL with any
+ @scheme clears the private key.
+
+
+
+ password used to decrypt the private key, or %NULL if the password
+ is unknown. If the password is given but fails to decrypt the private key,
+ an error is returned.
+
+
+
+ desired storage scheme for the private key
+
+
+
+ on successful return, the type of the private key added
+
+
+
+
+
+ Private keys are used to authenticate the connecting client to the network
+when EAP-TLS is used as either the "phase 1" or "phase 2" 802.1x
+authentication method.
+
+This function reads a private key from disk and sets the
+#NMSetting8021x:private-key property with the private key file data if using
+the %NM_SETTING_802_1X_CK_SCHEME_BLOB scheme, or with the path to the private
+key file if using the %NM_SETTING_802_1X_CK_SCHEME_PATH scheme.
+
+If @password is given, this function attempts to decrypt the private key to
+verify that @password is correct, and if it is, updates the
+#NMSetting8021x:private-key-password property with the given @password. If
+the decryption is unsuccessful, %FALSE is returned, @error is set, and no
+internal data is changed. If no @password is given, the private key is
+assumed to be valid, no decryption is performed, and the password may be set
+at a later time.
+
+WARNING: the private key property is not a "secret" property, and thus
+unencrypted private key data using the BLOB scheme may be readable by
+unprivileged users. Private keys should always be encrypted with a private
+key password to prevent unauthorized access to unencrypted private key data.
+
+
+ %TRUE if the operation succeeded, %FALSE if it was unsuccessful
+
+
+
+
+ the #NMSetting8021x
+
+
+
+ when @scheme is set to either %NM_SETTING_802_1X_CK_SCHEME_PATH or
+ %NM_SETTING_802_1X_CK_SCHEME_BLOB, pass the path of the private key file
+ (PEM, DER, or PKCS#<!-- -->12 format). The path must be UTF-8 encoded; use
+ g_filename_to_utf8() to convert if needed. Passing %NULL with any @scheme
+ clears the private key.
+
+
+
+ password used to decrypt the private key, or %NULL if the password
+ is unknown. If the password is given but fails to decrypt the private key,
+ an error is returned.
+
+
+
+ desired storage scheme for the private key
+
+
+
+ on successful return, the type of the private key added
+
+
+
+
+
+ List of strings to be matched against the altSubjectName of the
+certificate presented by the authentication server. If the list is empty,
+no verification of the server certificate's altSubjectName is performed.
+
+
+
+
+
+ Anonymous identity string for EAP authentication methods. Used as the
+unencrypted identity with EAP types that support different tunneled
+identity like EAP-TTLS.
+
+
+
+ A timeout for the authentication. Zero means the global default; if the
+global default is not set, the authentication timeout is 25 seconds.
+
+
+
+ Contains the CA certificate if used by the EAP method specified in the
+#NMSetting8021x:eap property.
+
+Certificate data is specified using a "scheme"; three are currently
+supported: blob, path and pkcs#11 URL. When using the blob scheme this property
+should be set to the certificate's DER encoded data. When using the path
+scheme, this property should be set to the full UTF-8 encoded path of the
+certificate, prefixed with the string "file://" and ending with a terminating
+NUL byte.
+This property can be unset even if the EAP method supports CA certificates,
+but this allows man-in-the-middle attacks and is NOT recommended.
+
+Note that enabling NMSetting8021x:system-ca-certs will override this
+setting to use the built-in path, if the built-in path is not a directory.
+
+Setting this property directly is discouraged; use the
+nm_setting_802_1x_set_ca_cert() function instead.
+
+
+
+ The password used to access the CA certificate stored in
+#NMSetting8021x:ca-cert property. Only makes sense if the certificate
+is stored on a PKCS#<!-- -->11 token that requires a login.
+
+
+
+ Flags indicating how to handle the #NMSetting8021x:ca-cert-password property.
+
+
+
+ UTF-8 encoded path to a directory containing PEM or DER formatted
+certificates to be added to the verification chain in addition to the
+certificate specified in the #NMSetting8021x:ca-cert property.
+
+If NMSetting8021x:system-ca-certs is enabled and the built-in CA
+path is an existing directory, then this setting is ignored.
+
+
+
+ Contains the client certificate if used by the EAP method specified in
+the #NMSetting8021x:eap property.
+
+Certificate data is specified using a "scheme"; two are currently
+supported: blob and path. When using the blob scheme (which is backwards
+compatible with NM 0.7.x) this property should be set to the
+certificate's DER encoded data. When using the path scheme, this property
+should be set to the full UTF-8 encoded path of the certificate, prefixed
+with the string "file://" and ending with a terminating NUL byte.
+
+Setting this property directly is discouraged; use the
+nm_setting_802_1x_set_client_cert() function instead.
+
+
+
+ The password used to access the client certificate stored in
+#NMSetting8021x:client-cert property. Only makes sense if the certificate
+is stored on a PKCS#<!-- -->11 token that requires a login.
+
+
+
+ Flags indicating how to handle the #NMSetting8021x:client-cert-password property.
+
+
+
+ Constraint for server domain name. If set, this list of FQDNs is used as
+a match requirement for dNSName element(s) of the certificate presented
+by the authentication server. If a matching dNSName is found, this
+constraint is met. If no dNSName values are present, this constraint is
+matched against SubjectName CN using the same comparison.
+Multiple valid FQDNs can be passed as a ";" delimited list.
+
+
+
+ Constraint for server domain name. If set, this FQDN is used as a suffix
+match requirement for dNSName element(s) of the certificate presented by
+the authentication server. If a matching dNSName is found, this
+constraint is met. If no dNSName values are present, this constraint is
+matched against SubjectName CN using same suffix match comparison.
+Since version 1.24, multiple valid FQDNs can be passed as a ";" delimited
+list.
+
+
+
+ The allowed EAP method to be used when authenticating to the network with
+802.1x. Valid methods are: "leap", "md5", "tls", "peap", "ttls", "pwd",
+and "fast". Each method requires different configuration using the
+properties of this setting; refer to wpa_supplicant documentation for the
+allowed combinations.
+
+
+
+
+
+ Identity string for EAP authentication methods. Often the user's user or
+login name.
+
+
+
+ Whether the 802.1X authentication is optional. If %TRUE, the activation
+will continue even after a timeout or an authentication failure. Setting
+the property to %TRUE is currently allowed only for Ethernet connections.
+If set to %FALSE, the activation can continue only after a successful
+authentication.
+
+
+
+ UTF-8 encoded file path containing PAC for EAP-FAST.
+
+
+
+ UTF-8 encoded password used for EAP authentication methods. If both the
+#NMSetting8021x:password property and the #NMSetting8021x:password-raw
+property are specified, #NMSetting8021x:password is preferred.
+
+
+
+ Flags indicating how to handle the #NMSetting8021x:password property.
+
+
+
+ Password used for EAP authentication methods, given as a byte array to
+allow passwords in other encodings than UTF-8 to be used. If both the
+#NMSetting8021x:password property and the #NMSetting8021x:password-raw
+property are specified, #NMSetting8021x:password is preferred.
+
+
+
+ Flags indicating how to handle the #NMSetting8021x:password-raw property.
+
+
+
+ Specifies authentication flags to use in "phase 1" outer
+authentication using #NMSetting8021xAuthFlags options.
+The individual TLS versions can be explicitly disabled. TLS time checks
+can be also disabled. If a certain TLS disable flag is not
+set, it is up to the supplicant to allow or forbid it. The TLS options
+map to tls_disable_tlsv1_x and tls_disable_time_checks settings.
+See the wpa_supplicant documentation for more details.
+
+
+
+ Enables or disables in-line provisioning of EAP-FAST credentials when
+FAST is specified as the EAP method in the #NMSetting8021x:eap property.
+Recognized values are "0" (disabled), "1" (allow unauthenticated
+provisioning), "2" (allow authenticated provisioning), and "3" (allow
+both authenticated and unauthenticated provisioning). See the
+wpa_supplicant documentation for more details.
+
+
+
+ Forces use of the new PEAP label during key derivation. Some RADIUS
+servers may require forcing the new PEAP label to interoperate with
+PEAPv1. Set to "1" to force use of the new PEAP label. See the
+wpa_supplicant documentation for more details.
+
+
+
+ Forces which PEAP version is used when PEAP is set as the EAP method in
+the #NMSetting8021x:eap property. When unset, the version reported by
+the server will be used. Sometimes when using older RADIUS servers, it
+is necessary to force the client to use a particular PEAP version. To do
+so, this property may be set to "0" or "1" to force that specific PEAP
+version.
+
+
+
+ List of strings to be matched against the altSubjectName of the
+certificate presented by the authentication server during the inner
+"phase 2" authentication. If the list is empty, no verification of the
+server certificate's altSubjectName is performed.
+
+
+
+
+
+ Specifies the allowed "phase 2" inner authentication method when an EAP
+method that uses an inner TLS tunnel is specified in the #NMSetting8021x:eap
+property. For TTLS this property selects one of the supported non-EAP
+inner methods: "pap", "chap", "mschap", "mschapv2" while
+#NMSetting8021x:phase2-autheap selects an EAP inner method. For PEAP
+this selects an inner EAP method, one of: "gtc", "otp", "md5" and "tls".
+Each "phase 2" inner method requires specific parameters for successful
+authentication; see the wpa_supplicant documentation for more details.
+Both #NMSetting8021x:phase2-auth and #NMSetting8021x:phase2-autheap cannot
+be specified.
+
+
+
+ Specifies the allowed "phase 2" inner EAP-based authentication method
+when TTLS is specified in the #NMSetting8021x:eap property. Recognized
+EAP-based "phase 2" methods are "md5", "mschapv2", "otp", "gtc", and
+"tls". Each "phase 2" inner method requires specific parameters for
+successful authentication; see the wpa_supplicant documentation for
+more details.
+
+
+
+ Contains the "phase 2" CA certificate if used by the EAP method specified
+in the #NMSetting8021x:phase2-auth or #NMSetting8021x:phase2-autheap
+properties.
+
+Certificate data is specified using a "scheme"; three are currently
+supported: blob, path and pkcs#11 URL. When using the blob scheme this property
+should be set to the certificate's DER encoded data. When using the path
+scheme, this property should be set to the full UTF-8 encoded path of the
+certificate, prefixed with the string "file://" and ending with a terminating
+NUL byte.
+This property can be unset even if the EAP method supports CA certificates,
+but this allows man-in-the-middle attacks and is NOT recommended.
+
+Note that enabling NMSetting8021x:system-ca-certs will override this
+setting to use the built-in path, if the built-in path is not a directory.
+
+Setting this property directly is discouraged; use the
+nm_setting_802_1x_set_phase2_ca_cert() function instead.
+
+
+
+ The password used to access the "phase2" CA certificate stored in
+#NMSetting8021x:phase2-ca-cert property. Only makes sense if the certificate
+is stored on a PKCS#<!-- -->11 token that requires a login.
+
+
+
+ Flags indicating how to handle the #NMSetting8021x:phase2-ca-cert-password property.
+
+
+
+ UTF-8 encoded path to a directory containing PEM or DER formatted
+certificates to be added to the verification chain in addition to the
+certificate specified in the #NMSetting8021x:phase2-ca-cert property.
+
+If NMSetting8021x:system-ca-certs is enabled and the built-in CA
+path is an existing directory, then this setting is ignored.
+
+
+
+ Contains the "phase 2" client certificate if used by the EAP method
+specified in the #NMSetting8021x:phase2-auth or
+#NMSetting8021x:phase2-autheap properties.
+
+Certificate data is specified using a "scheme"; two are currently
+supported: blob and path. When using the blob scheme (which is backwards
+compatible with NM 0.7.x) this property should be set to the
+certificate's DER encoded data. When using the path scheme, this property
+should be set to the full UTF-8 encoded path of the certificate, prefixed
+with the string "file://" and ending with a terminating NUL byte. This
+property can be unset even if the EAP method supports CA certificates,
+but this allows man-in-the-middle attacks and is NOT recommended.
+
+Setting this property directly is discouraged; use the
+nm_setting_802_1x_set_phase2_client_cert() function instead.
+
+
+
+ The password used to access the "phase2" client certificate stored in
+#NMSetting8021x:phase2-client-cert property. Only makes sense if the certificate
+is stored on a PKCS#<!-- -->11 token that requires a login.
+
+
+
+ Flags indicating how to handle the #NMSetting8021x:phase2-client-cert-password property.
+
+
+
+ Constraint for server domain name. If set, this list of FQDNs is used as
+a match requirement for dNSName element(s) of the certificate presented
+by the authentication server during the inner "phase 2" authentication.
+If a matching dNSName is found, this constraint is met. If no dNSName
+values are present, this constraint is matched against SubjectName CN
+using the same comparison.
+Multiple valid FQDNs can be passed as a ";" delimited list.
+
+
+
+ Constraint for server domain name. If set, this FQDN is used as a suffix
+match requirement for dNSName element(s) of the certificate presented by
+the authentication server during the inner "phase 2" authentication. If
+a matching dNSName is found, this constraint is met. If no dNSName
+values are present, this constraint is matched against SubjectName CN
+using same suffix match comparison.
+Since version 1.24, multiple valid FQDNs can be passed as a ";" delimited
+list.
+
+
+
+ Contains the "phase 2" inner private key when the
+#NMSetting8021x:phase2-auth or #NMSetting8021x:phase2-autheap property is
+set to "tls".
+
+Key data is specified using a "scheme"; two are currently supported: blob
+and path. When using the blob scheme and private keys, this property
+should be set to the key's encrypted PEM encoded data. When using private
+keys with the path scheme, this property should be set to the full UTF-8
+encoded path of the key, prefixed with the string "file://" and ending
+with a terminating NUL byte. When using PKCS#<!-- -->12 format private
+keys and the blob scheme, this property should be set to the
+PKCS#<!-- -->12 data and the #NMSetting8021x:phase2-private-key-password
+property must be set to password used to decrypt the PKCS#<!-- -->12
+certificate and key. When using PKCS#<!-- -->12 files and the path
+scheme, this property should be set to the full UTF-8 encoded path of the
+key, prefixed with the string "file://" and ending with a terminating
+NUL byte, and as with the blob scheme the
+#NMSetting8021x:phase2-private-key-password property must be set to the
+password used to decode the PKCS#<!-- -->12 private key and certificate.
+
+Setting this property directly is discouraged; use the
+nm_setting_802_1x_set_phase2_private_key() function instead.
+
+
+
+ The password used to decrypt the "phase 2" private key specified in the
+#NMSetting8021x:phase2-private-key property when the private key either
+uses the path scheme, or is a PKCS#<!-- -->12 format key. Setting this
+property directly is not generally necessary except when returning
+secrets to NetworkManager; it is generally set automatically when setting
+the private key by the nm_setting_802_1x_set_phase2_private_key()
+function.
+
+
+
+ Flags indicating how to handle the
+#NMSetting8021x:phase2-private-key-password property.
+
+
+
+ Substring to be matched against the subject of the certificate presented
+by the authentication server during the inner "phase 2"
+authentication. When unset, no verification of the authentication server
+certificate's subject is performed. This property provides little security,
+if any, and should not be used.
+ Use #NMSetting8021x:phase2-domain-suffix-match instead.
+
+
+
+ PIN used for EAP authentication methods.
+
+
+
+ Flags indicating how to handle the #NMSetting8021x:pin property.
+
+
+
+ Contains the private key when the #NMSetting8021x:eap property is set to
+"tls".
+
+Key data is specified using a "scheme"; two are currently supported: blob
+and path. When using the blob scheme and private keys, this property
+should be set to the key's encrypted PEM encoded data. When using private
+keys with the path scheme, this property should be set to the full UTF-8
+encoded path of the key, prefixed with the string "file://" and ending
+with a terminating NUL byte. When using PKCS#<!-- -->12 format private
+keys and the blob scheme, this property should be set to the
+PKCS#<!-- -->12 data and the #NMSetting8021x:private-key-password
+property must be set to password used to decrypt the PKCS#<!-- -->12
+certificate and key. When using PKCS#<!-- -->12 files and the path
+scheme, this property should be set to the full UTF-8 encoded path of the
+key, prefixed with the string "file://" and ending with a terminating
+NUL byte, and as with the blob scheme the "private-key-password" property
+must be set to the password used to decode the PKCS#<!-- -->12 private
+key and certificate.
+
+Setting this property directly is discouraged; use the
+nm_setting_802_1x_set_private_key() function instead.
+
+WARNING: #NMSetting8021x:private-key is not a "secret" property, and thus
+unencrypted private key data using the BLOB scheme may be readable by
+unprivileged users. Private keys should always be encrypted with a
+private key password to prevent unauthorized access to unencrypted
+private key data.
+
+
+
+ The password used to decrypt the private key specified in the
+#NMSetting8021x:private-key property when the private key either uses the
+path scheme, or if the private key is a PKCS#<!-- -->12 format key. Setting this
+property directly is not generally necessary except when returning
+secrets to NetworkManager; it is generally set automatically when setting
+the private key by the nm_setting_802_1x_set_private_key() function.
+
+
+
+ Flags indicating how to handle the #NMSetting8021x:private-key-password
+property.
+
+
+
+ Substring to be matched against the subject of the certificate presented
+by the authentication server. When unset, no verification of the
+authentication server certificate's subject is performed. This property
+provides little security, if any, and should not be used.
+ Use #NMSetting8021x:phase2-domain-suffix-match instead.
+
+
+
+ When %TRUE, overrides the #NMSetting8021x:ca-path and
+#NMSetting8021x:phase2-ca-path properties using the system CA directory
+specified at configure time with the --system-ca-path switch. The
+certificates in this directory are added to the verification chain in
+addition to any certificates specified by the #NMSetting8021x:ca-cert and
+#NMSetting8021x:phase2-ca-cert properties. If the path provided with
+--system-ca-path is rather a file name (bundle of trusted CA certificates),
+it overrides #NMSetting8021x:ca-cert and #NMSetting8021x:phase2-ca-cert
+properties instead (sets ca_cert/ca_cert2 options for wpa_supplicant).
+
+
+
+
+ #NMSetting8021xAuthFlags values indicate which authentication settings
+should be used.
+
+Before 1.22, this was wrongly marked as a enum and not as a flags
+type.
+
+ No flags
+
+
+ Disable TLSv1.0
+
+
+ Disable TLSv1.1
+
+
+ Disable TLSv1.2
+
+
+ Disable TLS time checks. Since 1.42.
+
+
+ Disable TLSv1.3. Since 1.42.
+
+
+ Enable TLSv1.0. Since 1.42.
+
+
+ Enable TLSv1.1. Since 1.42.
+
+
+ Enable TLSv1.2. Since 1.42.
+
+
+ Enable TLSv1.3. Since 1.42.
+
+
+ All supported flags
+
+
+
+ #NMSetting8021xCKFormat values indicate the general type of a certificate
+or private key
+
+ unknown file format
+
+
+ file contains an X.509 format certificate
+
+
+ file contains an old-style OpenSSL PEM
+or DER private key
+
+
+ file contains a PKCS#<!-- -->12 certificate
+and private key
+
+
+
+ #NMSetting8021xCKScheme values indicate how a certificate or private key is
+stored in the setting properties, either as a blob of the item's data, or as
+a path to a certificate or private key file on the filesystem
+
+ unknown certificate or private key
+scheme
+
+
+ certificate or key is stored as the raw
+item data
+
+
+ certificate or key is stored as a path
+to a file containing the certificate or key data
+
+
+ certificate or key is stored as a
+URI of an object on a PKCS#11 token
+
+
+
+
+
+
+ ADSL Settings
+
+
+ Creates a new #NMSettingAdsl object with default values.
+
+
+ the new empty #NMSettingAdsl object
+
+
+
+
+
+
+ the #NMSettingAdsl:encapsulation property of the setting
+
+
+
+
+ the #NMSettingAdsl
+
+
+
+
+
+
+
+ the #NMSettingAdsl:password property of the setting
+
+
+
+
+ the #NMSettingAdsl
+
+
+
+
+
+
+
+ the #NMSettingSecretFlags pertaining to the #NMSettingAdsl:password
+
+
+
+
+ the #NMSettingAdsl
+
+
+
+
+
+
+
+ the #NMSettingAdsl:protocol property of the setting
+
+
+
+
+ the #NMSettingAdsl
+
+
+
+
+
+
+
+ the #NMSettingAdsl:username property of the setting
+
+
+
+
+ the #NMSettingAdsl
+
+
+
+
+
+
+
+ the #NMSettingAdsl:vci property of the setting
+
+
+
+
+ the #NMSettingAdsl
+
+
+
+
+
+
+
+ the #NMSettingAdsl:vpi property of the setting
+
+
+
+
+ the #NMSettingAdsl
+
+
+
+
+
+ Encapsulation of ADSL connection. Can be "vcmux" or "llc".
+
+
+
+ Password used to authenticate with the ADSL service.
+
+
+
+ Flags indicating how to handle the #NMSettingAdsl:password property.
+
+
+
+ ADSL connection protocol. Can be "pppoa", "pppoe" or "ipoatm".
+
+
+
+ Username used to authenticate with the ADSL service.
+
+
+
+ VCI of ADSL connection
+
+
+
+ VPI of ADSL connection
+
+
+
+
+
+
+
+ Bluetooth Settings
+
+
+ Creates a new #NMSettingBluetooth object with default values.
+
+
+ the new empty #NMSettingBluetooth object
+
+
+
+
+ Gets the Bluetooth address of the remote device which this setting
+describes a connection to.
+
+
+ the Bluetooth address
+
+
+
+
+ the #NMSettingBluetooth
+
+
+
+
+
+ Returns the connection method for communicating with the remote device (i.e.
+either DUN to a DUN-capable device or PANU to a NAP-capable device).
+
+
+ the type, either %NM_SETTING_BLUETOOTH_TYPE_PANU,
+%NM_SETTING_BLUETOOTH_TYPE_NAP or %NM_SETTING_BLUETOOTH_TYPE_DUN
+
+
+
+
+ the #NMSettingBluetooth
+
+
+
+
+
+ The Bluetooth address of the device.
+
+
+
+ Either "dun" for Dial-Up Networking connections or "panu" for Personal
+Area Networking connections to devices supporting the NAP profile.
+
+
+
+
+
+
+
+ Bonding Settings
+
+
+ Creates a new #NMSettingBond object with default values.
+
+
+ the new empty #NMSettingBond object
+
+
+
+
+ Checks whether @name is a valid bond option and @value is a valid value for
+the @name. If @value is %NULL, the function only validates the option name.
+
+
+ %TRUE, if the @value is valid for the given name.
+If the @name is not a valid option, %FALSE will be returned.
+
+
+
+
+ the name of the option to validate
+
+
+
+ the value of the option to validate.
+
+
+
+
+
+ Add an option to the table. Adding a new name replaces any existing name/value pair
+that may already exist.
+
+
+ returns %FALSE if either @name or @value is %NULL, in that case
+the option is not set. Otherwise, the function does not fail and does not validate
+the arguments. All validation happens via nm_connection_verify() or do basic validation
+yourself with nm_setting_bond_validate_option().
+
+Note: Before 1.30, libnm would perform basic validation of the name and the value
+via nm_setting_bond_validate_option() and reject the request by returning FALSE.
+Since 1.30, libnm no longer rejects any values as the setter is not supposed
+to perform validation.
+
+
+
+
+ the #NMSettingBond
+
+
+
+ name for the option
+
+
+
+ value for the option
+
+
+
+
+
+ Returns the number of options that should be set for this bond when it
+is activated. This can be used to retrieve each option individually
+using nm_setting_bond_get_option().
+
+
+ the number of bonding options
+
+
+
+
+ the #NMSettingBond
+
+
+
+
+
+ Given an index, return the value of the bonding option at that index. Indexes
+are *not* guaranteed to be static across modifications to options done by
+nm_setting_bond_add_option() and nm_setting_bond_remove_option(),
+and should not be used to refer to options except for short periods of time
+such as during option iteration.
+
+
+ %TRUE on success if the index was valid and an option was found,
+%FALSE if the index was invalid (ie, greater than the number of options
+currently held by the setting)
+
+
+
+
+ the #NMSettingBond
+
+
+
+ index of the desired option, from 0 to
+nm_setting_bond_get_num_options() - 1
+
+
+
+ on return, the name of the bonding option;
+ this value is owned by the setting and should not be modified
+
+
+
+ on return, the value of the name of the
+ bonding option; this value is owned by the setting and should not be
+ modified
+
+
+
+
+
+ Returns the value associated with the bonding option specified by
+@name, if it exists.
+
+
+ the value, or %NULL if the key/value pair was never added to the
+setting; the value is owned by the setting and must not be modified
+
+
+
+
+ the #NMSettingBond
+
+
+
+ the option name for which to retrieve the value
+
+
+
+
+
+
+
+ the value of the bond option if not overridden by an entry in
+ the #NMSettingBond:options property.
+
+
+
+
+ the #NMSettingBond
+
+
+
+ the name of the option
+
+
+
+
+
+
+
+ the value of the bond option after normalization, which is what NetworkManager
+ will actually apply when activating the connection. %NULL if the option won't be applied
+ to the connection.
+
+
+
+
+ the #NMSettingBond
+
+
+
+ the name of the option
+
+
+
+
+
+ Returns a list of valid bond options.
+
+The @setting argument is unused and may be passed as %NULL.
+
+
+ a %NULL-terminated array of strings of valid bond options.
+
+
+
+
+
+
+ the #NMSettingBond
+
+
+
+
+
+ Remove the bonding option referenced by @name from the internal option
+list.
+
+
+ %TRUE if the option was found and removed from the internal option
+list, %FALSE if it was not.
+
+
+
+
+ the #NMSettingBond
+
+
+
+ name of the option to remove
+
+
+
+
+
+ Dictionary of key/value pairs of bonding options. Both keys and values
+must be strings. Option names must contain only alphanumeric characters
+(ie, [a-zA-Z0-9]).
+
+
+
+
+
+
+
+
+
+
+ Bond Port Settings
+
+
+ Creates a new #NMSettingBondPort object with default values.
+
+
+ the new empty #NMSettingBondPort object
+
+
+
+
+
+
+ the #NMSettingBondPort:prio property of the setting
+
+
+
+
+ the #NMSettingBondPort
+
+
+
+
+
+
+
+ the #NMSettingBondPort:queue_id property of the setting
+
+
+
+
+ the #NMSettingBondPort
+
+
+
+
+
+ The port priority for bond active port re-selection during failover. A
+higher number means a higher priority in selection. The primary port has
+the highest priority. This option is only compatible with active-backup,
+balance-tlb and balance-alb modes.
+
+
+
+ The queue ID of this bond port. The maximum value of queue ID is
+the number of TX queues currently active in device.
+
+
+
+
+
+
+
+ Bridging Settings
+
+
+ Creates a new #NMSettingBridge object with default values.
+
+
+ the new empty #NMSettingBridge object
+
+
+
+
+ Appends a new vlan and associated information to the setting. The
+given vlan gets sealed and a reference to it is added.
+
+
+
+
+
+
+ the #NMSettingBridge
+
+
+
+ the vlan to add
+
+
+
+
+
+ Removes all configured VLANs.
+
+
+
+
+
+
+ the #NMSettingBridge
+
+
+
+
+
+
+
+ the #NMSettingBridge:ageing-time property of the setting
+
+
+
+
+ the #NMSettingBridge
+
+
+
+
+
+
+
+ the #NMSettingBridge:forward-delay property of the setting
+
+
+
+
+ the #NMSettingBridge
+
+
+
+
+
+
+
+ the #NMSettingBridge:group-address property of the setting
+
+
+
+
+ the #NMSettingBridge
+
+
+
+
+
+
+
+ the #NMSettingBridge:group-forward-mask property of the setting
+
+
+
+
+ the #NMSettingBridge
+
+
+
+
+
+
+
+ the #NMSettingBridge:hello-time property of the setting
+
+
+
+
+ the #NMSettingBridge
+
+
+
+
+
+
+
+ the #NMSettingBridge:mac-address property of the setting
+
+
+
+
+ the #NMSettingBridge
+
+
+
+
+
+
+
+ the #NMSettingBridge:max-age property of the setting
+
+
+
+
+ the #NMSettingBridge
+
+
+
+
+
+
+
+ the #NMSettingBridge:multicast-hash-max property of the setting
+
+
+
+
+ the #NMSettingBridge
+
+
+
+
+
+
+
+ the #NMSettingBridge:multicast-last-member-count property of the setting
+
+
+
+
+ the #NMSettingBridge
+
+
+
+
+
+
+
+ the #NMSettingBridge:multicast-last-member-interval property of the setting
+
+
+
+
+ the #NMSettingBridge
+
+
+
+
+
+
+
+ the #NMSettingBridge:multicast-membership-interval property of the setting
+
+
+
+
+ the #NMSettingBridge
+
+
+
+
+
+
+
+ the #NMSettingBridge:multicast-querier property of the setting
+
+
+
+
+ the #NMSettingBridge
+
+
+
+
+
+
+
+ the #NMSettingBridge:multicast-querier-interval property of the setting
+
+
+
+
+ the #NMSettingBridge
+
+
+
+
+
+
+
+ the #NMSettingBridge:multicast-query-interval property of the setting
+
+
+
+
+ the #NMSettingBridge
+
+
+
+
+
+
+
+ the #NMSettingBridge:multicast-query-response-interval property of the setting
+
+
+
+
+ the #NMSettingBridge
+
+
+
+
+
+
+
+ the #NMSettingBridge:multicast-query-use-ifaddr property of the setting
+
+
+
+
+ the #NMSettingBridge
+
+
+
+
+
+
+
+ the #NMSettingBridge:multicast-router property of the setting
+
+
+
+
+ the #NMSettingBridge
+
+
+
+
+
+
+
+ the #NMSettingBridge:multicast-snooping property of the setting
+
+
+
+
+ the #NMSettingBridge
+
+
+
+
+
+
+
+ the #NMSettingBridge:multicast-query-response-interval property of the setting
+
+
+
+
+ the #NMSettingBridge
+
+
+
+
+
+
+
+ the #NMSettingBridge:multicast-startup-query-interval property of the setting
+
+
+
+
+ the #NMSettingBridge
+
+
+
+
+
+
+
+ the number of VLANs
+
+
+
+
+ the #NMSettingBridge
+
+
+
+
+
+
+
+ the #NMSettingBridge:priority property of the setting
+
+
+
+
+ the #NMSettingBridge
+
+
+
+
+
+
+
+ the #NMSettingBridge:stp property of the setting
+
+
+
+
+ the #NMSettingBridge
+
+
+
+
+
+
+
+ the VLAN at index @idx
+
+
+
+
+ the #NMSettingBridge
+
+
+
+ index number of the VLAN to return
+
+
+
+
+
+
+
+ the #NMSettingBridge:vlan-default-pvid property of the setting
+
+
+
+
+ the #NMSettingBridge
+
+
+
+
+
+
+
+ the #NMSettingBridge:vlan-filtering property of the setting
+
+
+
+
+ the #NMSettingBridge
+
+
+
+
+
+
+
+ the #NMSettingBridge:vlan-protocol property of the setting
+
+
+
+
+ the #NMSettingBridge
+
+
+
+
+
+
+
+ the #NMSettingBridge:vlan-stats-enabled property of the setting
+
+
+
+
+ the #NMSettingBridge
+
+
+
+
+
+ Removes the vlan at index @idx.
+
+
+
+
+
+
+ the #NMSettingBridge
+
+
+
+ index number of the VLAN.
+
+
+
+
+
+ Remove the VLAN with range @vid_start to @vid_end.
+If @vid_end is zero, it is assumed to be equal to @vid_start
+and so the single-id VLAN with id @vid_start is removed.
+
+
+ %TRUE if the vlan was found and removed; %FALSE otherwise
+
+
+
+
+ the #NMSettingBridge
+
+
+
+ the vlan start index
+
+
+
+ the vlan end index
+
+
+
+
+
+ The Ethernet MAC address aging time, in seconds.
+
+
+
+ The Spanning Tree Protocol (STP) forwarding delay, in seconds.
+
+
+
+ If specified, The MAC address of the multicast group this bridge uses for STP.
+
+The address must be a link-local address in standard Ethernet MAC address format,
+ie an address of the form 01:80:C2:00:00:0X, with X in [0, 4..F].
+If not specified the default value is 01:80:C2:00:00:00.
+
+
+
+ A mask of group addresses to forward. Usually, group addresses in
+the range from 01:80:C2:00:00:00 to 01:80:C2:00:00:0F are not
+forwarded according to standards. This property is a mask of 16 bits,
+each corresponding to a group address in that range that must be
+forwarded. The mask can't have bits 0, 1 or 2 set because they are
+used for STP, MAC pause frames and LACP.
+
+
+
+ The Spanning Tree Protocol (STP) hello time, in seconds.
+
+
+
+ If specified, the MAC address of bridge. When creating a new bridge, this
+MAC address will be set.
+
+If this field is left unspecified, the "ethernet.cloned-mac-address" is
+referred instead to generate the initial MAC address. Note that setting
+"ethernet.cloned-mac-address" anyway overwrites the MAC address of
+the bridge later while activating the bridge.
+ Use the #NMSettingWired:cloned-mac-address property instead.
+
+
+
+ The Spanning Tree Protocol (STP) maximum message age, in seconds.
+
+
+
+ Set maximum size of multicast hash table (value must be a power of 2).
+
+
+
+ Set the number of queries the bridge will send before
+stopping forwarding a multicast group after a "leave"
+message has been received.
+
+
+
+ Set interval (in deciseconds) between queries to find remaining
+members of a group, after a "leave" message is received.
+
+
+
+ Set delay (in deciseconds) after which the bridge will
+leave a group, if no membership reports for this
+group are received.
+
+
+
+ Enable or disable sending of multicast queries by the bridge.
+If not specified the option is disabled.
+
+
+
+ If no queries are seen after this delay (in deciseconds) has passed,
+the bridge will start to send its own queries.
+
+
+
+ Interval (in deciseconds) between queries sent
+by the bridge after the end of the startup phase.
+
+
+
+ Set the Max Response Time/Max Response Delay
+(in deciseconds) for IGMP/MLD queries sent by the bridge.
+
+
+
+ If enabled the bridge's own IP address is used as
+the source address for IGMP queries otherwise
+the default of 0.0.0.0 is used.
+
+
+
+ Sets bridge's multicast router. Multicast-snooping must be enabled
+for this option to work.
+
+Supported values are: 'auto', 'disabled', 'enabled' to which kernel
+assigns the numbers 1, 0, and 2, respectively.
+If not specified the default value is 'auto' (1).
+
+
+
+ Controls whether IGMP snooping is enabled for this bridge.
+Note that if snooping was automatically disabled due to hash collisions,
+the system may refuse to enable the feature until the collisions are
+resolved.
+
+
+
+ Set the number of IGMP queries to send during startup phase.
+
+
+
+ Sets the time (in deciseconds) between queries sent out
+at startup to determine membership information.
+
+
+
+ Sets the Spanning Tree Protocol (STP) priority for this bridge. Lower
+values are "better"; the lowest priority bridge will be elected the root
+bridge.
+
+
+
+ Controls whether Spanning Tree Protocol (STP) is enabled for this bridge.
+
+
+
+ The default PVID for the ports of the bridge, that is the VLAN id
+assigned to incoming untagged frames.
+
+
+
+ Control whether VLAN filtering is enabled on the bridge.
+
+
+
+ If specified, the protocol used for VLAN filtering.
+
+Supported values are: '802.1Q', '802.1ad'.
+If not specified the default value is '802.1Q'.
+
+
+
+ Controls whether per-VLAN stats accounting is enabled.
+
+
+
+ Array of bridge VLAN objects. In addition to the VLANs
+specified here, the bridge will also have the default-pvid
+VLAN configured by the bridge.vlan-default-pvid property.
+
+In nmcli the VLAN list can be specified with the following
+syntax:
+
+ $vid [pvid] [untagged] [, $vid [pvid] [untagged]]...
+
+where $vid is either a single id between 1 and 4094 or a
+range, represented as a couple of ids separated by a dash.
+
+
+
+
+
+
+
+
+
+ Bridge Port Settings
+
+
+ Creates a new #NMSettingBridgePort object with default values.
+
+
+ the new empty #NMSettingBridgePort object
+
+
+
+
+ Appends a new vlan and associated information to the setting. The
+given vlan gets sealed and a reference to it is added.
+
+
+
+
+
+
+ the #NMSettingBridgePort
+
+
+
+ the vlan to add
+
+
+
+
+
+ Removes all configured VLANs.
+
+
+
+
+
+
+ the #NMSettingBridgePort
+
+
+
+
+
+
+
+ the #NMSettingBridgePort:hairpin-mode property of the setting
+
+
+
+
+ the #NMSettingBridgePort
+
+
+
+
+
+
+
+ the number of VLANs
+
+
+
+
+ the #NMSettingBridgePort
+
+
+
+
+
+
+
+ the #NMSettingBridgePort:path-cost property of the setting
+
+
+
+
+ the #NMSettingBridgePort
+
+
+
+
+
+
+
+ the #NMSettingBridgePort:priority property of the setting
+
+
+
+
+ the #NMSettingBridgePort
+
+
+
+
+
+
+
+ the VLAN at index @idx
+
+
+
+
+ the #NMSettingBridgePort
+
+
+
+ index number of the VLAN to return
+
+
+
+
+
+ Removes the vlan at index @idx.
+
+
+
+
+
+
+ the #NMSettingBridgePort
+
+
+
+ index number of the VLAN.
+
+
+
+
+
+ Remove the VLAN with range @vid_start to @vid_end.
+If @vid_end is zero, it is assumed to be equal to @vid_start
+and so the single-id VLAN with id @vid_start is removed.
+
+
+ %TRUE if the vlan was found and removed; %FALSE otherwise
+
+
+
+
+ the #NMSettingBridgePort
+
+
+
+ the vlan start index
+
+
+
+ the vlan end index
+
+
+
+
+
+ Enables or disables "hairpin mode" for the port, which allows frames to
+be sent back out through the port the frame was received on.
+
+
+
+ The Spanning Tree Protocol (STP) port cost for destinations via this
+port.
+
+
+
+ The Spanning Tree Protocol (STP) priority of this bridge port.
+
+
+
+ Array of bridge VLAN objects. In addition to the VLANs
+specified here, the port will also have the default-pvid
+VLAN configured on the bridge by the bridge.vlan-default-pvid
+property.
+
+In nmcli the VLAN list can be specified with the following
+syntax:
+
+ $vid [pvid] [untagged] [, $vid [pvid] [untagged]]...
+
+where $vid is either a single id between 1 and 4094 or a
+range, represented as a couple of ids separated by a dash.
+
+
+
+
+
+
+
+
+
+ CDMA-based Mobile Broadband Settings
+
+
+ Creates a new #NMSettingCdma object with default values.
+
+
+ the new empty #NMSettingCdma object
+
+
+
+
+
+
+ the #NMSettingCdma:mtu property of the setting
+
+
+
+
+ the #NMSettingCdma
+
+
+
+
+
+
+
+ the #NMSettingCdma:number property of the setting
+
+
+
+
+ the #NMSettingCdma
+
+
+
+
+
+
+
+ the #NMSettingCdma:password property of the setting
+
+
+
+
+ the #NMSettingCdma
+
+
+
+
+
+
+
+ the #NMSettingSecretFlags pertaining to the #NMSettingCdma:password
+
+
+
+
+ the #NMSettingCdma
+
+
+
+
+
+
+
+ the #NMSettingCdma:username property of the setting
+
+
+
+
+ the #NMSettingCdma
+
+
+
+
+
+ If non-zero, only transmit packets of the specified size or smaller,
+breaking larger packets up into multiple frames.
+
+
+
+ The number to dial to establish the connection to the CDMA-based mobile
+broadband network, if any. If not specified, the default number (#777)
+is used when required.
+
+
+
+ The password used to authenticate with the network, if required. Many
+providers do not require a password, or accept any password. But if a
+password is required, it is specified here.
+
+
+
+ Flags indicating how to handle the #NMSettingCdma:password property.
+
+
+
+ The username used to authenticate with the network, if required. Many
+providers do not require a username, or accept any username. But if a
+username is required, it is specified here.
+
+
+
+
+
+
+
+
+
+
+
+
+ %TRUE to clear the secret, %FALSE to not clear the secret
+
+
+
+
+ The setting for which secrets are being iterated
+
+
+
+ The secret's name
+
+
+
+ The secret's flags, eg %NM_SETTING_SECRET_FLAG_AGENT_OWNED
+
+
+
+ User data passed to nm_connection_clear_secrets_with_flags()
+
+
+
+
+
+ These flags modify the comparison behavior when comparing two settings or
+two connections.
+
+ match all properties exactly
+
+
+ match only important attributes, like SSID,
+ type, security settings, etc. Does not match, for example, connection ID
+ or UUID.
+
+
+ ignore the connection's ID
+
+
+ ignore all secrets
+
+
+ ignore secrets for which
+ the secret's flags indicate the secret is owned by a user secret agent
+ (ie, the secret's flag includes @NM_SETTING_SECRET_FLAG_AGENT_OWNED)
+
+
+ ignore secrets for which
+ the secret's flags indicate the secret should not be saved to persistent
+ storage (ie, the secret's flag includes @NM_SETTING_SECRET_FLAG_NOT_SAVED)
+
+
+ if this flag is set,
+ nm_setting_diff() and nm_connection_diff() will also include properties that
+ are set to their default value. See also @NM_SETTING_COMPARE_FLAG_DIFF_RESULT_NO_DEFAULT.
+
+
+ if this flag is set,
+ nm_setting_diff() and nm_connection_diff() will not include properties that
+ are set to their default value. This is the opposite of
+ @NM_SETTING_COMPARE_FLAG_DIFF_RESULT_WITH_DEFAULT. If both flags are set together,
+ @NM_SETTING_COMPARE_FLAG_DIFF_RESULT_WITH_DEFAULT wins. If both flags are unset,
+ this means to exclude default properties if there is a setting to compare,
+ but include all properties, if the setting 'b' is missing. This is the legacy
+ behaviour of libnm-util, where nm_setting_diff() behaved differently depending
+ on whether the setting 'b' was available. If @NM_SETTING_COMPARE_FLAG_DIFF_RESULT_WITH_DEFAULT
+ is set, nm_setting_diff() will also set the flags @NM_SETTING_DIFF_RESULT_IN_A_DEFAULT
+ and @NM_SETTING_DIFF_RESULT_IN_B_DEFAULT, if the values are default values.
+
+
+ ignore the connection's timestamp
+
+
+
+ General Connection Profile Settings
+
+
+ Creates a new #NMSettingConnection object with default values.
+
+
+ the new empty #NMSettingConnection object
+
+
+
+
+ Adds a permission to the connection's permission list. At this time, only
+the "user" permission type is supported, and @pitem must be a username. See
+#NMSettingConnection:permissions: for more details.
+
+
+ %TRUE if the permission was unique and was successfully added to the
+list, %FALSE if @ptype or @pitem was invalid.
+If the permission was already present in the list, it will not be added
+a second time but %TRUE will be returned. Note that before 1.28, in this
+case %FALSE would be returned.
+
+
+
+
+ the #NMSettingConnection
+
+
+
+ the permission type; at this time only "user" is supported
+
+
+
+ the permission item formatted as required for @ptype
+
+
+
+ unused at this time; must be %NULL
+
+
+
+
+
+ Adds a new secondary connection UUID to the setting.
+
+
+ %TRUE if the secondary connection UUID was added; %FALSE if the UUID
+was already present
+
+
+
+
+ the #NMSettingConnection
+
+
+
+ the secondary connection UUID to add
+
+
+
+
+
+ Returns the value contained in the #NMSettingConnection:auth-retries property.
+
+
+ the configured authentication retries. Zero means
+infinity and -1 means a global default value.
+
+
+
+
+ the #NMSettingConnection
+
+
+
+
+
+ Returns the #NMSettingConnection:autoconnect property of the connection.
+
+
+ the connection's autoconnect behavior
+
+
+
+
+ the #NMSettingConnection
+
+
+
+
+
+ Returns the #NMSettingConnection:autoconnect-ports property of the connection.
+
+
+ whether ports of the connection should be activated together
+ with the connection.
+
+
+
+
+ the #NMSettingConnection
+
+
+
+
+
+ Returns the #NMSettingConnection:autoconnect-priority property of the connection.
+The higher number, the higher priority.
+
+
+ the connection's autoconnect priority
+
+
+
+
+ the #NMSettingConnection
+
+
+
+
+
+ Returns the #NMSettingConnection:autoconnect-retries property of the connection.
+Zero means infinite, -1 means the global default value.
+
+
+ the connection's autoconnect retries
+
+
+
+
+ the #NMSettingConnection
+
+
+
+
+
+ Returns the #NMSettingConnection:autoconnect-slaves property of the connection.
+ Use nm_setting_connection_get_autoconnect_ports() instead, this
+is just an alias.
+
+
+ whether slaves of the connection should be activated together
+ with the connection.
+
+
+
+
+ the #NMSettingConnection
+
+
+
+
+
+ Returns the #NMSettingConnection:type property of the connection.
+
+
+ the connection type
+
+
+
+
+ the #NMSettingConnection
+
+
+
+
+
+ Returns the #NMSettingConnection:controller property of the connection.
+
+
+ interface name of the controller device or UUID of the controller
+connection.
+
+
+
+
+ the #NMSettingConnection
+
+
+
+
+
+
+
+ the #NMSettingConnection:dns-over-tls property of the setting.
+
+
+
+
+ the #NMSettingConnection
+
+
+
+
+
+
+
+ the value contained in the #NMSettingConnection:gateway-ping-timeout
+property.
+
+
+
+
+ the #NMSettingConnection
+
+
+
+
+
+ Returns the #NMSettingConnection:id property of the connection.
+
+
+ the connection ID
+
+
+
+
+ the #NMSettingConnection
+
+
+
+
+
+ Returns the #NMSettingConnection:interface-name property of the connection.
+
+
+ the connection's interface name
+
+
+
+
+ the #NMSettingConnection
+
+
+
+
+
+ Returns the #NMSettingConnection:lldp property of the connection.
+
+
+ a %NMSettingConnectionLldp which indicates whether LLDP must be
+enabled for the connection.
+
+
+
+
+ the #NMSettingConnection
+
+
+
+
+
+
+
+ the #NMSettingConnection:llmnr property of the setting.
+
+
+
+
+ the #NMSettingConnection
+
+
+
+
+
+ Returns the #NMSettingConnection:master property of the connection.
+ Use nm_setting_connection_get_controller() instead which
+is just an alias.
+
+
+ interface name of the master device or UUID of the master
+connection.
+
+
+
+
+ the #NMSettingConnection
+
+
+
+
+
+
+
+ the #NMSettingConnection:mdns property of the setting.
+
+
+
+
+ the #NMSettingConnection
+
+
+
+
+
+
+
+ the #NMSettingConnection:metered property of the setting.
+
+
+
+
+ the #NMSettingConnection
+
+
+
+
+
+
+
+ the #NMSettingConnection:mptcp-flags property of the setting.
+
+
+
+
+ the #NMSettingConnection
+
+
+
+
+
+ Returns the value contained in the #NMSettingConnection:mud-url
+property.
+
+
+
+
+
+
+ the #NMSettingConnection
+
+
+
+
+
+
+
+ the #NMSettingConnection:multi-connect property of the connection.
+
+
+
+
+ the #NMSettingConnection
+
+
+
+
+
+ Returns the number of entries in the #NMSettingConnection:permissions
+property of this setting.
+
+
+ the number of permissions entries
+
+
+
+
+ the #NMSettingConnection
+
+
+
+
+
+
+
+ the number of configured secondary connection UUIDs
+
+
+
+
+ the #NMSettingConnection
+
+
+
+
+
+ Retrieve one of the entries of the #NMSettingConnection:permissions property
+of this setting.
+
+
+ %TRUE if a permission was returned, %FALSE if @idx was invalid
+
+
+
+
+ the #NMSettingConnection
+
+
+
+ the zero-based index of the permissions entry
+
+
+
+ on return, the permission type. This is currently always "user",
+ unless the entry is invalid, in which case it returns "invalid".
+
+
+
+ on return, the permission item (formatted according to @ptype, see
+#NMSettingConnection:permissions for more detail
+
+
+
+ on return, the permission detail (at this time, always %NULL)
+
+
+
+
+
+ Returns the #NMSettingConnection:port-type property of the connection.
+
+
+ the type of port this connection is, if any.
+
+
+
+
+ the #NMSettingConnection
+
+
+
+
+
+ Returns the #NMSettingConnection:read-only property of the connection.
+ This property is deprecated and has no meaning.
+
+
+ %TRUE if the connection is read-only, %FALSE if it is not
+
+
+
+
+ the #NMSettingConnection
+
+
+
+
+
+
+
+ the secondary connection UUID at index @idx or
+ %NULL if @idx is the number of secondaries.
+
+
+
+
+ the #NMSettingConnection
+
+
+
+ the zero-based index of the secondary connection UUID entry.
+ Access one past the length of secondaries is ok and will return
+ %NULL. Otherwise, it is a user error.
+
+
+
+
+
+ Returns the #NMSettingConnection:slave-type property of the connection.
+ Use nm_setting_connection_get_port_type() instead which
+is just an alias.
+
+
+ the type of slave this connection is, if any
+
+
+
+
+ the #NMSettingConnection
+
+
+
+
+
+ Returns the #NMSettingConnection:stable_id property of the connection.
+
+
+ the stable-id for the connection
+
+
+
+
+ the #NMSettingConnection
+
+
+
+
+
+ Returns the #NMSettingConnection:timestamp property of the connection.
+
+
+ the connection's timestamp
+
+
+
+
+ the #NMSettingConnection
+
+
+
+
+
+ Returns the #NMSettingConnection:uuid property of the connection.
+
+
+ the connection UUID
+
+
+
+
+ the #NMSettingConnection
+
+
+
+
+
+
+
+ the %NM_SETTING_CONNECTION_WAIT_ACTIVATION_DELAY property with
+ the delay in milliseconds. -1 is the default.
+
+
+
+
+ the #NMSettingConnection
+
+
+
+
+
+
+
+ the %NM_SETTING_CONNECTION_WAIT_DEVICE_TIMEOUT property with
+ the timeout in milliseconds. -1 is the default.
+
+
+
+
+ the #NMSettingConnection
+
+
+
+
+
+ Returns the #NMSettingConnection:zone property of the connection.
+
+
+ the trust level of a connection
+
+
+
+
+ the #NMSettingConnection
+
+
+
+
+
+
+
+ %TRUE if connection is of the given slave @type
+
+
+
+
+ the #NMSettingConnection
+
+
+
+ the setting name (ie #NM_SETTING_BOND_SETTING_NAME) to be matched
+against @setting's slave type
+
+
+
+
+
+ Checks whether the given username is allowed to view/access this connection.
+
+
+ %TRUE if the requested user is allowed to view this connection,
+%FALSE if the given user is not allowed to view this connection
+
+
+
+
+ the #NMSettingConnection
+
+
+
+ the user name to check permissions for
+
+
+
+
+
+ Removes the permission at index @idx from the connection.
+
+
+
+
+
+
+ the #NMSettingConnection
+
+
+
+ the zero-based index of the permission to remove
+
+
+
+
+
+ Removes the permission from the connection.
+At this time, only the "user" permission type is supported, and @pitem must
+be a username. See #NMSettingConnection:permissions: for more details.
+
+
+ %TRUE if the permission was found and removed; %FALSE if it was not.
+
+
+
+
+ the #NMSettingConnection
+
+
+
+ the permission type; at this time only "user" is supported
+
+
+
+ the permission item formatted as required for @ptype
+
+
+
+ unused at this time; must be %NULL
+
+
+
+
+
+ Removes the secondary connection UUID at index @idx.
+
+
+
+
+
+
+ the #NMSettingConnection
+
+
+
+ index number of the secondary connection UUID
+
+
+
+
+
+ Removes the secondary connection UUID @sec_uuid.
+
+
+ %TRUE if the secondary connection UUID was found and removed; %FALSE if it was not.
+
+
+
+
+ the #NMSettingConnection
+
+
+
+ the secondary connection UUID to remove
+
+
+
+
+
+ The number of retries for the authentication. Zero means to try indefinitely; -1 means
+to use a global default. If the global default is not set, the authentication
+retries for 3 times before failing the connection.
+
+Currently, this only applies to 802-1x authentication.
+
+
+
+ Whether or not the connection should be automatically connected by
+NetworkManager when the resources for the connection are available.
+%TRUE to automatically activate the connection, %FALSE to require manual
+intervention to activate the connection.
+
+Autoconnect happens when the circumstances are suitable. That means for
+example that the device is currently managed and not active. Autoconnect
+thus never replaces or competes with an already active profile.
+
+Note that autoconnect is not implemented for VPN profiles. See
+#NMSettingConnection:secondaries as an alternative to automatically
+connect VPN profiles.
+
+If multiple profiles are ready to autoconnect on the same device,
+the one with the better "connection.autoconnect-priority" is chosen. If
+the priorities are equal, then the most recently connected profile is activated.
+If the profiles were not connected earlier or their
+"connection.timestamp" is identical, the choice is undefined.
+
+Depending on "connection.multi-connect", a profile can (auto)connect only
+once at a time or multiple times.
+
+
+
+ Whether or not ports of this connection should be automatically brought up
+when NetworkManager activates this connection. This only has a real effect
+for controller connections. The properties #NMSettingConnection:autoconnect,
+#NMSettingConnection:autoconnect-priority and #NMSettingConnection:autoconnect-retries
+are unrelated to this setting.
+The permitted values are: 0: leave port connections untouched,
+1: activate all the port connections with this connection, -1: default.
+If -1 (default) is set, global connection.autoconnect-ports is read to
+determine the real value. If it is default as well, this fallbacks to 0.
+
+
+
+ The autoconnect priority in range -999 to 999. If the connection is set
+to autoconnect, connections with higher priority will be preferred.
+The higher number means higher priority. Defaults to 0.
+Note that this property only matters if there are more than one candidate
+profile to select for autoconnect. In case of equal priority, the profile
+used most recently is chosen.
+
+
+
+ The number of times a connection should be tried when autoactivating before
+giving up. Zero means forever, -1 means the global default (4 times if not
+overridden). Setting this to 1 means to try activation only once before
+blocking autoconnect. Note that after a timeout, NetworkManager will try
+to autoconnect again.
+
+
+
+ Whether or not slaves of this connection should be automatically brought up
+when NetworkManager activates this connection. This only has a real effect
+for master connections. The properties #NMSettingConnection:autoconnect,
+#NMSettingConnection:autoconnect-priority and #NMSettingConnection:autoconnect-retries
+are unrelated to this setting.
+The permitted values are: 0: leave slave connections untouched,
+1: activate all the slave connections with this connection, -1: default.
+If -1 (default) is set, global connection.autoconnect-slaves is read to
+determine the real value. If it is default as well, this fallbacks to 0.
+
+
+Deprecated 1.46. Use #NMSettingConnection:autoconnect-ports instead, this is just an alias.
+
+
+
+ Interface name of the controller device or UUID of the controller connection.
+
+
+
+ Whether DNSOverTls (dns-over-tls) is enabled for the connection.
+DNSOverTls is a technology which uses TLS to encrypt dns traffic.
+
+The permitted values are: "yes" (2) use DNSOverTls and disabled fallback,
+"opportunistic" (1) use DNSOverTls but allow fallback to unencrypted resolution,
+"no" (0) don't ever use DNSOverTls.
+If unspecified "default" depends on the plugin used. Systemd-resolved
+uses global setting.
+
+This feature requires a plugin which supports DNSOverTls. Otherwise, the
+setting has no effect. One such plugin is dns-systemd-resolved.
+
+
+
+ If greater than zero, delay success of IP addressing until either the
+timeout is reached, or an IP gateway replies to a ping.
+
+
+
+ A human readable unique identifier for the connection, like "Work Wi-Fi"
+or "T-Mobile 3G".
+
+
+
+ The name of the network interface this connection is bound to. If not
+set, then the connection can be attached to any interface of the
+appropriate type (subject to restrictions imposed by other settings).
+
+For software devices this specifies the name of the created device.
+
+For connection types where interface names cannot easily be made
+persistent (e.g. mobile broadband or USB Ethernet), this property should
+not be used. Setting this property restricts the interfaces a connection
+can be used with, and if interface names change or are reordered the
+connection may be applied to the wrong interface.
+
+
+
+ Whether LLDP is enabled for the connection.
+
+
+
+ Whether Link-Local Multicast Name Resolution (LLMNR) is enabled
+for the connection. LLMNR is a protocol based on the Domain Name
+System (DNS) packet format that allows both IPv4 and IPv6 hosts
+to perform name resolution for hosts on the same local link.
+
+The permitted values are: "yes" (2) register hostname and resolving
+for the connection, "no" (0) disable LLMNR for the interface, "resolve"
+(1) do not register hostname but allow resolving of LLMNR host names
+If unspecified, "default" ultimately depends on the DNS plugin (which
+for systemd-resolved currently means "yes").
+
+This feature requires a plugin which supports LLMNR. Otherwise, the
+setting has no effect. One such plugin is dns-systemd-resolved.
+
+
+
+ Interface name of the master device or UUID of the master connection.
+
+Deprecated 1.46. Use #NMSettingConnection:controller instead, this is just an alias.
+
+
+
+ Whether mDNS is enabled for the connection.
+
+The permitted values are: "yes" (2) register hostname and resolving
+for the connection, "no" (0) disable mDNS for the interface, "resolve"
+(1) do not register hostname but allow resolving of mDNS host names
+and "default" (-1) to allow lookup of a global default in NetworkManager.conf.
+If unspecified, "default" ultimately depends on the DNS plugin (which
+for systemd-resolved currently means "no").
+
+This feature requires a plugin which supports mDNS. Otherwise, the
+setting has no effect. One such plugin is dns-systemd-resolved.
+
+
+
+ Whether the connection is metered.
+
+When updating this property on a currently activated connection,
+the change takes effect immediately.
+
+
+
+ Whether to configure MPTCP endpoints and the address flags.
+If MPTCP is enabled in NetworkManager, it will configure the
+addresses of the interface as MPTCP endpoints. Note that
+IPv4 loopback addresses (127.0.0.0/8), IPv4 link local
+addresses (169.254.0.0/16), the IPv6 loopback address (::1),
+IPv6 link local addresses (fe80::/10), IPv6 unique
+local addresses (ULA, fc00::/7) and IPv6 privacy extension addresses
+(rfc3041, ipv6.ip6-privacy) will be excluded from being
+configured as endpoints.
+
+If "disabled" (0x1), MPTCP handling for the interface is disabled and
+no endpoints are registered.
+
+The "enabled" (0x2) flag means that MPTCP handling is enabled.
+This flag can also be implied from the presence of other flags.
+
+Even when enabled, MPTCP handling will by default still be disabled
+unless "/proc/sys/net/mptcp/enabled" sysctl is on. NetworkManager
+does not change the sysctl and this is up to the administrator
+or distribution. To configure endpoints even if the sysctl is
+disabled, "also-without-sysctl" (0x4) flag can be used. In that case,
+NetworkManager doesn't look at the sysctl and configures endpoints
+regardless.
+
+Even when enabled, NetworkManager will only configure MPTCP endpoints
+for a certain address family, if there is a unicast default route (0.0.0.0/0
+or ::/0) in the main routing table. The flag "also-without-default-route"
+(0x8) can override that.
+
+When MPTCP handling is enabled then endpoints are configured with
+the specified address flags "signal" (0x10), "subflow" (0x20), "backup" (0x40),
+"fullmesh" (0x80). See ip-mptcp(8) manual for additional information about the flags.
+
+If the flags are zero (0x0), the global connection default from NetworkManager.conf is
+honored. If still unspecified, the fallback is "enabled,subflow".
+Note that this means that MPTCP is by default done depending on the
+"/proc/sys/net/mptcp/enabled" sysctl.
+
+NetworkManager does not change the MPTCP limits nor enable MPTCP via
+"/proc/sys/net/mptcp/enabled". That is a host configuration which the
+admin can change via sysctl and ip-mptcp.
+
+Strict reverse path filtering (rp_filter) breaks many MPTCP use cases, so when
+MPTCP handling for IPv4 addresses on the interface is enabled, NetworkManager would
+loosen the strict reverse path filtering (1) to the loose setting (2).
+
+
+
+ If configured, set to a Manufacturer Usage Description (MUD) URL that points
+to manufacturer-recommended network policies for IoT devices. It is transmitted
+as a DHCPv4 or DHCPv6 option. The value must be a valid URL starting with "https://".
+
+The special value "none" is allowed to indicate that no MUD URL is used.
+
+If the per-profile value is unspecified (the default), a global connection default gets
+consulted. If still unspecified, the ultimate default is "none".
+
+
+
+ Specifies whether the profile can be active multiple times at a particular
+moment. The value is of type #NMConnectionMultiConnect.
+
+
+
+ An array of strings defining what access a given user has to this
+connection. If this is %NULL or empty, all users are allowed to access
+this connection; otherwise users are allowed if and only if they are in
+this list. When this is not empty, the connection can be active only when
+one of the specified users is logged into an active session. Each entry
+is of the form "[type]:[id]:[reserved]"; for example, "user:dcbw:blah".
+
+At this time only the "user" [type] is allowed. Any other values are
+ignored and reserved for future use. [id] is the username that this
+permission refers to, which may not contain the ":" character. Any
+[reserved] information present must be ignored and is reserved for future
+use. All of [type], [id], and [reserved] must be valid UTF-8.
+
+
+
+
+
+ Setting name of the device type of this port's controller connection (eg,
+%NM_SETTING_BOND_SETTING_NAME), or %NULL if this connection is not a
+port.
+
+
+
+ This property is deprecated and has no meaning.
+ This property is deprecated and has no meaning.
+
+
+
+ List of connection UUIDs that should be activated when the base
+connection itself is activated. Currently, only VPN connections are
+supported.
+
+
+
+
+
+ Setting name of the device type of this slave's master connection (eg,
+%NM_SETTING_BOND_SETTING_NAME), or %NULL if this connection is not a
+slave.
+
+Deprecated 1.46. Use #NMSettingConnection:port-type instead, this is just an alias.
+
+
+
+ This represents the identity of the connection used for various purposes.
+It allows to configure multiple profiles to share the identity. Also,
+the stable-id can contain placeholders that are substituted dynamically and
+deterministically depending on the context.
+
+The stable-id is used for generating IPv6 stable private addresses with
+ipv6.addr-gen-mode=stable-privacy. It is also used to seed the generated
+cloned MAC address for ethernet.cloned-mac-address=stable and
+wifi.cloned-mac-address=stable. It is also used to derive the DHCP
+client identifier with ipv4.dhcp-client-id=stable, the DHCPv6 DUID with
+ipv6.dhcp-duid=stable-[llt,ll,uuid] and the DHCP IAID with
+ipv4.iaid=stable and ipv6.iaid=stable.
+
+Note that depending on the context where it is used, other parameters are
+also seeded into the generation algorithm. For example, a per-host key
+is commonly also included, so that different systems end up generating
+different IDs. Or with ipv6.addr-gen-mode=stable-privacy, also the device's
+name is included, so that different interfaces yield different addresses.
+The per-host key is the identity of your machine and stored in /var/lib/NetworkManager/secret_key.
+See NetworkManager(8) manual about the secret-key and the host identity.
+
+The '$' character is treated special to perform dynamic substitutions at
+activation time. Currently, supported are "${CONNECTION}", "${DEVICE}",
+"${MAC}", "${NETWORK_SSID}", "${BOOT}", "${RANDOM}". These effectively
+create unique IDs per-connection, per-device, per-SSID, per-boot, or
+every time. The "${CONNECTION}" uses the profile's connection.uuid, the
+"${DEVICE}" uses the interface name of the device and "${MAC}" the
+permanent MAC address of the device. "${NETWORK_SSID}" uses the SSID for
+Wi-Fi networks and falls back to "${CONNECTION}" on other networks. Any
+unrecognized patterns following '$' are treated verbatim, however are
+reserved for future use. You are thus advised to avoid '$' or escape it
+as "$$". For example, set it to "${CONNECTION}-${BOOT}-${DEVICE}" to
+create a unique id for this connection that changes with every reboot
+and differs depending on the interface where the profile activates.
+
+If the value is unset, a global connection default is consulted. If the
+value is still unset, the default is "default${CONNECTION}" go generate
+an ID unique per connection profile.
+
+
+
+ The time, in seconds since the Unix Epoch, that the connection was last
+_successfully_ fully activated.
+
+NetworkManager updates the connection timestamp periodically when the
+connection is active to ensure that an active connection has the latest
+timestamp. The property is only meant for reading (changes to this
+property will not be preserved).
+
+
+
+ Base type of the connection. For hardware-dependent connections, should
+contain the setting name of the hardware-type specific setting (ie,
+"802-3-ethernet" or "802-11-wireless" or "bluetooth", etc), and for
+non-hardware dependent connections like VPN or otherwise, should contain
+the setting name of that setting type (ie, "vpn" or "bridge", etc).
+
+
+
+ A universally unique identifier for the connection, for example generated
+with libuuid. It should be assigned when the connection is created, and
+never changed as long as the connection still applies to the same
+network. For example, it should not be changed when the
+#NMSettingConnection:id property or #NMSettingIP4Config changes, but
+might need to be re-created when the Wi-Fi SSID, mobile broadband network
+provider, or #NMSettingConnection:type property changes.
+
+The UUID must be in the format "2815492f-7e56-435e-b2e9-246bd7cdc664"
+(ie, contains only hexadecimal characters and "-"). A suitable UUID may
+be generated by nm_utils_uuid_generate() or
+nm_uuid_generate_from_string_str().
+
+
+
+ Time in milliseconds to wait for connection to be considered activated.
+The wait will start after the pre-up dispatcher event.
+
+The value 0 means no wait time. The default value is -1, which
+currently has the same meaning as no wait time.
+
+
+
+ Timeout in milliseconds to wait for device at startup.
+During boot, devices may take a while to be detected by the driver.
+This property will cause to delay NetworkManager-wait-online.service
+and nm-online to give the device a chance to appear. This works by
+waiting for the given timeout until a compatible device for the
+profile is available and managed.
+
+The value 0 means no wait time. The default value is -1, which
+currently has the same meaning as no wait time.
+
+
+
+ The trust level of a the connection. Free form case-insensitive string
+(for example "Home", "Work", "Public"). %NULL or unspecified zone means
+the connection will be placed in the default zone as defined by the
+firewall.
+
+When updating this property on a currently activated connection,
+the change takes effect immediately.
+
+
+
+
+ #NMSettingConnectionAutoconnectSlaves values indicate whether slave connections
+should be activated when master is activated.
+
+ default value
+
+
+ slaves are not brought up when
+ master is activated
+
+
+ slaves are brought up when
+ master is activated
+
+
+
+
+
+
+ #NMSettingConnectionDnsOverTls values indicate whether DNSOverTls should be enabled.
+
+ default value
+
+
+ disable DNSOverTls
+
+
+ enable opportunistic mode
+
+
+ enable strict mode
+
+
+
+ #NMSettingConnectionLldp values indicate whether LLDP should be enabled.
+
+ default value
+
+
+ disable LLDP
+
+
+ enable reception of LLDP frames
+
+
+
+ #NMSettingConnectionLlmnr values indicate whether LLMNR should be enabled.
+
+ default value
+
+
+ disable LLMNR
+
+
+ support only resolving, do not register hostname
+
+
+ enable LLMNR
+
+
+
+ #NMSettingConnectionMdns values indicate whether mDNS should be enabled.
+
+ default value
+
+
+ disable mDNS
+
+
+ support only resolving, do not register hostname
+
+
+ enable mDNS
+
+
+
+ Data Center Bridging Settings
+
+
+ Creates a new #NMSettingDcb object with default values.
+
+
+ the new empty #NMSettingDcb object
+
+
+
+
+
+
+ the #NMSettingDcb:app-fcoe-flags property of the setting
+
+
+
+
+ the #NMSettingDcb
+
+
+
+
+
+
+
+ the #NMSettingDcb:app-fcoe-mode property of the setting
+
+
+
+
+ the #NMSettingDcb
+
+
+
+
+
+
+
+ the #NMSettingDcb:app-fcoe-priority property of the setting
+
+
+
+
+ the #NMSettingDcb
+
+
+
+
+
+
+
+ the #NMSettingDcb:app-fip-flags property of the setting
+
+
+
+
+ the #NMSettingDcb
+
+
+
+
+
+
+
+ the #NMSettingDcb:app-fip-priority property of the setting
+
+
+
+
+ the #NMSettingDcb
+
+
+
+
+
+
+
+ the #NMSettingDcb:app-iscsi-flags property of the setting
+
+
+
+
+ the #NMSettingDcb
+
+
+
+
+
+
+
+ the #NMSettingDcb:app-iscsi-priority property of the setting
+
+
+
+
+ the #NMSettingDcb
+
+
+
+
+
+
+
+ the allowed bandwidth percentage of @user_priority in its priority group.
+These values are only valid when #NMSettingDcb:priority-group-flags includes the
+%NM_SETTING_DCB_FLAG_ENABLE flag.
+
+
+
+
+ the #NMSettingDcb
+
+
+
+ the User Priority (0 - 7) to retrieve the group bandwidth percentage for
+
+
+
+
+
+
+
+ %TRUE if flow control is enabled for the given @user_priority,
+%FALSE if not enabled
+
+
+
+
+ the #NMSettingDcb
+
+
+
+ the User Priority (0 - 7) to retrieve flow control for
+
+
+
+
+
+
+
+ the #NMSettingDcb:priority-flow-control-flags property of the setting
+
+
+
+
+ the #NMSettingDcb
+
+
+
+
+
+
+
+ the bandwidth percentage assigned to @group_id. These values are
+only valid when #NMSettingDcb:priority-group-flags includes the
+%NM_SETTING_DCB_FLAG_ENABLE flag.
+
+
+
+
+ the #NMSettingDcb
+
+
+
+ the priority group (0 - 7) to retrieve the bandwidth percentage for
+
+
+
+
+
+
+
+ the #NMSettingDcb:priority-group-flags property of the setting
+
+
+
+
+ the #NMSettingDcb
+
+
+
+
+
+
+
+ the group number @user_priority is assigned to. These values are
+only valid when #NMSettingDcb:priority-group-flags includes the
+%NM_SETTING_DCB_FLAG_ENABLE flag.
+
+
+
+
+ the #NMSettingDcb
+
+
+
+ the User Priority (0 - 7) to retrieve the group ID for
+
+
+
+
+
+
+
+ %TRUE if @user_priority may use all of the bandwidth allocated to its
+assigned group, or %FALSE if not. These values are only valid when
+#NMSettingDcb:priority-group-flags includes the %NM_SETTING_DCB_FLAG_ENABLE flag.
+
+
+
+
+ the #NMSettingDcb
+
+
+
+ the User Priority (0 - 7) to retrieve strict bandwidth for
+
+
+
+
+
+
+
+ the traffic class assigned to @user_priority. These values are only
+valid when #NMSettingDcb:priority-group-flags includes the
+%NM_SETTING_DCB_FLAG_ENABLE flag.
+
+
+
+
+ the #NMSettingDcb
+
+
+
+ the User Priority (0 - 7) to retrieve the traffic class for
+
+
+
+
+
+ These values are only valid when #NMSettingDcb:priority-group-flags includes
+the %NM_SETTING_DCB_FLAG_ENABLE flag.
+
+
+
+
+
+
+ the #NMSettingDcb
+
+
+
+ the User Priority (0 - 7) to set the bandwidth percentage for
+
+
+
+ the bandwidth percentage (0 - 100) that @user_priority is
+allowed to use within its priority group
+
+
+
+
+
+ These values are only valid when #NMSettingDcb:priority-flow-control includes
+the %NM_SETTING_DCB_FLAG_ENABLE flag.
+
+
+
+
+
+
+ the #NMSettingDcb
+
+
+
+ the User Priority (0 - 7) to set flow control for
+
+
+
+ %TRUE to enable flow control for this priority, %FALSE to disable it
+
+
+
+
+
+ These values are only valid when #NMSettingDcb:priority-group-flags includes
+the %NM_SETTING_DCB_FLAG_ENABLE flag.
+
+
+
+
+
+
+ the #NMSettingDcb
+
+
+
+ the priority group (0 - 7) to set the bandwidth percentage for
+
+
+
+ the bandwidth percentage (0 - 100) to assign to @group_id to
+
+
+
+
+
+ These values are only valid when #NMSettingDcb:priority-group-flags includes
+the %NM_SETTING_DCB_FLAG_ENABLE flag.
+
+
+
+
+
+
+ the #NMSettingDcb
+
+
+
+ the User Priority (0 - 7) to set flow control for
+
+
+
+ the group (0 - 7) to assign @user_priority to, or 15 for the
+unrestricted group.
+
+
+
+
+
+ These values are only valid when #NMSettingDcb:priority-group-flags includes
+the %NM_SETTING_DCB_FLAG_ENABLE flag.
+
+
+
+
+
+
+ the #NMSettingDcb
+
+
+
+ the User Priority (0 - 7) to set strict bandwidth for
+
+
+
+ %TRUE to allow @user_priority to use all the bandwidth allocated to
+its priority group, or %FALSE if not
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Specifies the #NMSettingDcbFlags for the DCB FCoE application. Flags may
+be any combination of %NM_SETTING_DCB_FLAG_ENABLE,
+%NM_SETTING_DCB_FLAG_ADVERTISE, and %NM_SETTING_DCB_FLAG_WILLING.
+
+
+
+ The FCoE controller mode; either %NM_SETTING_DCB_FCOE_MODE_FABRIC
+or %NM_SETTING_DCB_FCOE_MODE_VN2VN.
+
+Since 1.34, %NULL is the default and means %NM_SETTING_DCB_FCOE_MODE_FABRIC.
+Before 1.34, %NULL was rejected as invalid and the default was %NM_SETTING_DCB_FCOE_MODE_FABRIC.
+
+
+
+ The highest User Priority (0 - 7) which FCoE frames should use, or -1 for
+default priority. Only used when the #NMSettingDcb:app-fcoe-flags
+property includes the %NM_SETTING_DCB_FLAG_ENABLE flag.
+
+
+
+ Specifies the #NMSettingDcbFlags for the DCB FIP application. Flags may
+be any combination of %NM_SETTING_DCB_FLAG_ENABLE,
+%NM_SETTING_DCB_FLAG_ADVERTISE, and %NM_SETTING_DCB_FLAG_WILLING.
+
+
+
+ The highest User Priority (0 - 7) which FIP frames should use, or -1 for
+default priority. Only used when the #NMSettingDcb:app-fip-flags
+property includes the %NM_SETTING_DCB_FLAG_ENABLE flag.
+
+
+
+ Specifies the #NMSettingDcbFlags for the DCB iSCSI application. Flags
+may be any combination of %NM_SETTING_DCB_FLAG_ENABLE,
+%NM_SETTING_DCB_FLAG_ADVERTISE, and %NM_SETTING_DCB_FLAG_WILLING.
+
+
+
+ The highest User Priority (0 - 7) which iSCSI frames should use, or -1
+for default priority. Only used when the #NMSettingDcb:app-iscsi-flags
+property includes the %NM_SETTING_DCB_FLAG_ENABLE flag.
+
+
+
+ An array of 8 uint values, where the array index corresponds to the User
+Priority (0 - 7) and the value indicates the percentage of bandwidth of
+the priority's assigned group that the priority may use. The sum of all
+percentages for priorities which belong to the same group must total 100
+percents.
+
+
+
+
+
+ An array of 8 boolean values, where the array index corresponds to the User
+Priority (0 - 7) and the value indicates whether or not the corresponding
+priority should transmit priority pause.
+
+
+
+
+
+ Specifies the #NMSettingDcbFlags for DCB Priority Flow Control (PFC).
+Flags may be any combination of %NM_SETTING_DCB_FLAG_ENABLE,
+%NM_SETTING_DCB_FLAG_ADVERTISE, and %NM_SETTING_DCB_FLAG_WILLING.
+
+
+
+ An array of 8 uint values, where the array index corresponds to the
+Priority Group ID (0 - 7) and the value indicates the percentage of link
+bandwidth allocated to that group. Allowed values are 0 - 100, and the
+sum of all values must total 100 percents.
+
+
+
+
+
+ Specifies the #NMSettingDcbFlags for DCB Priority Groups. Flags may be
+any combination of %NM_SETTING_DCB_FLAG_ENABLE,
+%NM_SETTING_DCB_FLAG_ADVERTISE, and %NM_SETTING_DCB_FLAG_WILLING.
+
+
+
+ An array of 8 uint values, where the array index corresponds to the User
+Priority (0 - 7) and the value indicates the Priority Group ID. Allowed
+Priority Group ID values are 0 - 7 or 15 for the unrestricted group.
+
+
+
+
+
+ An array of 8 boolean values, where the array index corresponds to the User
+Priority (0 - 7) and the value indicates whether or not the priority may
+use all of the bandwidth allocated to its assigned group.
+
+
+
+
+
+ An array of 8 uint values, where the array index corresponds to the User
+Priority (0 - 7) and the value indicates the traffic class (0 - 7) to
+which the priority is mapped.
+
+
+
+
+
+
+
+
+
+ DCB feature flags.
+
+ no flag
+
+
+ the feature is enabled
+
+
+ the feature is advertised
+
+
+ the feature is willing to change based on
+peer configuration advertisements
+
+
+
+ These values indicate the result of a setting difference operation.
+
+ unknown result
+
+
+ the property is present in setting A
+
+
+ the property is present in setting B
+
+
+ the property is present in
+setting A but is set to the default value. This flag is only set,
+if you specify @NM_SETTING_COMPARE_FLAG_DIFF_RESULT_WITH_DEFAULT.
+
+
+ analog to @NM_SETTING_DIFF_RESULT_IN_A_DEFAULT.
+
+
+
+ Dummy Link Settings
+
+
+ Creates a new #NMSettingDummy object with default values.
+
+
+ the new empty #NMSettingDummy object
+
+
+
+
+
+
+
+
+ Ethtool Ethernet Settings
+
+
+ Creates a new #NMSettingEthtool object with default values.
+
+
+ the new empty #NMSettingEthtool object
+
+
+
+
+ Clears all offload features settings
+ use nm_setting_option_clear_by_name() with nm_ethtool_optname_is_feature() predicate instead.
+
+
+
+
+
+
+ the #NMSettingEthtool
+
+
+
+
+
+ Gets and offload feature setting. Returns %NM_TERNARY_DEFAULT if the
+feature is not set.
+
+Note that @optname must be a valid name for a feature, according to
+nm_ethtool_optname_is_feature().
+ use nm_setting_option_get_boolean() instead.
+
+
+ a #NMTernary value indicating whether the offload feature
+ is enabled, disabled, or left untouched.
+
+
+
+
+ the #NMSettingEthtool
+
+
+
+ option name of the offload feature to get
+
+
+
+
+
+ This returns all options names that are set. This includes the feature names
+like %NM_ETHTOOL_OPTNAME_FEATURE_GRO. See nm_ethtool_optname_is_feature() to
+check whether the option name is valid for offload features.
+ use nm_setting_option_get_all_names() instead.
+
+
+ list of set option
+ names or %NULL if no options are set. The option names are still owned by
+ @setting and may get invalidated when @setting gets modified.
+
+
+
+
+
+
+ the #NMSettingEthtool instance.
+
+
+
+ return location for the number of keys returned, or %NULL
+
+
+
+
+
+ Sets and offload feature setting.
+
+Note that @optname must be a valid name for a feature, according to
+nm_ethtool_optname_is_feature().
+ use nm_setting_option_set() or nm_setting_option_set_boolean() instead.
+
+
+
+
+
+
+ the #NMSettingEthtool
+
+
+
+ option name of the offload feature to get
+
+
+
+ the new value to set. The special value %NM_TERNARY_DEFAULT
+ means to clear the offload feature setting.
+
+
+
+
+
+
+
+
+
+ Generic Link Settings
+
+
+ Creates a new #NMSettingGeneric object with default values.
+
+
+ the new empty #NMSettingGeneric object
+
+
+
+
+ Returns the #NMSettingGeneric:device-handler property of the connection.
+
+
+ the device handler name, or %NULL if no device handler is set
+
+
+
+
+ the #NMSettingGeneric
+
+
+
+
+
+ Name of the device handler that will be invoked to add and delete
+the device for this connection. The name can only contain ASCII
+alphanumeric characters and '-', '_', '.'. It cannot start with '.'.
+
+See the NetworkManager-dispatcher(8) man page for more details
+about how to write the device handler.
+
+By setting this property the generic connection becomes "virtual",
+meaning that it can be activated without an existing device; the device
+will be created at the time the connection is started by invoking the
+device-handler.
+
+
+
+
+
+
+
+ GSM-based Mobile Broadband Settings
+
+
+ Creates a new #NMSettingGsm object with default values.
+
+
+ the new empty #NMSettingGsm object
+
+
+
+
+
+
+ the #NMSettingGsm:apn property of the setting
+
+
+
+
+ the #NMSettingGsm
+
+
+
+
+
+
+
+ the #NMSettingGsm:auto-config property of the setting
+
+
+
+
+ the #NMSettingGsm
+
+
+
+
+
+
+
+ the #NMSettingGsm:device-id property of the setting
+
+
+
+
+ the #NMSettingGsm
+
+
+
+
+
+
+
+ the #NMSettingGsm:home-only property of the setting
+
+
+
+
+ the #NMSettingGsm
+
+
+
+
+
+
+
+ the #NMSettingGsm:initial-eps-bearer-apn property of the setting
+
+
+
+
+ the #NMSettingGsm
+
+
+
+
+
+
+
+ the #NMSettingGsm:initial-eps-bearer-configure property of the setting
+
+
+
+
+ the #NMSettingGsm
+
+
+
+
+
+
+
+ the #NMSettingGsm:mtu property of the setting
+
+
+
+
+ the #NMSettingGsm
+
+
+
+
+
+
+
+ the #NMSettingGsm:network-id property of the setting
+
+
+
+
+ the #NMSettingGsm
+
+
+
+
+
+ User-provided values for this setting are no longer used.
+
+
+ the #NMSettingGsm:number property of the setting
+
+
+
+
+ the #NMSettingGsm
+
+
+
+
+
+
+
+ the #NMSettingGsm:password property of the setting
+
+
+
+
+ the #NMSettingGsm
+
+
+
+
+
+
+
+ the #NMSettingSecretFlags pertaining to the #NMSettingGsm:password
+
+
+
+
+ the #NMSettingGsm
+
+
+
+
+
+
+
+ the #NMSettingGsm:pin property of the setting
+
+
+
+
+ the #NMSettingGsm
+
+
+
+
+
+
+
+ the #NMSettingSecretFlags pertaining to the #NMSettingGsm:pin
+
+
+
+
+ the #NMSettingGsm
+
+
+
+
+
+
+
+ the #NMSettingGsm:sim-id property of the setting
+
+
+
+
+ the #NMSettingGsm
+
+
+
+
+
+
+
+ the #NMSettingGsm:sim-operator-id property of the setting
+
+
+
+
+ the #NMSettingGsm
+
+
+
+
+
+
+
+ the #NMSettingGsm:username property of the setting
+
+
+
+
+ the #NMSettingGsm
+
+
+
+
+
+ The GPRS Access Point Name specifying the APN used when establishing a
+data session with the GSM-based network. The APN often determines how
+the user will be billed for their network usage and whether the user has
+access to the Internet or just a provider-specific walled-garden, so it
+is important to use the correct APN for the user's mobile broadband plan.
+The APN may only be composed of the characters a-z, 0-9, ., and - per GSM
+03.60 Section 14.9.
+
+If the APN is unset (the default) then it may be detected based on
+"auto-config" setting. The property can be explicitly set to the
+empty string to prevent that and use no APN.
+
+
+
+ When %TRUE, the settings such as APN, username, or password will
+default to values that match the network the modem will register
+to in the Mobile Broadband Provider database.
+
+
+
+ The device unique identifier (as given by the WWAN management service)
+which this connection applies to. If given, the connection will only
+apply to the specified device.
+
+
+
+ When %TRUE, only connections to the home network will be allowed.
+Connections to roaming networks will not be made.
+
+
+
+ For LTE modems, this sets the APN for the initial EPS bearer that is set
+up when attaching to the network. Setting this parameter implies
+initial-eps-bearer-configure to be TRUE.
+
+
+
+ For LTE modems, this setting determines whether the initial EPS bearer
+shall be configured when bringing up the connection. It is inferred TRUE
+if initial-eps-bearer-apn is set.
+
+
+
+ If non-zero, only transmit packets of the specified size or smaller,
+breaking larger packets up into multiple frames.
+
+
+
+ The Network ID (GSM LAI format, ie MCC-MNC) to force specific network
+registration. If the Network ID is specified, NetworkManager will
+attempt to force the device to register only on the specified network.
+This can be used to ensure that the device does not roam when direct
+roaming control of the device is not otherwise possible.
+
+
+
+ Legacy setting that used to help establishing PPP data sessions for
+GSM-based modems.
+ User-provided values for this setting are no longer used.
+
+
+
+ The password used to authenticate with the network, if required. Many
+providers do not require a password, or accept any password. But if a
+password is required, it is specified here.
+
+
+
+ Flags indicating how to handle the #NMSettingGsm:password property.
+
+
+
+ If the SIM is locked with a PIN it must be unlocked before any other
+operations are requested. Specify the PIN here to allow operation of the
+device.
+
+
+
+ Flags indicating how to handle the #NMSettingGsm:pin property.
+
+
+
+ The SIM card unique identifier (as given by the WWAN management service)
+which this connection applies to. If given, the connection will apply
+to any device also allowed by #NMSettingGsm:device-id which contains a
+SIM card matching the given identifier.
+
+
+
+ A MCC/MNC string like "310260" or "21601" identifying the specific
+mobile network operator which this connection applies to. If given,
+the connection will apply to any device also allowed by
+#NMSettingGsm:device-id and #NMSettingGsm:sim-id which contains a SIM
+card provisioned by the given operator.
+
+
+
+ The username used to authenticate with the network, if required. Many
+providers do not require a username, or accept any username. But if a
+username is required, it is specified here.
+
+
+
+
+
+
+
+ Hostname settings
+
+
+ Creates a new #NMSettingHostname object with default values.
+
+
+ the new empty #NMSettingHostname object
+
+
+
+
+ Returns the value contained in the #NMSettingHostname:from-dhcp
+property.
+
+
+ the 'from-dhcp' property value
+
+
+
+
+ the #NMSettingHostname
+
+
+
+
+
+ Returns the value contained in the #NMSettingHostname:from-dns-lookup
+property.
+
+
+ the 'from-dns-lookup' property value
+
+
+
+
+ the #NMSettingHostname
+
+
+
+
+
+ Returns the value contained in the #NMSettingHostname:only-from-default
+property.
+
+
+ the 'only-from-default' property value
+
+
+
+
+ the #NMSettingHostname
+
+
+
+
+
+ Returns the value contained in the #NMSettingHostname:priority
+property.
+
+
+ the 'priority' property value
+
+
+
+
+ the #NMSettingHostname
+
+
+
+
+
+ Whether the system hostname can be determined from DHCP on
+this connection.
+
+When set to %NM_TERNARY_DEFAULT, the value from global configuration
+is used. If the property doesn't have a value in the global
+configuration, NetworkManager assumes the value to be %NM_TERNARY_TRUE.
+
+
+
+ Whether the system hostname can be determined from reverse
+DNS lookup of addresses on this device.
+
+When set to %NM_TERNARY_DEFAULT, the value from global configuration
+is used. If the property doesn't have a value in the global
+configuration, NetworkManager assumes the value to be %NM_TERNARY_TRUE.
+
+
+
+ If set to %NM_TERNARY_TRUE, NetworkManager attempts to get
+the hostname via DHCPv4/DHCPv6 or reverse DNS lookup on this
+device only when the device has the default route for the given
+address family (IPv4/IPv6).
+
+If set to %NM_TERNARY_FALSE, the hostname can be set from this
+device even if it doesn't have the default route.
+
+When set to %NM_TERNARY_DEFAULT, the value from global configuration
+is used. If the property doesn't have a value in the global
+configuration, NetworkManager assumes the value to be %NM_TERNARY_FALSE.
+
+
+
+ The relative priority of this connection to determine the
+system hostname. A lower numerical value is better (higher
+priority). A connection with higher priority is considered
+before connections with lower priority.
+
+If the value is zero, it can be overridden by a global value
+from NetworkManager configuration. If the property doesn't have
+a value in the global configuration, the value is assumed to be
+100.
+
+Negative values have the special effect of excluding other
+connections with a greater numerical priority value; so in
+presence of at least one negative priority, only connections
+with the lowest priority value will be used to determine the
+hostname.
+
+
+
+
+
+
+
+ HSR/PRP Settings
+
+
+ Creates a new #NMSettingHsr object with default values.
+
+
+ the new empty #NMSettingHsr object
+
+
+
+
+
+
+ the #NMSettingHsr:multicast_spec property of the setting
+
+
+
+
+ the #NMSettingHsr
+
+
+
+
+
+
+
+ the #NMSettingHsr:port1 property of the setting
+
+
+
+
+ the #NMSettingHsr
+
+
+
+
+
+
+
+ the #NMSettingHsr:port2 property of the setting
+
+
+
+
+ the #NMSettingHsr
+
+
+
+
+
+
+
+ the #NMSettingHsr:prp property of the setting
+
+
+
+
+ the #NMSettingHsr
+
+
+
+
+
+ The last byte of supervision address.
+
+
+
+ The port1 interface name of the HSR. This property is mandatory.
+
+
+
+ The port2 interface name of the HSR. This property is mandatory.
+
+
+
+ The protocol used by the interface, whether it is PRP or HSR.
+
+
+
+
+
+
+
+ IPv4 Settings
+
+
+ Creates a new #NMSettingIP4Config object with default values.
+
+
+ the new empty #NMSettingIP4Config object
+
+
+
+
+ Returns the value contained in the #NMSettingIP4Config:dhcp-client-id
+property.
+
+
+ the configured Client ID to send to the DHCP server when requesting
+addresses via DHCP.
+
+
+
+
+ the #NMSettingIP4Config
+
+
+
+
+
+ Returns the value contained in the #NMSettingIP4Config:dhcp-fqdn
+property.
+
+
+ the configured FQDN to send to the DHCP server
+
+
+
+
+ the #NMSettingIP4Config
+
+
+
+
+
+ Returns the value contained in the #NMSettingIP4Config:dhcp_vendor_class_identifier
+property.
+
+
+ the vendor class identifier option to send to the DHCP server
+
+
+
+
+ the #NMSettingIP4Config
+
+
+
+
+
+ Returns the value contained in the #NMSettingIP4Config:link_local
+property.
+
+
+ the link-local configuration
+
+
+
+
+ the #NMSettingIP4Config
+
+
+
+
+
+ A string sent to the DHCP server to identify the local machine which the
+DHCP server may use to customize the DHCP lease and options.
+When the property is a hex string ('aa:bb:cc') it is interpreted as a
+binary client ID, in which case the first byte is assumed to be the
+'type' field as per RFC 2132 section 9.14 and the remaining bytes may be
+an hardware address (e.g. '01:xx:xx:xx:xx:xx:xx' where 1 is the Ethernet
+ARP type and the rest is a MAC address).
+If the property is not a hex string it is considered as a
+non-hardware-address client ID and the 'type' field is set to 0.
+
+The special values "mac" and "perm-mac" are supported, which use the
+current or permanent MAC address of the device to generate a client identifier
+with type ethernet (01). Currently, these options only work for ethernet
+type of links.
+
+The special value "ipv6-duid" uses the DUID from "ipv6.dhcp-duid" property as
+an RFC4361-compliant client identifier. As IAID it uses "ipv4.dhcp-iaid"
+and falls back to "ipv6.dhcp-iaid" if unset.
+
+The special value "duid" generates a RFC4361-compliant client identifier based
+on "ipv4.dhcp-iaid" and uses a DUID generated by hashing /etc/machine-id.
+
+The special value "stable" is supported to generate a type 0 client identifier based
+on the stable-id (see connection.stable-id) and a per-host key. If you set the
+stable-id, you may want to include the "${DEVICE}" or "${MAC}" specifier to get a
+per-device key.
+
+The special value "none" prevents any client identifier from being sent. Note that
+this is normally not recommended.
+
+If unset, a globally configured default from NetworkManager.conf is
+used. If still unset, the default depends on the DHCP plugin. The
+internal dhcp client will default to "mac" and the dhclient plugin will
+try to use one from its config file if present, or won't sent any
+client-id otherwise.
+
+
+
+ If the #NMSettingIPConfig:dhcp-send-hostname property is %TRUE, then the
+specified FQDN will be sent to the DHCP server when acquiring a lease. This
+property and #NMSettingIPConfig:dhcp-hostname are mutually exclusive and
+cannot be set at the same time.
+
+
+
+ The Vendor Class Identifier DHCP option (60).
+Special characters in the data string may be escaped using C-style escapes,
+nevertheless this property cannot contain nul bytes.
+If the per-profile value is unspecified (the default),
+a global connection default gets consulted.
+If still unspecified, the DHCP option is not sent to the server.
+
+
+
+ Enable and disable the IPv4 link-local configuration independently of the
+ipv4.method configuration. This allows a link-local address (169.254.x.y/16)
+to be obtained in addition to other addresses, such as those manually
+configured or obtained from a DHCP server.
+
+When set to "auto", the value is dependent on "ipv4.method".
+When set to "default", it honors the global connection default, before
+falling back to "auto". Note that if "ipv4.method" is "disabled", then
+link local addressing is always disabled too. The default is "default".
+
+
+
+
+
+
+
+ #NMSettingIP4LinkLocal values indicate whether IPv4 link-local address protocol should be enabled.
+
+ Allow fallback to a globally configured default. If unspecified,
+ fallback to "auto". Note that if "ipv4.method" is "disabled", this always implies link-local
+ addresses disabled too.
+
+
+ Special value which enables LL if "ipv4.method" is set to
+ "link-local".
+
+
+ Disable IPv4 link-local protocol.
+
+
+ Enable the IPv4 link-local protocol regardless what other protocols
+such as DHCP or manually assigned IP addresses might be active.
+
+
+
+ IPv6 Settings
+
+
+ Creates a new #NMSettingIP6Config object with default values.
+
+
+ the new empty #NMSettingIP6Config object
+
+
+
+
+ Returns the value contained in the #NMSettingIP6Config:addr-gen-mode
+property.
+
+
+ IPv6 Address Generation Mode.
+
+
+
+
+ the #NMSettingIP6Config
+
+
+
+
+
+ Returns the value contained in the #NMSettingIP6Config:dhcp-duid
+property.
+
+
+ The configured DUID value to be included in the DHCPv6 requests
+sent to the DHCPv6 servers.
+
+
+
+
+ the #NMSettingIP6Config
+
+
+
+
+
+ Returns the value contained in the #NMSettingIP6Config:dhcp-pd-hint
+property.
+
+
+ a string containing an address and prefix length to be used
+as hint for DHCPv6 prefix delegation.
+
+
+
+
+ the #NMSettingIP6Config
+
+
+
+
+
+ Returns the value contained in the #NMSettingIP6Config:ip6-privacy
+property.
+
+
+ IPv6 Privacy Extensions configuration value (#NMSettingIP6ConfigPrivacy).
+
+
+
+
+ the #NMSettingIP6Config
+
+
+
+
+
+
+
+ The configured %NM_SETTING_IP6_CONFIG_MTU value for the maximum
+transmission unit.
+
+
+
+
+ the #NMSettingIP6Config
+
+
+
+
+
+
+
+ The configured %NM_SETTING_IP6_CONFIG_RA_TIMEOUT value with the
+timeout for router advertisements in seconds.
+
+
+
+
+ the #NMSettingIP6Config
+
+
+
+
+
+ Returns the value contained in the #NMSettingIP6Config:token
+property.
+
+
+ A string.
+
+
+
+
+ the #NMSettingIP6Config
+
+
+
+
+
+ Configure the method for creating the IPv6 interface identifier of
+addresses for RFC4862 IPv6 Stateless Address Autoconfiguration and IPv6
+Link Local.
+
+The permitted values are: %NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_EUI64,
+%NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_STABLE_PRIVACY.
+%NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_DEFAULT_OR_EUI64 or
+%NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_DEFAULT.
+
+If the property is set to "eui64", the addresses will be generated using
+the interface token derived from the hardware address. This makes the
+host part of the address constant, making it possible to track the
+host's presence when it changes networks. The address changes when the
+interface hardware is replaced. If a duplicate address is detected,
+there is no fallback to generate another address. When configured, the
+"ipv6.token" is used instead of the MAC address to generate addresses
+for stateless autoconfiguration.
+
+If the property is set to "stable-privacy", the interface identifier is
+generated as specified by RFC7217. This works by hashing a host specific
+key (see NetworkManager(8) manual), the interface name, the connection's
+"connection.stable-id" property and the address prefix. This improves
+privacy by making it harder to use the address to track the host's
+presence as every prefix and network has a different identifier. Also,
+the address is stable when the network interface hardware is replaced.
+
+The special values "default" and "default-or-eui64" will fallback to the
+global connection default as documented in the NetworkManager.conf(5)
+manual. If the global default is not specified, the fallback value is
+"stable-privacy" or "eui64", respectively.
+
+For libnm, the property defaults to "default" since 1.40. Previously it
+used to default to "stable-privacy". On D-Bus, the absence of an
+addr-gen-mode setting equals "default". For keyfile plugin, the absence
+of the setting on disk means "default-or-eui64" so that the property
+doesn't change on upgrade from older versions.
+
+Note that this setting is distinct from the Privacy Extensions as
+configured by "ip6-privacy" property and it does not affect the
+temporary addresses configured with this option.
+
+
+
+ A string containing the DHCPv6 Unique Identifier (DUID) used by the dhcp
+client to identify itself to DHCPv6 servers (RFC 3315). The DUID is carried
+in the Client Identifier option.
+If the property is a hex string ('aa:bb:cc') it is interpreted as a binary
+DUID and filled as an opaque value in the Client Identifier option.
+
+The special value "lease" will retrieve the DUID previously used from the
+lease file belonging to the connection. If no DUID is found and "dhclient"
+is the configured dhcp client, the DUID is searched in the system-wide
+dhclient lease file. If still no DUID is found, or another dhcp client is
+used, a global and permanent DUID-UUID (RFC 6355) will be generated based
+on the machine-id.
+
+The special values "llt" and "ll" will generate a DUID of type LLT or LL
+(see RFC 3315) based on the current MAC address of the device. In order to
+try providing a stable DUID-LLT, the time field will contain a constant
+timestamp that is used globally (for all profiles) and persisted to disk.
+
+The special values "stable-llt", "stable-ll" and "stable-uuid" will generate
+a DUID of the corresponding type, derived from the connection's stable-id and
+a per-host unique key. You may want to include the "${DEVICE}" or "${MAC}" specifier
+in the stable-id, in case this profile gets activated on multiple devices.
+So, the link-layer address of "stable-ll" and "stable-llt" will be a generated
+address derived from the stable id. The DUID-LLT time value in the "stable-llt"
+option will be picked among a static timespan of three years (the upper bound
+of the interval is the same constant timestamp used in "llt").
+
+When the property is unset, the global value provided for "ipv6.dhcp-duid" is
+used. If no global value is provided, the default "lease" value is assumed.
+
+
+
+ A IPv6 address followed by a slash and a prefix length. If set, the value is
+sent to the DHCPv6 server as hint indicating the prefix delegation (IA_PD) we
+want to receive.
+To only hint a prefix length without prefix, set the address part to the
+zero address (for example "::/60").
+
+
+
+ Configure IPv6 Privacy Extensions for SLAAC, described in RFC4941. If
+enabled, it makes the kernel generate a temporary IPv6 address in
+addition to the public one generated from MAC address via modified
+EUI-64. This enhances privacy, but could cause problems in some
+applications, on the other hand. The permitted values are: -1: unknown,
+0: disabled, 1: enabled (prefer public address), 2: enabled (prefer temporary
+addresses).
+
+Having a per-connection setting set to "-1" (unknown) means fallback to
+global configuration "ipv6.ip6-privacy".
+
+If also global configuration is unspecified or set to "-1", fallback to read
+"/proc/sys/net/ipv6/conf/default/use_tempaddr".
+
+Note that this setting is distinct from the Stable Privacy addresses
+that can be enabled with the "addr-gen-mode" property's "stable-privacy"
+setting as another way of avoiding host tracking with IPv6 addresses.
+
+
+
+ Maximum transmission unit size, in bytes. If zero (the default), the MTU
+is set automatically from router advertisements or is left equal to the
+link-layer MTU. If greater than the link-layer MTU, or greater than zero
+but less than the minimum IPv6 MTU of 1280, this value has no effect.
+
+
+
+ A timeout for waiting Router Advertisements in seconds. If zero (the default), a
+globally configured default is used. If still unspecified, the timeout depends on the
+sysctl settings of the device.
+
+Set to 2147483647 (MAXINT32) for infinity.
+
+
+
+ Configure the token for draft-chown-6man-tokenised-ipv6-identifiers-02
+IPv6 tokenized interface identifiers. Useful with eui64 addr-gen-mode.
+
+When set, the token is used as IPv6 interface identifier instead of the
+hardware address. This only applies to addresses from stateless
+autoconfiguration, not to IPv6 link local addresses.
+
+
+
+
+ #NMSettingIP6ConfigAddrGenMode controls how the Interface Identifier for
+RFC4862 Stateless Address Autoconfiguration is created.
+
+ The Interface Identifier is derived
+from the interface hardware address.
+
+
+ The Interface Identifier
+is created by using a cryptographically secure hash of a secret host-specific
+key along with the connection identification and the network address as
+specified by RFC7217.
+
+
+ Fallback to the global
+ default, and if unspecified use "eui64". Since: 1.40.
+
+
+ Fallback to the global
+ default, and if unspecified use "stable-privacy". Since: 1.40.
+
+
+
+
+
+
+ #NMSettingIP6ConfigPrivacy values indicate if and how IPv6 Privacy
+Extensions are used (RFC4941).
+
+ unknown or no value specified
+
+
+ IPv6 Privacy Extensions are disabled
+
+
+ IPv6 Privacy Extensions
+are enabled, but public addresses are preferred over temporary addresses
+
+
+ IPv6 Privacy Extensions
+are enabled and temporary addresses are preferred over public addresses
+
+
+
+
+
+ Adds a new IP address and associated information to the setting. The
+given address is duplicated internally and is not changed by this function.
+
+
+ %TRUE if the address was added; %FALSE if the address was already
+known.
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+ the new address to add
+
+
+
+
+
+ Adds a new DHCP reject server to the setting.
+
+
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+ the DHCP reject server to add
+
+
+
+
+
+ Adds a new DNS server to the setting.
+
+
+ %TRUE if the DNS server was added; %FALSE if the server was already
+known
+
+Before 1.42, setting @dns to an invalid string was treated as user-error.
+Now, also invalid DNS values can be set, but will be rejected later during
+nm_connection_verify().
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+ the IP address of the DNS server to add
+
+
+
+
+
+ Adds a new DNS option to the setting.
+
+
+ %TRUE if the DNS option was added; %FALSE otherwise
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+ the DNS option to add
+
+
+
+
+
+ Adds a new DNS search domain to the setting.
+
+
+ %TRUE if the DNS search domain was added; %FALSE if the search
+domain was already known
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+ the search domain to add
+
+
+
+
+
+ Appends a new route and associated information to the setting. The
+given route is duplicated internally and is not changed by this function.
+If an identical route (considering attributes as well) already exists, the
+route is not added and the function returns %FALSE.
+
+Note that before 1.10, this function would not consider route attributes
+and not add a route that has an existing route with same dest/prefix,next_hop,metric
+parameters.
+
+
+ %TRUE if the route was added; %FALSE if the route was already known.
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+ the route to add
+
+
+
+
+
+ Appends a new routing-rule and associated information to the setting. The
+given routing rules gets sealed and the reference count is incremented.
+The function does not check whether an identical rule already exists
+and always appends the rule to the end of the list.
+
+
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+ the #NMIPRoutingRule to add. The address family
+ of the added rule must be compatible with the setting.
+
+
+
+
+
+ Removes all configured addresses.
+
+
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+ Removes all configured DHCP reject servers.
+
+
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+ Removes all configured DNS servers.
+
+
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+ Removes all configured DNS options.
+
+
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+ the dns-options can be either empty or unset (default).
+ Specify how to clear the options.
+
+
+
+
+
+ Removes all configured DNS search domains.
+
+
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+ Removes all configured routes.
+
+
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+ Removes all configured routing rules.
+
+
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+
+
+ the address at index @idx
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+ index number of the address to return
+
+
+
+
+
+
+
+ the #NMSettingIPConfig:auto-route-ext-gw property of the setting
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+
+
+ the #NMSettingIPConfig:dad-timeout property.
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+ Returns the value contained in the #NMSettingIPConfig:dhcp-dscp
+property.
+
+
+ the value for the DSCP field for DHCP
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+ Returns the value contained in the #NMSettingIPConfig:dhcp-hostname
+property.
+
+
+ the configured hostname to send to the DHCP server
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+ Returns the value contained in the #NMSettingIPConfig:dhcp-hostname-flags
+property.
+
+
+ flags for the DHCP hostname and FQDN
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+ Returns the value contained in the #NMSettingIPConfig:dhcp-iaid
+property.
+
+
+ the configured DHCP IAID (Identity Association Identifier)
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+
+
+
+ A %NULL terminated array of DHCP reject servers. Even if no reject
+ servers are configured, this always returns a non %NULL value.
+
+
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+ the number of returned elements
+
+
+
+
+
+ Returns the value contained in the #NMSettingIPConfig:dhcp-send-hostname
+property.
+
+
+ %TRUE if NetworkManager should send the machine hostname to the
+DHCP server when requesting addresses to allow the server to automatically
+update DNS information for this machine.
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+ Returns the value contained in the #NMSettingIPConfig:dhcp-timeout
+property.
+
+
+ the configured DHCP timeout in seconds. 0 = default for
+the particular kind of device.
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+
+
+ the IP address of the DNS server at index @idx
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+ index number of the DNS server to return
+
+
+
+
+
+ Since 1.46, access at index "len" is allowed and returns NULL.
+
+
+ the DNS option at index @idx
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+ index number of the DNS option
+
+
+
+
+
+
+
+ the priority of DNS servers
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+ Since 1.46, access at index "len" is allowed and returns NULL.
+
+
+ the DNS search domain at index @idx
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+ index number of the DNS search domain to return
+
+
+
+
+
+
+
+ the IP address of the gateway associated with this configuration, or
+%NULL.
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+ Returns the value contained in the #NMSettingIPConfig:ignore-auto-dns
+property.
+
+
+ %TRUE if automatically configured (ie via DHCP) DNS information
+should be ignored.
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+ Returns the value contained in the #NMSettingIPConfig:ignore-auto-routes
+property.
+
+
+ %TRUE if automatically configured (ie via DHCP) routes should be
+ignored.
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+ Returns the value contained in the #NMSettingIPConfig:may-fail
+property.
+
+
+ %TRUE if this connection doesn't require this type of IP
+addressing to complete for the connection to succeed.
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+
+
+ the #NMSettingIPConfig:method property of the setting; see
+#NMSettingIP4Config and #NMSettingIP6Config for details of the
+methods available with each type.
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+ Returns the value contained in the #NMSettingIPConfig:never-default
+property.
+
+
+ %TRUE if this connection should never be the default
+ connection
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+
+
+ the number of configured addresses
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+
+
+ the number of configured DNS servers
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+
+
+ the number of configured DNS options
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+
+
+ the number of configured DNS search domains
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+
+
+ the number of configured routes
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+
+
+ the number of configured routing rules
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+
+
+ the #NMSettingIPConfig:replace-local-rule property of the setting
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+ Returns the value contained in the #NMSettingIPConfig:required-timeout
+property.
+
+
+ the required timeout for the address family
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+
+
+ the route at index @idx
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+ index number of the route to return
+
+
+
+
+
+ Returns the value contained in the #NMSettingIPConfig:route-metric
+property.
+
+
+ the route metric that is used for routes that don't explicitly
+specify a metric. See #NMSettingIPConfig:route-metric for more details.
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+ Returns the value contained in the #NMSettingIPConfig:route-table
+property.
+
+
+ the configured route-table.
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+
+
+ the routing rule at index @idx
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+ index number of the routing_rule to return
+
+
+
+
+
+ NMSettingIPConfig can have a list of dns-options. If the list
+is empty, there are two similar (but differentiated) states.
+Either the options are explicitly set to have no values,
+or the options are left undefined. The latter means to use
+a default configuration, while the former explicitly means "no-options".
+
+
+ whether DNS options are initialized or left unset (the default).
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+
+
+ Removes the address at index @idx.
+
+
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+ index number of the address to remove
+
+
+
+
+
+ Removes the address @address.
+
+
+ %TRUE if the address was found and removed; %FALSE if it was not.
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+ the IP address to remove
+
+
+
+
+
+ Removes the DHCP reject server at index @idx.
+
+
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+ index number of the DHCP reject server
+
+
+
+
+
+ Removes the DNS server at index @idx.
+
+
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+ index number of the DNS server to remove
+
+
+
+
+
+ Removes the DNS server @dns.
+
+
+ %TRUE if the DNS server was found and removed; %FALSE if it was not.
+
+Before 1.42, setting @dns to an invalid string was treated as user-error.
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+ the DNS server to remove
+
+
+
+
+
+ Removes the DNS option at index @idx.
+
+
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+ index number of the DNS option
+
+
+
+
+
+ Removes the DNS option @dns_option.
+
+
+ %TRUE if the DNS option was found and removed; %FALSE if it was not.
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+ the DNS option to remove
+
+
+
+
+
+ Removes the DNS search domain at index @idx.
+
+
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+ index number of the DNS search domain
+
+
+
+
+
+ Removes the DNS search domain @dns_search.
+
+
+ %TRUE if the DNS search domain was found and removed; %FALSE if it was not.
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+ the search domain to remove
+
+
+
+
+
+ Removes the route at index @idx.
+
+
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+ index number of the route
+
+
+
+
+
+ Removes the first matching route that matches @route.
+Note that before 1.10, this function would only compare dest/prefix,next_hop,metric
+and ignore route attributes. Now, @route must match exactly.
+
+
+ %TRUE if the route was found and removed; %FALSE if it was not.
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+ the route to remove
+
+
+
+
+
+ Removes the routing_rule at index @idx.
+
+
+
+
+
+
+ the #NMSettingIPConfig
+
+
+
+ index number of the routing_rule
+
+
+
+
+
+ Array of IP addresses.
+
+
+
+
+
+ VPN connections will default to add the route automatically unless this
+setting is set to %FALSE.
+
+For other connection types, adding such an automatic route is currently
+not supported and setting this to %TRUE has no effect.
+
+
+
+ Maximum timeout in milliseconds used to check for the presence of duplicate
+IP addresses on the network. If an address conflict is detected, the
+activation will fail. The property is currently implemented only for IPv4.
+
+A zero value means that no duplicate address detection is performed, -1 means
+the default value (either the value configured globally in NetworkManger.conf
+or 200ms). A value greater than zero is a timeout in milliseconds. Note that
+the time intervals are subject to randomization as per RFC 5227 and so the
+actual duration can be between half and the full time specified in this
+property.
+
+
+
+ Specifies the value for the DSCP field (traffic class) of the IP header. When
+empty, the global default value is used; if no global default is specified, it is
+assumed to be "CS0". Allowed values are: "CS0", "CS4" and "CS6".
+
+The property is currently valid only for IPv4, and it is supported only by the
+"internal" DHCP plugin.
+
+
+
+ If the #NMSettingIPConfig:dhcp-send-hostname property is %TRUE, then the
+specified name will be sent to the DHCP server when acquiring a lease.
+This property and #NMSettingIP4Config:dhcp-fqdn are mutually exclusive and
+cannot be set at the same time.
+
+
+
+ Flags for the DHCP hostname and FQDN.
+
+Currently, this property only includes flags to control the FQDN flags
+set in the DHCP FQDN option. Supported FQDN flags are
+%NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE,
+%NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED and
+%NM_DHCP_HOSTNAME_FLAG_FQDN_NO_UPDATE. When no FQDN flag is set and
+%NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS is set, the DHCP FQDN option will
+contain no flag. Otherwise, if no FQDN flag is set and
+%NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS is not set, the standard FQDN flags
+are set in the request:
+%NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE,
+%NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED for IPv4 and
+%NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE for IPv6.
+
+When this property is set to the default value %NM_DHCP_HOSTNAME_FLAG_NONE,
+a global default is looked up in NetworkManager configuration. If that value
+is unset or also %NM_DHCP_HOSTNAME_FLAG_NONE, then the standard FQDN flags
+described above are sent in the DHCP requests.
+
+
+
+ A string containing the "Identity Association Identifier" (IAID) used by
+the DHCP client. The string can be a 32-bit number (either decimal,
+hexadecimal or as colon separated hexadecimal numbers). Alternatively
+it can be set to the special values "mac", "perm-mac", "ifname" or
+"stable". When set to "mac" (or "perm-mac"), the last 4 bytes of the
+current (or permanent) MAC address are used as IAID. When set to
+"ifname", the IAID is computed by hashing the interface name. The
+special value "stable" can be used to generate an IAID based on the
+stable-id (see connection.stable-id), a per-host key and the interface
+name. When the property is unset, the value from global configuration is
+used; if no global default is set then the IAID is assumed to be
+"ifname".
+
+For DHCPv4, the IAID is only used with "ipv4.dhcp-client-id"
+values "duid" and "ipv6-duid" to generate the client-id.
+
+For DHCPv6, note that at the moment this property is
+only supported by the "internal" DHCPv6 plugin. The "dhclient" DHCPv6
+plugin always derives the IAID from the MAC address.
+
+The actually used DHCPv6 IAID for a currently activated interface is
+exposed in the lease information of the device.
+
+
+
+ Array of servers from which DHCP offers must be rejected. This property
+is useful to avoid getting a lease from misconfigured or rogue servers.
+
+For DHCPv4, each element must be an IPv4 address, optionally
+followed by a slash and a prefix length (e.g. "192.168.122.0/24").
+
+This property is currently not implemented for DHCPv6.
+
+
+
+
+
+ If %TRUE, a hostname is sent to the DHCP server when acquiring a lease.
+Some DHCP servers use this hostname to update DNS databases, essentially
+providing a static hostname for the computer. If the
+#NMSettingIPConfig:dhcp-hostname property is %NULL and this property is
+%TRUE, the current persistent hostname of the computer is sent.
+
+
+
+ A timeout for a DHCP transaction in seconds. If zero (the default), a
+globally configured default is used. If still unspecified, a device specific
+timeout is used (usually 45 seconds).
+
+Set to 2147483647 (MAXINT32) for infinity.
+
+
+
+ Array of IP addresses of DNS servers.
+
+For DoT (DNS over TLS), the SNI server name can be specified by appending
+"#example.com" to the IP address of the DNS server. This currently only has
+effect when using systemd-resolved.
+
+
+
+
+
+ Array of DNS options to be added to resolv.conf.
+
+%NULL means that the options are unset and left at the default.
+In this case NetworkManager will use default options. This is
+distinct from an empty list of properties.
+
+The following options are directly added to resolv.conf: "attempts",
+ "debug", "edns0",
+"inet6", "ip6-bytestring", "ip6-dotint", "ndots", "no-aaaa",
+"no-check-names", "no-ip6-dotint", "no-reload", "no-tld-query",
+"rotate", "single-request", "single-request-reopen", "timeout",
+"trust-ad", "use-vc". See the resolv.conf(5) man page for a
+detailed description of these options.
+
+In addition, NetworkManager supports the special options "_no-add-edns0"
+and "_no-add-trust-ad". They are not added to resolv.conf, and can be
+used to prevent the automatic addition of options "edns0" and "trust-ad"
+when using caching DNS plugins (see below).
+
+The "trust-ad" setting is only honored if the profile contributes
+name servers to resolv.conf, and if all contributing profiles have
+"trust-ad" enabled.
+
+When using a caching DNS plugin (dnsmasq or systemd-resolved in
+NetworkManager.conf) then "edns0" and "trust-ad" are automatically
+added, unless "_no-add-edns0" and "_no-add-trust-ad" are present.
+
+
+
+
+
+ DNS servers priority.
+
+The relative priority for DNS servers specified by this setting. A lower
+numerical value is better (higher priority).
+
+Negative values have the special effect of excluding other configurations
+with a greater numerical priority value; so in presence of at least one negative
+priority, only DNS servers from connections with the lowest priority value will be used.
+To avoid all DNS leaks, set the priority of the profile that should be used
+to the most negative value of all active connections profiles.
+
+Zero selects a globally configured default value. If the latter is missing
+or zero too, it defaults to 50 for VPNs (including WireGuard) and 100 for
+other connections.
+
+Note that the priority is to order DNS settings for multiple active
+connections. It does not disambiguate multiple DNS servers within the
+same connection profile.
+
+When multiple devices have configurations with the same priority, VPNs will be
+considered first, then devices with the best (lowest metric) default
+route and then all other devices.
+
+When using dns=default, servers with higher priority will be on top of
+resolv.conf. To prioritize a given server over another one within the
+same connection, just specify them in the desired order.
+Note that commonly the resolver tries name servers in /etc/resolv.conf
+in the order listed, proceeding with the next server in the list
+on failure. See for example the "rotate" option of the dns-options setting.
+If there are any negative DNS priorities, then only name servers from
+the devices with that lowest priority will be considered.
+
+When using a DNS resolver that supports Conditional Forwarding or
+Split DNS (with dns=dnsmasq or dns=systemd-resolved settings), each connection
+is used to query domains in its search list. The search domains determine which
+name servers to ask, and the DNS priority is used to prioritize
+name servers based on the domain. Queries for domains not present in any
+search list are routed through connections having the '~.' special wildcard
+domain, which is added automatically to connections with the default route
+(or can be added manually). When multiple connections specify the same domain, the
+one with the best priority (lowest numerical value) wins. If a sub domain
+is configured on another interface it will be accepted regardless the priority,
+unless parent domain on the other interface has a negative priority, which causes
+the sub domain to be shadowed.
+With Split DNS one can avoid undesired DNS leaks by properly configuring
+DNS priorities and the search domains, so that only name servers of the desired
+interface are configured.
+
+
+
+ List of DNS search domains. Domains starting with a tilde ('~')
+are considered 'routing' domains and are used only to decide the
+interface over which a query must be forwarded; they are not used
+to complete unqualified host names.
+
+When using a DNS plugin that supports Conditional Forwarding or
+Split DNS, then the search domains specify which name servers to
+query. This makes the behavior different from running with plain
+/etc/resolv.conf. For more information see also the dns-priority setting.
+
+When set on a profile that also enabled DHCP, the DNS search list
+received automatically (option 119 for DHCPv4 and option 24 for DHCPv6)
+gets merged with the manual list. This can be prevented by setting
+"ignore-auto-dns". Note that if no DNS searches are configured, the
+fallback will be derived from the domain from DHCP (option 15).
+
+
+
+
+
+ The gateway associated with this configuration. This is only meaningful
+if #NMSettingIPConfig:addresses is also set.
+
+Setting the gateway causes NetworkManager to configure a standard default route
+with the gateway as next hop. This is ignored if #NMSettingIPConfig:never-default
+is set. An alternative is to configure the default route explicitly with a manual
+route and /0 as prefix length.
+
+Note that the gateway usually conflicts with routing that NetworkManager configures
+for WireGuard interfaces, so usually it should not be set in that case. See
+#NMSettingWireGuard:ip4-auto-default-route.
+
+
+
+ When #NMSettingIPConfig:method is set to "auto" and this property to
+%TRUE, automatically configured name servers and search domains are
+ignored and only name servers and search domains specified in the
+#NMSettingIPConfig:dns and #NMSettingIPConfig:dns-search properties, if
+any, are used.
+
+
+
+ When #NMSettingIPConfig:method is set to "auto" and this property to
+%TRUE, automatically configured routes are ignored and only routes
+specified in the #NMSettingIPConfig:routes property, if any, are used.
+
+
+
+ If %TRUE, allow overall network configuration to proceed even if the
+configuration specified by this property times out. Note that at least
+one IP configuration must succeed or overall network configuration will
+still fail. For example, in IPv6-only networks, setting this property to
+%TRUE on the #NMSettingIP4Config allows the overall network configuration
+to succeed if IPv4 configuration fails but IPv6 configuration completes
+successfully.
+
+
+
+ IP configuration method.
+
+#NMSettingIP4Config and #NMSettingIP6Config both support "disabled",
+"auto", "manual", and "link-local". See the subclass-specific
+documentation for other values.
+
+In general, for the "auto" method, properties such as
+#NMSettingIPConfig:dns and #NMSettingIPConfig:routes specify information
+that is added on to the information returned from automatic
+configuration. The #NMSettingIPConfig:ignore-auto-routes and
+#NMSettingIPConfig:ignore-auto-dns properties modify this behavior.
+
+For methods that imply no upstream network, such as "shared" or
+"link-local", these properties must be empty.
+
+For IPv4 method "shared", the IP subnet can be configured by adding one
+manual IPv4 address or otherwise 10.42.x.0/24 is chosen. Note that the
+shared method must be configured on the interface which shares the internet
+to a subnet, not on the uplink which is shared.
+
+
+
+ If %TRUE, this connection will never be the default connection for this
+IP type, meaning it will never be assigned the default route by
+NetworkManager.
+
+
+
+ Connections will default to keep the autogenerated priority 0 local rule
+unless this setting is set to %TRUE.
+
+
+
+ The minimum time interval in milliseconds for which dynamic IP configuration
+should be tried before the connection succeeds.
+
+This property is useful for example if both IPv4 and IPv6 are enabled and
+are allowed to fail. Normally the connection succeeds as soon as one of
+the two address families completes; by setting a required timeout for
+e.g. IPv4, one can ensure that even if IP6 succeeds earlier than IPv4,
+NetworkManager waits some time for IPv4 before the connection becomes
+active.
+
+Note that if #NMSettingIPConfig:may-fail is FALSE for the same address
+family, this property has no effect as NetworkManager needs to wait for
+the full DHCP timeout.
+
+A zero value means that no required timeout is present, -1 means the
+default value (either configuration ipvx.required-timeout override or
+zero).
+
+
+
+ The default metric for routes that don't explicitly specify a metric.
+The default value -1 means that the metric is chosen automatically
+based on the device type.
+The metric applies to dynamic routes, manual (static) routes that
+don't have an explicit metric setting, address prefix routes, and
+the default route.
+Note that for IPv6, the kernel accepts zero (0) but coerces it to
+1024 (user default). Hence, setting this property to zero effectively
+mean setting it to 1024.
+For IPv4, zero is a regular value for the metric.
+
+
+
+ Enable policy routing (source routing) and set the routing table used when adding routes.
+
+This affects all routes, including device-routes, IPv4LL, DHCP, SLAAC, default-routes
+and static routes. But note that static routes can individually overwrite the setting
+by explicitly specifying a non-zero routing table.
+
+If the table setting is left at zero, it is eligible to be overwritten via global
+configuration. If the property is zero even after applying the global configuration
+value, policy routing is disabled for the address family of this connection.
+
+Policy routing disabled means that NetworkManager will add all routes to the main
+table (except static routes that explicitly configure a different table). Additionally,
+NetworkManager will not delete any extraneous routes from tables except the main table.
+This is to preserve backward compatibility for users who manage routing tables outside
+of NetworkManager.
+
+
+
+ Array of IP routes.
+
+
+
+
+
+
+
+
+
+ IP Tunneling Settings
+
+
+ Creates a new #NMSettingIPTunnel object with default values.
+
+
+ the new empty #NMSettingIPTunnel object
+
+
+
+
+ Returns the #NMSettingIPTunnel:encapsulation-limit property of the setting.
+
+
+ the encapsulation limit value
+
+
+
+
+ the #NMSettingIPTunnel
+
+
+
+
+
+ Returns the #NMSettingIPTunnel:flags property of the setting.
+
+
+ the tunnel flags
+
+
+
+
+ the #NMSettingIPTunnel
+
+
+
+
+
+ Returns the #NMSettingIPTunnel:flow-label property of the setting.
+
+
+ the flow label value
+
+
+
+
+ the #NMSettingIPTunnel
+
+
+
+
+
+ Returns the #NMSettingIPTunnel:fwmark property of the setting.
+
+
+ the fwmark value
+
+
+
+
+ the #NMSettingIPTunnel
+
+
+
+
+
+ Returns the #NMSettingIPTunnel:input-key property of the setting.
+
+
+ the input key
+
+
+
+
+ the #NMSettingIPTunnel
+
+
+
+
+
+ Returns the #NMSettingIPTunnel:local property of the setting.
+
+
+ the local endpoint
+
+
+
+
+ the #NMSettingIPTunnel
+
+
+
+
+
+ Returns the #NMSettingIPTunnel:mode property of the setting.
+
+
+ the tunnel mode
+
+
+
+
+ the #NMSettingIPTunnel
+
+
+
+
+
+ Returns the #NMSettingIPTunnel:mtu property of the setting.
+
+
+ the MTU
+
+
+
+
+ the #NMSettingIPTunnel
+
+
+
+
+
+ Returns the #NMSettingIPTunnel:output-key property of the setting.
+
+
+ the output key
+
+
+
+
+ the #NMSettingIPTunnel
+
+
+
+
+
+ Returns the #NMSettingIPTunnel:parent property of the setting
+
+
+ the parent device
+
+
+
+
+ the #NMSettingIPTunnel
+
+
+
+
+
+ Returns the #NMSettingIPTunnel:path-mtu-discovery property of the setting.
+
+
+ whether path MTU discovery is enabled
+
+
+
+
+ the #NMSettingIPTunnel
+
+
+
+
+
+ Returns the #NMSettingIPTunnel:remote property of the setting.
+
+
+ the remote endpoint
+
+
+
+
+ the #NMSettingIPTunnel
+
+
+
+
+
+ Returns the #NMSettingIPTunnel:tos property of the setting.
+
+
+ the TOS value
+
+
+
+
+ the #NMSettingIPTunnel
+
+
+
+
+
+ Returns the #NMSettingIPTunnel:ttl property of the setting.
+
+
+ the Time-to-live value
+
+
+
+
+ the #NMSettingIPTunnel
+
+
+
+
+
+ How many additional levels of encapsulation are permitted to be prepended
+to packets. This property applies only to IPv6 tunnels. To disable this option,
+add %NM_IP_TUNNEL_FLAG_IP6_IGN_ENCAP_LIMIT to ip-tunnel flags.
+
+
+
+ Tunnel flags. Currently, the following values are supported:
+%NM_IP_TUNNEL_FLAG_IP6_IGN_ENCAP_LIMIT, %NM_IP_TUNNEL_FLAG_IP6_USE_ORIG_TCLASS,
+%NM_IP_TUNNEL_FLAG_IP6_USE_ORIG_FLOWLABEL, %NM_IP_TUNNEL_FLAG_IP6_MIP6_DEV,
+%NM_IP_TUNNEL_FLAG_IP6_RCV_DSCP_COPY, %NM_IP_TUNNEL_FLAG_IP6_USE_ORIG_FWMARK.
+They are valid only for IPv6 tunnels.
+
+
+
+ The flow label to assign to tunnel packets. This property applies only to
+IPv6 tunnels.
+
+
+
+ The fwmark value to assign to tunnel packets. This property can be set
+to a non zero value only on VTI and VTI6 tunnels.
+
+
+
+ The key used for tunnel input packets; the property is valid only for
+certain tunnel modes (GRE, IP6GRE). If empty, no key is used.
+
+
+
+ The local endpoint of the tunnel; the value can be empty, otherwise it
+must contain an IPv4 or IPv6 address.
+
+
+
+ The tunneling mode. Valid values: %NM_IP_TUNNEL_MODE_IPIP,
+%NM_IP_TUNNEL_MODE_GRE, %NM_IP_TUNNEL_MODE_SIT, %NM_IP_TUNNEL_MODE_ISATAP,
+%NM_IP_TUNNEL_MODE_VTI, %NM_IP_TUNNEL_MODE_IP6IP6, %NM_IP_TUNNEL_MODE_IPIP6,
+%NM_IP_TUNNEL_MODE_IP6GRE, %NM_IP_TUNNEL_MODE_VTI6, %NM_IP_TUNNEL_MODE_GRETAP
+and %NM_IP_TUNNEL_MODE_IP6GRETAP
+
+
+
+ If non-zero, only transmit packets of the specified size or smaller,
+breaking larger packets up into multiple fragments.
+
+
+
+ The key used for tunnel output packets; the property is valid only for
+certain tunnel modes (GRE, IP6GRE). If empty, no key is used.
+
+
+
+ If given, specifies the parent interface name or parent connection UUID
+the new device will be bound to so that tunneled packets will only be
+routed via that interface.
+
+
+
+ Whether to enable Path MTU Discovery on this tunnel.
+
+
+
+ The remote endpoint of the tunnel; the value must contain an IPv4 or IPv6
+address.
+
+
+
+ The type of service (IPv4) or traffic class (IPv6) field to be set on
+tunneled packets.
+
+
+
+ The TTL to assign to tunneled packets. 0 is a special value meaning that
+packets inherit the TTL value.
+
+
+
+
+
+
+
+ Infiniband Settings
+
+
+ Creates a new #NMSettingInfiniband object with default values.
+
+
+ the new empty #NMSettingInfiniband object
+
+
+
+
+
+
+ the #NMSettingInfiniband:mac-address property of the setting
+
+
+
+
+ the #NMSettingInfiniband
+
+
+
+
+
+
+
+ the #NMSettingInfiniband:mtu property of the setting
+
+
+
+
+ the #NMSettingInfiniband
+
+
+
+
+
+ Returns the P_Key to use for this device. A value of -1 means to
+use the default P_Key (aka "the P_Key at index 0"). Otherwise, it is
+a 16-bit unsigned integer.
+
+
+ the IPoIB P_Key
+
+
+
+
+ the #NMSettingInfiniband
+
+
+
+
+
+ Returns the parent interface name for this device, if set.
+
+
+ the parent interface name
+
+
+
+
+ the #NMSettingInfiniband
+
+
+
+
+
+ Returns the transport mode for this device. Either 'datagram' or
+'connected'.
+
+
+ the IPoIB transport mode
+
+
+
+
+ the #NMSettingInfiniband
+
+
+
+
+
+ Returns the interface name created by combining #NMSettingInfiniband:parent
+and #NMSettingInfiniband:p-key. (If either property is unset, this will
+return %NULL.)
+
+
+ the interface name, or %NULL
+
+
+
+
+ the #NMSettingInfiniband
+
+
+
+
+
+ If specified, this connection will only apply to the IPoIB device whose
+permanent MAC address matches. This property does not change the MAC
+address of the device (i.e. MAC spoofing).
+
+
+
+ If non-zero, only transmit packets of the specified size or smaller,
+breaking larger packets up into multiple frames.
+
+
+
+ The InfiniBand p-key to use for this device. A value of -1 means to use
+the default p-key (aka "the p-key at index 0"). Otherwise, it is a
+16-bit unsigned integer, whose high bit 0x8000 is set if it is a "full
+membership" p-key. The values 0 and 0x8000 are not allowed.
+
+With the p-key set, the interface name is always "$parent.$p_key".
+Setting "connection.interface-name" to another name is not supported.
+
+Note that kernel will internally always set the full membership bit,
+although the interface name does not reflect that. Usually the user
+would want to configure a full membership p-key with 0x8000 flag set.
+
+
+
+ The interface name of the parent device of this device. Normally %NULL,
+but if the #NMSettingInfiniband:p_key property is set, then you must
+specify the base device by setting either this property or
+#NMSettingInfiniband:mac-address.
+
+
+
+ The IP-over-InfiniBand transport mode. Either "datagram" or
+"connected".
+
+
+
+
+
+
+
+ Link settings
+
+
+ Creates a new #NMSettingLink object with default values.
+
+
+ the new empty #NMSettingLink object
+
+
+
+
+ Returns the value contained in the #NMSettingLink:gro-max-size
+property.
+
+
+ the 'gro-max-size' property value
+
+
+
+
+ the #NMSettingLink
+
+
+
+
+
+ Returns the value contained in the #NMSettingLink:gso-max-segments
+property.
+
+
+ the 'gso-max-segments' property value
+
+
+
+
+ the #NMSettingLink
+
+
+
+
+
+ Returns the value contained in the #NMSettingLink:gso-max-size
+property.
+
+
+ the 'gso-max-size' property value
+
+
+
+
+ the #NMSettingLink
+
+
+
+
+
+ Returns the value contained in the #NMSettingLink:tx-queue-length
+property.
+
+
+ the 'tx-queue-length' property value
+
+
+
+
+ the #NMSettingLink
+
+
+
+
+
+ The maximum size of a packet built by the Generic Receive Offload stack for
+this device. The value must be between 0 and 4294967295. When set to -1, the
+existing value is preserved.
+
+
+
+ The maximum segments of a Generic Segment Offload packet the device should accept.
+The value must be between 0 and 4294967295. When set to -1, the existing value
+is preserved.
+
+
+
+ The maximum size of a Generic Segment Offload packet the device should accept.
+The value must be between 0 and 4294967295. When set to -1, the existing value
+is preserved.
+
+
+
+ The size of the transmit queue for the device, in number of packets. The value
+must be between 0 and 4294967295. When set to -1, the existing value is preserved.
+
+
+
+
+
+
+
+ Loopback Link Settings
+
+
+ Creates a new #NMSettingLoopback object with default values.
+
+
+ the new empty #NMSettingLoopback object
+
+
+
+
+
+
+ the #NMSettingLoopback:mtu property of the setting
+
+
+
+
+ the #NMSettingLoopback
+
+
+
+
+
+ If non-zero, only transmit packets of the specified size or smaller,
+breaking larger packets up into multiple Ethernet frames.
+
+
+
+
+
+
+
+ Controls if and how the MAC address of a device is randomzied.
+
+ the default value, which unless
+overridden by user-controlled defaults configuration, is "never".
+
+
+ the device's MAC address is always used.
+
+
+ a random MAC address is used.
+
+
+
+ MACSec Settings
+
+
+ Creates a new #NMSettingMacsec object with default values.
+
+
+ the new empty #NMSettingMacsec object
+
+
+
+
+
+
+ the #NMSettingMacsec:encrypt property of the setting
+
+
+
+
+ the #NMSettingMacsec
+
+
+
+
+
+
+
+ the #NMSettingMacsec:mka-cak property of the setting
+
+
+
+
+ the #NMSettingMacsec
+
+
+
+
+
+
+
+ the #NMSettingSecretFlags pertaining to the #NMSettingMacsec:mka-cak
+
+
+
+
+ the #NMSettingMacsec
+
+
+
+
+
+
+
+ the #NMSettingMacsec:mka-ckn property of the setting
+
+
+
+
+ the #NMSettingMacsec
+
+
+
+
+
+
+
+ the #NMSettingMacsec:mode property of the setting
+
+
+
+
+ the #NMSettingMacsec
+
+
+
+
+
+
+
+ the #NMSettingMacsec:offload property of the setting
+
+
+
+
+ the #NMSettingMacsec
+
+
+
+
+
+
+
+ the #NMSettingMacsec:parent property of the setting
+
+
+
+
+ the #NMSettingMacsec
+
+
+
+
+
+
+
+ the #NMSettingMacsec:port property of the setting
+
+
+
+
+ the #NMSettingMacsec
+
+
+
+
+
+
+
+ the #NMSettingMacsec:send-sci property of the setting
+
+
+
+
+ the #NMSettingMacsec
+
+
+
+
+
+
+
+ the #NMSettingMacsec:validation property of the setting
+
+
+
+
+ the #NMSettingMacsec
+
+
+
+
+
+ Whether the transmitted traffic must be encrypted.
+
+
+
+ The pre-shared CAK (Connectivity Association Key) for MACsec
+Key Agreement. Must be a string of 32 hexadecimal characters.
+
+
+
+ Flags indicating how to handle the #NMSettingMacsec:mka-cak
+property.
+
+
+
+ The pre-shared CKN (Connectivity-association Key Name) for
+MACsec Key Agreement. Must be a string of hexadecimal characters
+with a even length between 2 and 64.
+
+
+
+ Specifies how the CAK (Connectivity Association Key) for MKA (MACsec Key
+Agreement) is obtained.
+
+
+
+ Specifies the MACsec offload mode.
+
+%NM_SETTING_MACSEC_OFFLOAD_OFF disables MACsec offload.
+
+%NM_SETTING_MACSEC_OFFLOAD_PHY and %NM_SETTING_MACSEC_OFFLOAD_MAC request offload
+respectively to the PHY or to the MAC; if the selected mode is not available, the
+connection will fail.
+
+%NM_SETTING_MACSEC_OFFLOAD_DEFAULT uses the global default value specified in
+NetworkManager configuration; if no global default is defined, the built-in
+default is %NM_SETTING_MACSEC_OFFLOAD_OFF.
+
+
+
+ If given, specifies the parent interface name or parent connection UUID
+from which this MACSEC interface should be created. If this property is
+not specified, the connection must contain an #NMSettingWired setting
+with a #NMSettingWired:mac-address property.
+
+
+
+ The port component of the SCI (Secure Channel Identifier), between 1 and 65534.
+
+
+
+ Specifies whether the SCI (Secure Channel Identifier) is included
+in every packet.
+
+
+
+ Specifies the validation mode for incoming frames.
+
+
+
+
+
+
+
+ #NMSettingMacsecMode controls how the CAK (Connectivity Association Key) used
+in MKA (MACsec Key Agreement) is obtained.
+
+ The CAK is pre-shared
+
+
+ The CAK is the result of participation in EAP
+
+
+
+ These flags control the MACsec offload mode.
+
+ use the global default; disable if not defined
+
+
+ disable offload
+
+
+ request offload to the PHY
+
+
+ request offload to the MAC
+
+
+
+ #NMSettingMacsecValidation specifies a validation mode for incoming frames.
+
+ All incoming frames are accepted if
+ possible
+
+
+ Non protected, invalid, or impossible to
+ verify frames are accepted and counted as "invalid"
+
+
+ Non protected, invalid, or impossible to
+ verify frames are dropped
+
+
+
+ MAC VLAN Settings
+
+
+ Creates a new #NMSettingMacvlan object with default values.
+
+
+ the new empty #NMSettingMacvlan object
+
+
+
+
+
+
+ the #NMSettingMacvlan:mode property of the setting
+
+
+
+
+ the #NMSettingMacvlan
+
+
+
+
+
+
+
+ the #NMSettingMacvlan:parent property of the setting
+
+
+
+
+ the #NMSettingMacvlan
+
+
+
+
+
+
+
+ the #NMSettingMacvlan:promiscuous property of the setting
+
+
+
+
+ the #NMSettingMacvlan
+
+
+
+
+
+
+
+ the #NMSettingMacvlan:tap property of the setting
+
+
+
+
+ the #NMSettingMacvlan
+
+
+
+
+
+ The macvlan mode, which specifies the communication mechanism between multiple
+macvlans on the same lower device.
+
+
+
+ If given, specifies the parent interface name or parent connection UUID
+from which this MAC-VLAN interface should be created. If this property is
+not specified, the connection must contain an #NMSettingWired setting
+with a #NMSettingWired:mac-address property.
+
+
+
+ Whether the interface should be put in promiscuous mode.
+
+
+
+ Whether the interface should be a MACVTAP.
+
+
+
+
+
+
+
+
+ unknown/unset mode
+
+
+ Virtual Ethernet Port Aggregator mode
+
+
+ bridge mode
+
+
+ private mode
+
+
+ passthru mode
+
+
+ source mode
+
+
+
+ Match settings
+
+
+ Creates a new #NMSettingMatch object with default values.
+
+
+ the new empty #NMSettingMatch object
+
+Note that this function was present in header files since version 1.14.
+But due to a bug the symbol is only exposed and usable since version 1.32.
+As workaround, use g_object_new(NM_TYPE_SETTING_MATCH) which works with all
+versions since 1.14.
+
+
+
+
+ Adds a new driver to the setting.
+
+
+
+
+
+
+ the #NMSettingMatch
+
+
+
+ the driver to add
+
+
+
+
+
+ Adds a new interface name to the setting.
+
+
+
+
+
+
+ the #NMSettingMatch
+
+
+
+ the interface name to add
+
+
+
+
+
+ Adds a new kernel command line argument to the setting.
+
+
+
+
+
+
+ the #NMSettingMatch
+
+
+
+ the kernel command line argument to add
+
+
+
+
+
+ Adds a new path to the setting.
+
+
+
+
+
+
+ the #NMSettingMatch
+
+
+
+ the path to add
+
+
+
+
+
+ Removes all configured drivers.
+
+
+
+
+
+
+ the #NMSettingMatch
+
+
+
+
+
+ Removes all configured interface names.
+
+
+
+
+
+
+ the #NMSettingMatch
+
+
+
+
+
+ Removes all configured kernel command line arguments.
+
+
+
+
+
+
+ the #NMSettingMatch
+
+
+
+
+
+ Removes all configured paths.
+
+
+
+
+
+
+ the #NMSettingMatch
+
+
+
+
+
+ Since 1.46, access at index "len" is allowed and returns NULL.
+
+
+ the driver at index @idx
+
+
+
+
+ the #NMSettingMatch
+
+
+
+ index number of the DNS search domain to return
+
+
+
+
+
+ Returns all the drivers.
+
+
+ the configured drivers.
+
+
+
+
+
+
+ the #NMSettingMatch
+
+
+
+ the length of the returned interface names array.
+
+
+
+
+
+ Since 1.46, access at index "len" is allowed and returns NULL.
+
+
+ the interface name at index @idx
+
+
+
+
+ the #NMSettingMatch
+
+
+
+ index number of the DNS search domain to return
+
+
+
+
+
+ Returns all the interface names.
+
+
+ the NULL terminated list of
+ configured interface names.
+
+Before 1.26, the returned array was not %NULL terminated and you MUST provide a length.
+
+
+
+
+
+
+ the #NMSettingMatch
+
+
+
+ the length of the returned interface names array.
+
+
+
+
+
+ Since 1.46, access at index "len" is allowed and returns NULL.
+
+
+ the kernel command line argument at index @idx
+
+
+
+
+ the #NMSettingMatch
+
+
+
+ index number of the kernel command line argument to return
+
+
+
+
+
+ Returns all the interface names.
+
+
+ the configured interface names.
+
+
+
+
+
+
+ the #NMSettingMatch
+
+
+
+ the length of the returned interface names array.
+
+
+
+
+
+
+
+ the number of configured drivers
+
+
+
+
+ the #NMSettingMatch
+
+
+
+
+
+
+
+ the number of configured interface names
+
+
+
+
+ the #NMSettingMatch
+
+
+
+
+
+
+
+ the number of configured kernel command line arguments
+
+
+
+
+ the #NMSettingMatch
+
+
+
+
+
+
+
+ the number of configured paths
+
+
+
+
+ the #NMSettingMatch
+
+
+
+
+
+ Since 1.46, access at index "len" is allowed and returns NULL.
+
+
+ the path at index @idx
+
+
+
+
+ the #NMSettingMatch
+
+
+
+ index number of the path to return
+
+
+
+
+
+ Returns all the paths.
+
+
+ the configured paths.
+
+
+
+
+
+
+ the #NMSettingMatch
+
+
+
+ the length of the returned paths array.
+
+
+
+
+
+ Removes the driver at index @idx.
+
+
+
+
+
+
+ the #NMSettingMatch
+
+
+
+ index number of the driver
+
+
+
+
+
+ Removes @driver.
+
+
+ %TRUE if the driver was found and removed; %FALSE if it was not.
+
+
+
+
+ the #NMSettingMatch
+
+
+
+ the driver to remove
+
+
+
+
+
+ Removes the interface name at index @idx.
+
+
+
+
+
+
+ the #NMSettingMatch
+
+
+
+ index number of the interface name
+
+
+
+
+
+ Removes @interface_name.
+
+
+ %TRUE if the interface name was found and removed; %FALSE if it was not.
+
+
+
+
+ the #NMSettingMatch
+
+
+
+ the interface name to remove
+
+
+
+
+
+ Removes the kernel command line argument at index @idx.
+
+
+
+
+
+
+ the #NMSettingMatch
+
+
+
+ index number of the kernel command line argument
+
+
+
+
+
+ Removes @kernel_command_line.
+
+
+ %TRUE if the kernel command line argument was found and removed; %FALSE if it was not.
+
+
+
+
+ the #NMSettingMatch
+
+
+
+ the kernel command line argument name to remove
+
+
+
+
+
+ Removes the path at index @idx.
+
+
+
+
+
+
+ the #NMSettingMatch
+
+
+
+ index number of the path
+
+
+
+
+
+ Removes @path.
+
+
+ %TRUE if the path was found and removed; %FALSE if it was not.
+
+
+
+
+ the #NMSettingMatch
+
+
+
+ the path to remove
+
+
+
+
+
+ A list of driver names to match. Each element is a shell wildcard pattern.
+
+See NMSettingMatch:interface-name for how special characters '|', '&',
+'!' and '\\' are used for optional and mandatory matches and inverting the
+pattern.
+
+
+
+
+
+ A list of interface names to match. Each element is a shell wildcard
+pattern.
+
+An element can be prefixed with a pipe symbol (|) or an ampersand (&).
+The former means that the element is optional and the latter means that
+it is mandatory. If there are any optional elements, than the match
+evaluates to true if at least one of the optional element matches
+(logical OR). If there are any mandatory elements, then they all
+must match (logical AND). By default, an element is optional. This means
+that an element "foo" behaves the same as "|foo". An element can also be inverted
+with exclamation mark (!) between the pipe symbol (or the ampersand) and before
+the pattern. Note that "!foo" is a shortcut for the mandatory match "&!foo". Finally,
+a backslash can be used at the beginning of the element (after the optional special characters)
+to escape the start of the pattern. For example, "&\\!a" is an mandatory match for literally "!a".
+
+
+
+
+
+ A list of kernel command line arguments to match. This may be used to check
+whether a specific kernel command line option is set (or unset, if prefixed with
+the exclamation mark). The argument must either be a single word, or
+an assignment (i.e. two words, joined by "="). In the former case the kernel
+command line is searched for the word appearing as is, or as left hand side
+of an assignment. In the latter case, the exact assignment is looked for
+with right and left hand side matching. Wildcard patterns are not supported.
+
+See NMSettingMatch:interface-name for how special characters '|', '&',
+'!' and '\\' are used for optional and mandatory matches and inverting the
+match.
+
+
+
+
+
+ A list of paths to match against the ID_PATH udev property of
+devices. ID_PATH represents the topological persistent path of a
+device. It typically contains a subsystem string (pci, usb, platform,
+etc.) and a subsystem-specific identifier.
+
+For PCI devices the path has the form
+"pci-$domain:$bus:$device.$function", where each variable is an
+hexadecimal value; for example "pci-0000:0a:00.0".
+
+The path of a device can be obtained with "udevadm info
+/sys/class/net/$dev | grep ID_PATH=" or by looking at the "path"
+property exported by NetworkManager ("nmcli -f general.path device
+show $dev").
+
+Each element of the list is a shell wildcard pattern.
+
+See NMSettingMatch:interface-name for how special characters '|', '&',
+'!' and '\\' are used for optional and mandatory matches and inverting the
+pattern.
+
+
+
+
+
+
+
+
+
+ OLPC Wireless Mesh Settings
+
+
+ Creates a new #NMSettingOlpcMesh object with default values.
+
+
+ the new empty #NMSettingOlpcMesh object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ the #NMSettingOlpcMesh
+
+
+
+
+
+ Channel on which the mesh network to join is located.
+
+
+
+ Anycast DHCP MAC address used when requesting an IP address via DHCP.
+The specific anycast address used determines which DHCP server class
+answers the request.
+
+This is currently only implemented by dhclient DHCP plugin.
+
+
+
+ SSID of the mesh network to join.
+
+
+
+
+
+
+
+ OvsBridge Link Settings
+
+
+ Creates a new #NMSettingOvsBridge object with default values.
+
+
+ the new empty #NMSettingOvsBridge object
+
+
+
+
+
+
+ the #NMSettingOvsBridge:datapath_type property of the setting
+
+
+
+
+ the #NMSettingOvsBridge
+
+
+
+
+
+
+
+ the #NMSettingOvsBridge:fail_mode property of the setting
+
+
+
+
+ the #NMSettingOvsBridge
+
+
+
+
+
+
+
+ the #NMSettingOvsBridge:mcast_snooping_enable property of the setting
+
+
+
+
+ the #NMSettingOvsBridge
+
+
+
+
+
+
+
+ the #NMSettingOvsBridge:rstp_enable property of the setting
+
+
+
+
+ the #NMSettingOvsBridge
+
+
+
+
+
+
+
+ the #NMSettingOvsBridge:stp_enable property of the setting
+
+
+
+
+ the #NMSettingOvsBridge
+
+
+
+
+
+ The data path type. One of "system", "netdev" or empty.
+
+
+
+ The bridge failure mode. One of "secure", "standalone" or empty.
+
+
+
+ Enable or disable multicast snooping.
+
+
+
+ Enable or disable RSTP.
+
+
+
+ Enable or disable STP.
+
+
+
+
+
+
+
+ OvsDpdk Link Settings
+
+
+ Creates a new #NMSettingOvsDpdk object with default values.
+
+
+ the new empty #NMSettingOvsDpdk object
+
+
+
+
+
+
+ the #NMSettingOvsDpdk:devargs property of the setting
+
+
+
+
+ the #NMSettingOvsDpdk
+
+
+
+
+
+
+
+ the #NMSettingOvsDpdk:n-rxq property of the setting
+
+
+
+
+ the #NMSettingOvsDpdk
+
+
+
+
+
+
+
+ the #NMSettingOvsDpdk:n-rxq-desc property of the setting
+
+
+
+
+ the #NMSettingOvsDpdk
+
+
+
+
+
+
+
+ the #NMSettingOvsDpdk:n-txq-desc property of the setting
+
+
+
+
+ the #NMSettingOvsDpdk
+
+
+
+
+
+ Open vSwitch DPDK device arguments.
+
+
+
+ Open vSwitch DPDK number of rx queues.
+Defaults to zero which means to leave the parameter in OVS unspecified
+and effectively configures one queue.
+
+
+
+ The rx queue size (number of rx descriptors) for DPDK ports.
+Must be zero or a power of 2 between 1 and 4096, and supported
+by the hardware. Defaults to zero which means to leave the
+parameter in OVS unspecified and effectively configures 2048
+descriptors.
+
+
+
+ The tx queue size (number of tx descriptors) for DPDK ports.
+Must be zero or a power of 2 between 1 and 4096, and supported
+by the hardware. Defaults to zero which means to leave the
+parameter in OVS unspecified and effectively configures 2048
+descriptors.
+
+
+
+
+
+
+
+ OVS External IDs Settings
+
+
+ Creates a new #NMSettingOvsExternalIDs object with default values.
+
+
+ the new empty
+#NMSettingOvsExternalIDs object
+
+
+
+
+ Checks whether @key is a valid key for OVS' external-ids.
+This means, the key cannot be %NULL, not too large and valid ASCII.
+Also, only digits and numbers are allowed with a few special
+characters. They key must also not start with "NM.".
+
+
+ %TRUE if @key is a valid user data key.
+
+
+
+
+ the key to check
+
+
+
+
+
+ Checks whether @val is a valid user data value. This means,
+value is not %NULL, not too large and valid UTF-8.
+
+
+ %TRUE if @val is a valid user data value.
+
+
+
+
+ the value to check
+
+
+
+
+
+
+
+ the value associated with @key or %NULL if no such
+ value exists.
+
+
+
+
+ the #NMSettingOvsExternalIDs instance
+
+
+
+ the external-id to lookup
+
+
+
+
+
+
+
+ a
+ %NULL-terminated array containing each key from the table.
+
+
+
+
+
+
+ the #NMSettingOvsExternalIDs
+
+
+
+ the length of the returned array
+
+
+
+
+
+
+
+
+
+
+
+ the #NMSettingOvsExternalIDs instance
+
+
+
+ the key to set
+
+
+
+ the value to set or %NULL to clear a key.
+
+
+
+
+
+ A dictionary of key/value pairs with external-ids for OVS.
+
+
+
+
+
+
+
+
+
+
+ Open vSwitch Interface Settings
+
+
+ Creates a new #NMSettingOvsInterface object with default values.
+
+
+ the new empty #NMSettingOvsInterface object
+
+
+
+
+
+
+ the #NMSettingOvsInterface:type property of the setting
+
+
+
+
+ the #NMSettingOvsInterface
+
+
+
+
+
+
+
+ id of the preassigned ovs port
+
+
+
+
+ the #NMSettingOvsInterface
+
+
+
+
+
+ Open vSwitch openflow port number.
+Defaults to zero which means that port number will not be specified
+and it will be chosen randomly by ovs. OpenFlow ports are the network interfaces
+for passing packets between OpenFlow processing and the rest of the network.
+OpenFlow switches connect logically to each other via their OpenFlow ports.
+
+
+
+ The interface type. Either "internal", "system", "patch", "dpdk", or empty.
+
+
+
+
+
+
+
+ OVS Other Config Settings
+
+
+ Creates a new #NMSettingOvsOtherConfig object with default values.
+
+
+ the new empty
+#NMSettingOvsOtherConfig object
+
+
+
+
+
+
+ the value associated with @key or %NULL if no such
+ value exists.
+
+
+
+
+ the #NMSettingOvsOtherConfig instance
+
+
+
+ the other-config to lookup
+
+
+
+
+
+
+
+ a
+ %NULL-terminated array containing each key from the table.
+
+
+
+
+
+
+ the #NMSettingOvsOtherConfig
+
+
+
+ the length of the returned array
+
+
+
+
+
+
+
+
+
+
+
+ the #NMSettingOvsOtherConfig instance
+
+
+
+ the key to set
+
+
+
+ the value to set or %NULL to clear a key.
+
+
+
+
+
+ A dictionary of key/value pairs with other_config settings for OVS.
+See also "other_config" in the "ovs-vswitchd.conf.db" manual for the keys
+that OVS supports.
+
+
+
+
+
+
+
+
+
+
+ OvsPatch Link Settings
+
+
+ Creates a new #NMSettingOvsPatch object with default values.
+
+
+ the new empty #NMSettingOvsPatch object
+
+
+
+
+
+
+ the #NMSettingOvsPatch:peer property of the setting
+
+
+
+
+ the #NMSettingOvsPatch
+
+
+
+
+
+ Specifies the name of the interface for the other side of the patch.
+The patch on the other side must also set this interface as peer.
+
+
+
+
+
+
+
+ OvsPort Link Settings
+
+
+ Creates a new #NMSettingOvsPort object with default values.
+
+
+ the new empty #NMSettingOvsPort object
+
+
+
+
+ Appends a new trunk range to the setting.
+This takes a reference to @trunk.
+
+
+
+
+
+
+ the #NMSettingOvsPort
+
+
+
+ the trunk to add
+
+
+
+
+
+ Removes all configured trunk ranges.
+
+
+
+
+
+
+ the #NMSettingOvsPort
+
+
+
+
+
+
+
+ the #NMSettingOvsPort:bond-downdelay property of the setting
+
+
+
+
+ the #NMSettingOvsPort
+
+
+
+
+
+
+
+ the #NMSettingOvsPort:bond-mode property of the setting
+
+
+
+
+ the #NMSettingOvsPort
+
+
+
+
+
+
+
+ the #NMSettingOvsPort:bond-updelay property of the setting
+
+
+
+
+ the #NMSettingOvsPort
+
+
+
+
+
+
+
+ the #NMSettingOvsPort:lacp property of the setting
+
+
+
+
+ the #NMSettingOvsPort
+
+
+
+
+
+
+
+ the number of trunk ranges
+
+
+
+
+ the #NMSettingOvsPort
+
+
+
+
+
+
+
+ the #NMSettingOvsPort:tag property of the setting
+
+
+
+
+ the #NMSettingOvsPort
+
+
+
+
+
+
+
+ the trunk range at index @idx
+
+
+
+
+ the #NMSettingOvsPort
+
+
+
+ index number of the trunk range to return
+
+
+
+
+
+
+
+ the #NMSettingOvsPort:vlan-mode property of the setting
+
+
+
+
+ the #NMSettingOvsPort
+
+
+
+
+
+ Removes the trunk range at index @idx.
+
+
+
+
+
+
+ the #NMSettingOvsPort
+
+
+
+ index number of the trunk range.
+
+
+
+
+
+ Remove the trunk range with range @start to @end.
+
+
+ %TRUE if the trunk range was found and removed; %FALSE otherwise
+
+
+
+
+ the #NMSettingOvsPort
+
+
+
+ the trunk range start index
+
+
+
+ the trunk range end index
+
+
+
+
+
+ The time port must be inactive in order to be considered down.
+
+
+
+ Bonding mode. One of "active-backup", "balance-slb", or "balance-tcp".
+
+
+
+ The time port must be active before it starts forwarding traffic.
+
+
+
+ LACP mode. One of "active", "off", or "passive".
+
+
+
+ The VLAN tag in the range 0-4095.
+
+
+
+ A list of VLAN ranges that this port trunks.
+
+The property is valid only for ports with mode "trunk",
+"native-tagged", or "native-untagged port".
+If it is empty, the port trunks all VLANs.
+
+
+
+
+
+ The VLAN mode. One of "access", "native-tagged", "native-untagged",
+"trunk", "dot1q-tunnel" or unset.
+
+
+
+
+
+
+
+ Point-to-Point Protocol Settings
+
+
+ Creates a new #NMSettingPpp object with default values.
+
+
+ the new empty #NMSettingPpp object
+
+
+
+
+
+
+ the #NMSettingPpp:baud property of the setting
+
+
+
+
+ the #NMSettingPpp
+
+
+
+
+
+
+
+ the #NMSettingPpp:crtscts property of the setting
+
+
+
+
+ the #NMSettingPpp
+
+
+
+
+
+
+
+ the #NMSettingPpp:lcp-echo-failure property of the setting
+
+
+
+
+ the #NMSettingPpp
+
+
+
+
+
+
+
+ the #NMSettingPpp:lcp-echo-interval property of the setting
+
+
+
+
+ the #NMSettingPpp
+
+
+
+
+
+
+
+ the #NMSettingPpp:mppe-stateful property of the setting
+
+
+
+
+ the #NMSettingPpp
+
+
+
+
+
+
+
+ the #NMSettingPpp:mru property of the setting
+
+
+
+
+ the #NMSettingPpp
+
+
+
+
+
+
+
+ the #NMSettingPpp:mtu property of the setting
+
+
+
+
+ the #NMSettingPpp
+
+
+
+
+
+
+
+ the #NMSettingPpp:no-vj-comp property of the setting
+
+
+
+
+ the #NMSettingPpp
+
+
+
+
+
+
+
+ the #NMSettingPpp:noauth property of the setting
+
+
+
+
+ the #NMSettingPpp
+
+
+
+
+
+
+
+ the #NMSettingPpp:nobsdcomp property of the setting
+
+
+
+
+ the #NMSettingPpp
+
+
+
+
+
+
+
+ the #NMSettingPpp:nodeflate property of the setting
+
+
+
+
+ the #NMSettingPpp
+
+
+
+
+
+
+
+ the #NMSettingPpp:refuse-chap property of the setting
+
+
+
+
+ the #NMSettingPpp
+
+
+
+
+
+
+
+ the #NMSettingPpp:refuse-eap property of the setting
+
+
+
+
+ the #NMSettingPpp
+
+
+
+
+
+
+
+ the #NMSettingPpp:refuse-mschap property of the setting
+
+
+
+
+ the #NMSettingPpp
+
+
+
+
+
+
+
+ the #NMSettingPpp:refuse-mschapv2 property of the setting
+
+
+
+
+ the #NMSettingPpp
+
+
+
+
+
+
+
+ the #NMSettingPpp:refuse-pap property of the setting
+
+
+
+
+ the #NMSettingPpp
+
+
+
+
+
+
+
+ the #NMSettingPpp:require-mppe property of the setting
+
+
+
+
+ the #NMSettingPpp
+
+
+
+
+
+
+
+ the #NMSettingPpp:require-mppe-128 property of the setting
+
+
+
+
+ the #NMSettingPpp
+
+
+
+
+
+ If non-zero, instruct pppd to set the serial port to the specified
+baudrate. This value should normally be left as 0 to automatically
+choose the speed.
+
+
+
+ If %TRUE, specify that pppd should set the serial port to use hardware
+flow control with RTS and CTS signals. This value should normally be set
+to %FALSE.
+
+
+
+ If non-zero, instruct pppd to presume the connection to the peer has
+failed if the specified number of LCP echo-requests go unanswered by the
+peer. The "lcp-echo-interval" property must also be set to a non-zero
+value if this property is used.
+
+
+
+ If non-zero, instruct pppd to send an LCP echo-request frame to the peer
+every n seconds (where n is the specified value). Note that some PPP
+peers will respond to echo requests and some will not, and it is not
+possible to autodetect this.
+
+
+
+ If %TRUE, stateful MPPE is used. See pppd documentation for more
+information on stateful MPPE.
+
+
+
+ If non-zero, instruct pppd to request that the peer send packets no
+larger than the specified size. If non-zero, the MRU should be between
+128 and 16384.
+
+
+
+ If non-zero, instruct pppd to send packets no larger than the specified
+size.
+
+
+
+ If %TRUE, Van Jacobsen TCP header compression will not be requested.
+
+
+
+ If %TRUE, do not require the other side (usually the PPP server) to
+authenticate itself to the client. If %FALSE, require authentication
+from the remote side. In almost all cases, this should be %TRUE.
+
+
+
+ If %TRUE, BSD compression will not be requested.
+
+
+
+ If %TRUE, "deflate" compression will not be requested.
+
+
+
+ If %TRUE, the CHAP authentication method will not be used.
+
+
+
+ If %TRUE, the EAP authentication method will not be used.
+
+
+
+ If %TRUE, the MSCHAP authentication method will not be used.
+
+
+
+ If %TRUE, the MSCHAPv2 authentication method will not be used.
+
+
+
+ If %TRUE, the PAP authentication method will not be used.
+
+
+
+ If %TRUE, MPPE (Microsoft Point-to-Point Encryption) will be required for
+the PPP session. If either 64-bit or 128-bit MPPE is not available the
+session will fail. Note that MPPE is not used on mobile broadband
+connections.
+
+
+
+ If %TRUE, 128-bit MPPE (Microsoft Point-to-Point Encryption) will be
+required for the PPP session, and the "require-mppe" property must also
+be set to %TRUE. If 128-bit MPPE is not available the session will fail.
+
+
+
+
+
+
+
+ PPP-over-Ethernet Settings
+
+
+ Creates a new #NMSettingPppoe object with default values.
+
+
+ the new empty #NMSettingPppoe object
+
+
+
+
+
+
+ the #NMSettingPppoe:parent property of the setting
+
+
+
+
+ the #NMSettingPppoe
+
+
+
+
+
+
+
+ the #NMSettingPppoe:password property of the setting
+
+
+
+
+ the #NMSettingPppoe
+
+
+
+
+
+
+
+ the #NMSettingSecretFlags pertaining to the #NMSettingPppoe:password
+
+
+
+
+ the #NMSettingPppoe
+
+
+
+
+
+
+
+ the #NMSettingPppoe:service property of the setting
+
+
+
+
+ the #NMSettingPppoe
+
+
+
+
+
+
+
+ the #NMSettingPppoe:username property of the setting
+
+
+
+
+ the #NMSettingPppoe
+
+
+
+
+
+ If given, specifies the parent interface name on which this PPPoE
+connection should be created. If this property is not specified,
+the connection is activated on the interface specified in
+#NMSettingConnection:interface-name of #NMSettingConnection.
+
+
+
+ Password used to authenticate with the PPPoE service.
+
+
+
+ Flags indicating how to handle the #NMSettingPppoe:password property.
+
+
+
+ If specified, instruct PPPoE to only initiate sessions with access
+concentrators that provide the specified service. For most providers,
+this should be left blank. It is only required if there are multiple
+access concentrators or a specific service is known to be required.
+
+
+
+ Username used to authenticate with the PPPoE service.
+
+
+
+
+
+
+
+ WWW Proxy Settings
+
+
+ Creates a new #NMSettingProxy object.
+
+
+ the new empty #NMSettingProxy object
+
+
+
+
+
+
+ %TRUE if this proxy configuration is only for browser
+clients/schemes, %FALSE otherwise.
+
+
+
+
+ the #NMSettingProxy
+
+
+
+
+
+ Returns the proxy configuration method. By default the value is %NM_SETTING_PROXY_METHOD_NONE.
+%NM_SETTING_PROXY_METHOD_NONE should be selected for a connection intended for direct network
+access.
+
+
+ the proxy configuration method
+
+
+
+
+ the #NMSettingProxy
+
+
+
+
+
+
+
+ the PAC script.
+
+
+
+
+ the #NMSettingProxy
+
+
+
+
+
+
+
+ the PAC URL for obtaining PAC file
+
+
+
+
+ the #NMSettingProxy
+
+
+
+
+
+ Whether the proxy configuration is for browser only.
+
+
+
+ Method for proxy configuration, Default is %NM_SETTING_PROXY_METHOD_NONE
+
+
+
+ PAC script for the connection. This is an UTF-8 encoded javascript code
+that defines a FindProxyForURL() function.
+
+
+
+ PAC URL for obtaining PAC file.
+
+
+
+
+
+
+
+ The Proxy method.
+
+ No Proxy for the Connection
+
+
+ DHCP obtained Proxy/ Manual override
+
+
+
+ These flags indicate specific behavior related to handling of a secret. Each
+secret has a corresponding set of these flags which indicate how the secret
+is to be stored and/or requested when it is needed.
+
+ the system is responsible for providing and
+storing this secret (default)
+
+
+ a user secret agent is responsible
+for providing and storing this secret; when it is required agents will be
+asked to retrieve it
+
+
+ this secret should not be saved, but
+should be requested from the user each time it is needed
+
+
+ in situations where it cannot be
+automatically determined that the secret is required (some VPNs and PPP
+providers don't require all secrets) this flag indicates that the specific
+secret is not required
+
+
+
+ Serial Link Settings
+
+
+ Creates a new #NMSettingSerial object with default values.
+
+
+ the new empty #NMSettingSerial object
+
+
+
+
+
+
+ the #NMSettingSerial:baud property of the setting
+
+
+
+
+ the #NMSettingSerial
+
+
+
+
+
+
+
+ the #NMSettingSerial:bits property of the setting
+
+
+
+
+ the #NMSettingSerial
+
+
+
+
+
+
+
+ the #NMSettingSerial:parity property of the setting
+
+
+
+
+ the #NMSettingSerial
+
+
+
+
+
+
+
+ the #NMSettingSerial:send-delay property of the setting
+
+
+
+
+ the #NMSettingSerial
+
+
+
+
+
+
+
+ the #NMSettingSerial:stopbits property of the setting
+
+
+
+
+ the #NMSettingSerial
+
+
+
+
+
+ Speed to use for communication over the serial port. Note that this
+value usually has no effect for mobile broadband modems as they generally
+ignore speed settings and use the highest available speed.
+
+
+
+ Byte-width of the serial communication. The 8 in "8n1" for example.
+
+
+
+ Parity setting of the serial port.
+
+
+
+ Time to delay between each byte sent to the modem, in microseconds.
+
+
+
+ Number of stop bits for communication on the serial port. Either 1 or 2.
+The 1 in "8n1" for example.
+
+
+
+
+
+
+
+ The parity setting of a serial port.
+
+ No parity bits (default)
+
+
+ Even parity
+
+
+ Odd parity
+
+
+
+ SR-IOV settings
+
+
+ Creates a new #NMSettingSriov object with default values.
+
+
+ the new empty #NMSettingSriov object
+
+
+
+
+ Appends a new VF and associated information to the setting. The
+given VF is duplicated internally and is not changed by this function.
+
+
+
+
+
+
+ the #NMSettingSriov
+
+
+
+ the VF to add
+
+
+
+
+
+ Removes all configured VFs.
+
+
+
+
+
+
+ the #NMSettingSriov
+
+
+
+
+
+ Returns the value contained in the #NMSettingSriov:autoprobe-drivers
+property.
+
+
+ the autoprobe-drivers property value
+
+
+
+
+ the #NMSettingSriov
+
+
+
+
+
+
+
+ the value contained in the #NMSettingSriov:eswitch-encap-mode property.
+
+
+
+
+ the #NMSettingSriov
+
+
+
+
+
+
+
+ the value contained in the #NMSettingSriov:eswitch-inline-mode property.
+
+
+
+
+ the #NMSettingSriov
+
+
+
+
+
+
+
+ the value contained in the #NMSettingSriov:eswitch-mode property.
+
+
+
+
+ the #NMSettingSriov
+
+
+
+
+
+
+
+ the number of configured VFs
+
+
+
+
+ the #NMSettingSriov
+
+
+
+
+
+ Returns the value contained in the #NMSettingSriov:total-vfs
+property.
+
+
+ the total number of SR-IOV virtual functions to create
+
+
+
+
+ the #NMSettingSriov
+
+
+
+
+
+
+
+ the VF at index @idx
+
+
+
+
+ the #NMSettingSriov
+
+
+
+ index number of the VF to return
+
+
+
+
+
+ Removes the VF at index @idx.
+
+
+
+
+
+
+ the #NMSettingSriov
+
+
+
+ index number of the VF
+
+
+
+
+
+ Removes the VF with VF index @index.
+
+
+ %TRUE if the VF was found and removed; %FALSE if it was not
+
+
+
+
+ the #NMSettingSriov
+
+
+
+ the VF index of the VF to remove
+
+
+
+
+
+ Whether to autoprobe virtual functions by a compatible driver.
+
+If set to %NM_TERNARY_TRUE, the kernel will try to bind VFs to
+a compatible driver and if this succeeds a new network
+interface will be instantiated for each VF.
+
+If set to %NM_TERNARY_FALSE, VFs will not be claimed and no
+network interfaces will be created for them.
+
+When set to %NM_TERNARY_DEFAULT, the global default is used; in
+case the global default is unspecified it is assumed to be
+%NM_TERNARY_TRUE.
+
+
+
+ Select the eswitch encapsulation support.
+
+Currently it's only supported for PCI PF devices, and only if the eswitch device
+is managed from the same PCI address than the PF.
+
+If set to %NM_SRIOV_ESWITCH_ENCAP_MODE_PRESERVE (default) the eswitch encap-mode
+won't be modified by NetworkManager.
+
+
+
+ Select the eswitch inline-mode of the device. Some HWs need the VF driver to put
+part of the packet headers on the TX descriptor so the e-switch can do proper
+matching and steering.
+
+Currently it's only supported for PCI PF devices, and only if the eswitch device
+is managed from the same PCI address than the PF.
+
+If set to %NM_SRIOV_ESWITCH_INLINE_MODE_PRESERVE (default) the eswitch inline-mode
+won't be modified by NetworkManager.
+
+
+
+ Select the eswitch mode of the device. Currently it's only supported for
+PCI PF devices, and only if the eswitch device is managed from the same
+PCI address than the PF.
+
+If set to %NM_SRIOV_ESWITCH_MODE_PRESERVE (default) the eswitch mode won't be
+modified by NetworkManager.
+
+
+
+ The total number of virtual functions to create.
+
+Note that when the sriov setting is present NetworkManager
+enforces the number of virtual functions on the interface
+(also when it is zero) during activation and resets it
+upon deactivation. To prevent any changes to SR-IOV
+parameters don't add a sriov setting to the connection.
+
+
+
+ Array of virtual function descriptors.
+
+Each VF descriptor is a dictionary mapping attribute names
+to GVariant values. The 'index' entry is mandatory for
+each VF.
+
+When represented as string a VF is in the form:
+
+ "INDEX [ATTR=VALUE[ ATTR=VALUE]...]".
+
+for example:
+
+ "2 mac=00:11:22:33:44:55 spoof-check=true".
+
+Multiple VFs can be specified using a comma as separator.
+Currently, the following attributes are supported: mac,
+spoof-check, trust, min-tx-rate, max-tx-rate, vlans.
+
+The "vlans" attribute is represented as a semicolon-separated
+list of VLAN descriptors, where each descriptor has the form
+
+ "ID[.PRIORITY[.PROTO]]".
+
+PROTO can be either 'q' for 802.1Q (the default) or 'ad' for
+802.1ad.
+
+
+
+
+
+
+
+
+
+ Linux Traffic Control Settings
+
+
+ Creates a new #NMSettingTCConfig object with default values.
+
+
+ the new empty #NMSettingTCConfig object
+
+
+
+
+ Appends a new qdisc and associated information to the setting. The
+given qdisc is duplicated internally and is not changed by this function.
+If an identical qdisc (considering attributes as well) already exists, the
+qdisc is not added and the function returns %FALSE.
+
+
+ %TRUE if the qdisc was added; %FALSE if the qdisc was already known.
+
+
+
+
+ the #NMSettingTCConfig
+
+
+
+ the qdisc to add
+
+
+
+
+
+ Appends a new tfilter and associated information to the setting. The
+given tfilter is duplicated internally and is not changed by this function.
+If an identical tfilter (considering attributes as well) already exists, the
+tfilter is not added and the function returns %FALSE.
+
+
+ %TRUE if the tfilter was added; %FALSE if the tfilter was already known.
+
+
+
+
+ the #NMSettingTCConfig
+
+
+
+ the tfilter to add
+
+
+
+
+
+ Removes all configured queueing disciplines.
+
+
+
+
+
+
+ the #NMSettingTCConfig
+
+
+
+
+
+ Removes all configured queueing disciplines.
+
+
+
+
+
+
+ the #NMSettingTCConfig
+
+
+
+
+
+
+
+ the number of configured queueing disciplines
+
+
+
+
+ the #NMSettingTCConfig
+
+
+
+
+
+
+
+ the number of configured queueing disciplines
+
+
+
+
+ the #NMSettingTCConfig
+
+
+
+
+
+
+
+ the qdisc at index @idx
+
+
+
+
+ the #NMSettingTCConfig
+
+
+
+ index number of the qdisc to return
+
+
+
+
+
+
+
+ the tfilter at index @idx
+
+
+
+
+ the #NMSettingTCConfig
+
+
+
+ index number of the tfilter to return
+
+
+
+
+
+ Removes the qdisc at index @idx.
+
+
+
+
+
+
+ the #NMSettingTCConfig
+
+
+
+ index number of the qdisc
+
+
+
+
+
+ Removes the first matching qdisc that matches @qdisc.
+
+
+ %TRUE if the qdisc was found and removed; %FALSE if it was not.
+
+
+
+
+ the #NMSettingTCConfig
+
+
+
+ the qdisc to remove
+
+
+
+
+
+ Removes the tfilter at index @idx.
+
+
+
+
+
+
+ the #NMSettingTCConfig
+
+
+
+ index number of the tfilter
+
+
+
+
+
+ Removes the first matching tfilter that matches @tfilter.
+
+
+ %TRUE if the tfilter was found and removed; %FALSE if it was not.
+
+
+
+
+ the #NMSettingTCConfig
+
+
+
+ the tfilter to remove
+
+
+
+
+
+ Array of TC queueing disciplines.
+
+When the #NMSettingTCConfig setting is present, qdiscs from this
+property are applied upon activation. If the property is empty,
+all qdiscs are removed and the device will only
+have the default qdisc assigned by kernel according to the
+"net.core.default_qdisc" sysctl.
+
+If the #NMSettingTCConfig setting is not present, NetworkManager
+doesn't touch the qdiscs present on the interface.
+
+
+
+
+
+ Array of TC traffic filters.
+
+When the #NMSettingTCConfig setting is present, filters from this
+property are applied upon activation. If the property is empty,
+NetworkManager removes all the filters.
+
+If the #NMSettingTCConfig setting is not present, NetworkManager
+doesn't touch the filters present on the interface.
+
+
+
+
+
+
+
+
+
+ Teaming Settings
+
+
+ Creates a new #NMSettingTeam object with default values.
+
+
+ the new empty #NMSettingTeam object
+
+
+
+
+ Appends a new link watcher to the setting.
+
+
+ %TRUE if the link watcher is added; %FALSE if an identical link
+watcher was already there.
+
+
+
+
+ the #NMSettingTeam
+
+
+
+ the link watcher to add
+
+
+
+
+
+ Adds a new txhash element to the setting.
+
+
+ %TRUE if the txhash element was added; %FALSE if the element
+was already knnown.
+
+
+
+
+ the #NMSettingTeam
+
+
+
+ the element to add to txhash
+
+
+
+
+
+ Removes all configured link watchers.
+
+
+
+
+
+
+ the #NMSettingTeam
+
+
+
+
+
+
+
+ the #NMSettingTeam:config property of the setting
+
+
+
+
+ the #NMSettingTeam
+
+
+
+
+
+
+
+ the link watcher at index @idx.
+
+
+
+
+ the #NMSettingTeam
+
+
+
+ index number of the link watcher to return
+
+
+
+
+
+
+
+ the ##NMSettingTeam:mcast-rejoin-count property of the setting
+
+
+
+
+ the #NMSettingTeam
+
+
+
+
+
+
+
+ the ##NMSettingTeam:mcast-rejoin-interval property of the setting
+
+
+
+
+ the #NMSettingTeam
+
+
+
+
+
+
+
+ the ##NMSettingTeam:notify-peers-count property of the setting
+
+
+
+
+ the #NMSettingTeam
+
+
+
+
+
+
+
+ the ##NMSettingTeam:notify-peers-interval property of the setting
+
+
+
+
+ the #NMSettingTeam
+
+
+
+
+
+
+
+ the number of configured link watchers
+
+
+
+
+ the #NMSettingTeam
+
+
+
+
+
+
+
+ the number of elements in txhash
+
+
+
+
+ the #NMSettingTeam
+
+
+
+
+
+
+
+ the ##NMSettingTeam:runner property of the setting
+
+
+
+
+ the #NMSettingTeam
+
+
+
+
+
+
+
+ the ##NMSettingTeam:runner_active property of the setting
+
+
+
+
+ the #NMSettingTeam
+
+
+
+
+
+
+
+ the ##NMSettingTeam:runner-agg-select-policy property of the setting
+
+
+
+
+ the #NMSettingTeam
+
+
+
+
+
+
+
+ the ##NMSettingTeam:runner-fast-rate property of the setting
+
+
+
+
+ the #NMSettingTeam
+
+
+
+
+
+
+
+ the ##NMSettingTeam:runner-hwaddr-policy property of the setting
+
+
+
+
+ the #NMSettingTeam
+
+
+
+
+
+
+
+ the ##NMSettingTeam:runner-min-ports property of the setting
+
+
+
+
+ the #NMSettingTeam
+
+
+
+
+
+
+
+ the ##NMSettingTeam:runner-sys-prio property of the setting
+
+
+
+
+ the #NMSettingTeam
+
+
+
+
+
+
+
+ the ##NMSettingTeam:runner-tx-balancer property of the setting
+
+
+
+
+ the #NMSettingTeam
+
+
+
+
+
+
+
+ the ##NMSettingTeam:runner-tx-balancer_interval property of the setting
+
+
+
+
+ the #NMSettingTeam
+
+
+
+
+
+
+
+ the txhash element at index @idx
+
+
+
+
+ the #NMSettingTeam
+
+
+
+ index number of the txhash element to return
+
+
+
+
+
+ Removes the link watcher at index #idx.
+
+
+
+
+
+
+ the #NMSettingTeam
+
+
+
+ index number of the link watcher to remove
+
+
+
+
+
+ Removes the link watcher entry matching link_watcher.
+
+
+ %TRUE if the link watcher was found and removed, %FALSE otherwise.
+
+
+
+
+ the #NMSettingTeam
+
+
+
+ the link watcher to remove
+
+
+
+
+
+ Removes the txhash element at index @idx.
+
+
+
+
+
+
+ the #NMSettingTeam
+
+
+
+ index number of the element to remove from txhash
+
+
+
+
+
+ Removes the txhash element #txhash
+
+
+ %TRUE if the txhash element was found and removed; %FALSE if it was not.
+
+
+
+
+ the #NMSetetingTeam
+
+
+
+ the txhash element to remove
+
+
+
+
+
+ The JSON configuration for the team network interface. The property
+should contain raw JSON configuration data suitable for teamd, because
+the value is passed directly to teamd. If not specified, the default
+configuration is used. See man teamd.conf for the format details.
+
+
+
+ Link watchers configuration for the connection: each link watcher is
+defined by a dictionary, whose keys depend upon the selected link
+watcher. Available link watchers are 'ethtool', 'nsna_ping' and
+'arp_ping' and it is specified in the dictionary with the key 'name'.
+Available keys are: ethtool: 'delay-up', 'delay-down', 'init-wait';
+nsna_ping: 'init-wait', 'interval', 'missed-max', 'target-host';
+arp_ping: all the ones in nsna_ping and 'source-host', 'validate-active',
+'validate-inactive', 'send-always'. See teamd.conf man for more details.
+
+
+
+
+
+ Corresponds to the teamd mcast_rejoin.count.
+
+
+
+ Corresponds to the teamd mcast_rejoin.interval.
+
+
+
+ Corresponds to the teamd notify_peers.count.
+
+
+
+ Corresponds to the teamd notify_peers.interval.
+
+
+
+ Corresponds to the teamd runner.name.
+Permitted values are: "roundrobin", "broadcast", "activebackup",
+"loadbalance", "lacp", "random".
+
+
+
+ Corresponds to the teamd runner.active.
+
+
+
+ Corresponds to the teamd runner.agg_select_policy.
+
+
+
+ Corresponds to the teamd runner.fast_rate.
+
+
+
+ Corresponds to the teamd runner.hwaddr_policy.
+
+
+
+ Corresponds to the teamd runner.min_ports.
+
+
+
+ Corresponds to the teamd runner.sys_prio.
+
+
+
+ Corresponds to the teamd runner.tx_balancer.name.
+
+
+
+ Corresponds to the teamd runner.tx_balancer.interval.
+
+
+
+ Corresponds to the teamd runner.tx_hash.
+
+
+
+
+
+
+
+
+
+ Team Port Settings
+
+
+ Creates a new #NMSettingTeamPort object with default values.
+
+
+ the new empty #NMSettingTeamPort object
+
+
+
+
+ Appends a new link watcher to the setting.
+
+
+ %TRUE if the link watcher is added; %FALSE if an identical link
+watcher was already there.
+
+
+
+
+ the #NMSettingTeamPort
+
+
+
+ the link watcher to add
+
+
+
+
+
+ Removes all configured link watchers.
+
+
+
+
+
+
+ the #NMSettingTeamPort
+
+
+
+
+
+
+
+ the #NMSettingTeamPort:config property of the setting
+
+
+
+
+ the #NMSettingTeamPort
+
+
+
+
+
+
+
+ the #NMSettingTeamPort:lacp-key property of the setting
+
+
+
+
+ the #NMSettingTeamPort
+
+
+
+
+
+
+
+ the #NMSettingTeamPort:lacp-prio property of the setting
+
+
+
+
+ the #NMSettingTeamPort
+
+
+
+
+
+
+
+ the link watcher at index @idx.
+
+
+
+
+ the #NMSettingTeamPort
+
+
+
+ index number of the link watcher to return
+
+
+
+
+
+
+
+ the number of configured link watchers
+
+
+
+
+ the #NMSettingTeamPort
+
+
+
+
+
+
+
+ the #NMSettingTeamPort:prio property of the setting
+
+
+
+
+ the #NMSettingTeamPort
+
+
+
+
+
+
+
+ the #NMSettingTeamPort:queue_id property of the setting
+
+
+
+
+ the #NMSettingTeamPort
+
+
+
+
+
+
+
+ the #NMSettingTeamPort:sticky property of the setting
+
+
+
+
+ the #NMSettingTeamPort
+
+
+
+
+
+ Removes the link watcher at index #idx.
+
+
+
+
+
+
+ the #NMSettingTeamPort
+
+
+
+ index number of the link watcher to remove
+
+
+
+
+
+ Removes the link watcher entry matching link_watcher.
+
+
+ %TRUE if the link watcher was found and removed, %FALSE otherwise.
+
+
+
+
+ the #NMSettingTeamPort
+
+
+
+ the link watcher to remove
+
+
+
+
+
+ The JSON configuration for the team port. The property should contain raw
+JSON configuration data suitable for teamd, because the value is passed
+directly to teamd. If not specified, the default configuration is
+used. See man teamd.conf for the format details.
+
+
+
+ Corresponds to the teamd ports.PORTIFNAME.lacp_key.
+
+
+
+ Corresponds to the teamd ports.PORTIFNAME.lacp_prio.
+
+
+
+ Link watchers configuration for the connection: each link watcher is
+defined by a dictionary, whose keys depend upon the selected link
+watcher. Available link watchers are 'ethtool', 'nsna_ping' and
+'arp_ping' and it is specified in the dictionary with the key 'name'.
+Available keys are: ethtool: 'delay-up', 'delay-down', 'init-wait';
+nsna_ping: 'init-wait', 'interval', 'missed-max', 'target-host';
+arp_ping: all the ones in nsna_ping and 'source-host', 'validate-active',
+'validate-inactive', 'send-always'. See teamd.conf man for more details.
+
+
+
+
+
+ Corresponds to the teamd ports.PORTIFNAME.prio.
+
+
+
+ Corresponds to the teamd ports.PORTIFNAME.queue_id.
+When set to -1 means the parameter is skipped from the json config.
+
+
+
+ Corresponds to the teamd ports.PORTIFNAME.sticky.
+
+
+
+
+
+
+
+ Tunnel Settings
+
+
+ Creates a new #NMSettingTun object with default values.
+
+
+ the new empty #NMSettingTun object
+
+
+
+
+
+
+ the #NMSettingTun:group property of the setting
+
+
+
+
+ the #NMSettingTun
+
+
+
+
+
+
+
+ the #NMSettingTun:mode property of the setting
+
+
+
+
+ the #NMSettingTun
+
+
+
+
+
+
+
+ the #NMSettingTun:multi-queue property of the setting
+
+
+
+
+ the #NMSettingTun
+
+
+
+
+
+
+
+ the #NMSettingTun:owner property of the setting
+
+
+
+
+ the #NMSettingTun
+
+
+
+
+
+
+
+ the #NMSettingTun:pi property of the setting
+
+
+
+
+ the #NMSettingTun
+
+
+
+
+
+
+
+ the #NMSettingTun:vnet_hdr property of the setting
+
+
+
+
+ the #NMSettingTun
+
+
+
+
+
+ The group ID which will own the device. If set to %NULL everyone
+will be able to use the device.
+
+
+
+ The operating mode of the virtual device. Allowed values are
+%NM_SETTING_TUN_MODE_TUN to create a layer 3 device and
+%NM_SETTING_TUN_MODE_TAP to create an Ethernet-like layer 2
+one.
+
+
+
+ If the property is set to %TRUE, the interface will support
+multiple file descriptors (queues) to parallelize packet
+sending or receiving. Otherwise, the interface will only
+support a single queue.
+
+
+
+ The user ID which will own the device. If set to %NULL everyone
+will be able to use the device.
+
+
+
+ If %TRUE the interface will prepend a 4 byte header describing the
+physical interface to the packets.
+
+
+
+ If %TRUE the IFF_VNET_HDR the tunnel packets will include a virtio
+network header.
+
+
+
+
+
+
+
+ #NMSettingTunMode values indicate the device type (TUN/TAP)
+
+ an unknown device type
+
+
+ a TUN device
+
+
+ a TAP device
+
+
+
+ General User Profile Settings
+
+
+ Creates a new #NMSettingUser object with default values.
+
+
+ the new empty #NMSettingUser object
+
+
+
+
+ Checks whether @key is a valid user data key. This means,
+key is not %NULL, not too large and valid ASCII. Also,
+only digits and numbers are allowed with a few special
+characters. The key must contain at least one '.' and
+look like a fully qualified DNS name.
+
+
+ %TRUE if @key is a valid user data key.
+
+
+
+
+ the key to check
+
+
+
+
+
+ Checks whether @val is a valid user data value. This means,
+value is not %NULL, not too large and valid UTF-8.
+
+
+ %TRUE if @val is a valid user data value.
+
+
+
+
+ the value to check
+
+
+
+
+
+
+
+ the value associated with @key or %NULL if no such
+ value exists.
+
+
+
+
+ the #NMSettingUser instance
+
+
+
+ the key to lookup
+
+
+
+
+
+
+
+ a
+ %NULL-terminated array containing each key from the table.
+
+
+
+
+
+
+ the #NMSettingUser
+
+
+
+ the length of the returned array
+
+
+
+
+
+
+
+ %TRUE if the operation was successful. The operation
+ can fail if @key or @val are not valid strings according
+ to nm_setting_user_check_key() and nm_setting_user_check_val().
+
+
+
+
+ the #NMSettingUser instance
+
+
+
+ the key to set
+
+
+
+ the value to set or %NULL to clear a key.
+
+
+
+
+
+ A dictionary of key/value pairs with user data. This data is ignored by NetworkManager
+and can be used at the users discretion. The keys only support a strict ascii format,
+but the values can be arbitrary UTF8 strings up to a certain length.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The setting for which properties are being iterated, given to
+nm_setting_enumerate_values()
+
+
+
+ The value/property name
+
+
+
+ The property's value
+
+
+
+ The property's flags, like %NM_SETTING_PARAM_SECRET
+
+
+
+ User data passed to nm_setting_enumerate_values()
+
+
+
+
+
+ Veth Settings
+
+
+ Creates a new #NMSettingVeth object with default values.
+
+
+ the new empty #NMSettingVeth object
+
+
+
+
+
+
+ the #NMSettingVeth:peer property of the setting
+
+
+
+
+ the #NMSettingVeth
+
+
+
+
+
+ This property specifies the peer interface name of the veth. This
+property is mandatory.
+
+
+
+
+
+
+
+ VLAN Settings
+
+
+ Creates a new #NMSettingVlan object with default values.
+
+
+ the new empty #NMSettingVlan object
+
+
+
+
+ Adds a priority mapping to the #NMSettingVlan:ingress_priority_map or
+#NMSettingVlan:egress_priority_map properties of the setting. If @from is
+already in the given priority map, this function will overwrite the
+existing entry with the new @to.
+
+If @map is #NM_VLAN_INGRESS_MAP then @from is the incoming 802.1q VLAN
+Priority Code Point (PCP) value, and @to is the Linux SKB priority value.
+
+If @map is #NM_VLAN_EGRESS_MAP then @from is the Linux SKB priority value and
+@to is the outgoing 802.1q VLAN Priority Code Point (PCP) value.
+
+
+ %TRUE.
+
+
+
+
+ the #NMSettingVlan
+
+
+
+ the type of priority map
+
+
+
+ the priority to map to @to
+
+
+
+ the priority to map @from to
+
+
+
+
+
+ Adds a priority map entry into either the #NMSettingVlan:ingress_priority_map
+or the #NMSettingVlan:egress_priority_map properties. The priority map maps
+the Linux SKB priorities to 802.1p priorities.
+
+
+ %TRUE if the entry was successfully added to the list, or it
+overwrote the old value, %FALSE if @str is not a valid mapping.
+
+
+
+
+ the #NMSettingVlan
+
+
+
+ the type of priority map
+
+
+
+ the string which contains a priority map, like "3:7"
+
+
+
+
+
+ Clear all the entries from #NMSettingVlan:ingress_priority_map or
+#NMSettingVlan:egress_priority_map properties.
+
+
+
+
+
+
+ the #NMSettingVlan
+
+
+
+ the type of priority map
+
+
+
+
+
+
+
+ the #NMSettingVlan:flags property of the setting
+
+
+
+
+ the #NMSettingVlan
+
+
+
+
+
+
+
+ the #NMSettingVlan:id property of the setting
+
+
+
+
+ the #NMSettingVlan
+
+
+
+
+
+ Returns the number of entries in the
+#NMSettingVlan:ingress_priority_map or #NMSettingVlan:egress_priority_map
+properties of this setting.
+
+
+ return the number of ingress/egress priority entries.
+
+
+
+
+ the #NMSettingVlan
+
+
+
+ the type of priority map
+
+
+
+
+
+
+
+ the #NMSettingVlan:parent property of the setting
+
+
+
+
+ the #NMSettingVlan
+
+
+
+
+
+ Retrieve one of the entries of the #NMSettingVlan:ingress_priority_map
+or #NMSettingVlan:egress_priority_map properties of this setting.
+
+
+ returns %TRUE if @idx is in range. Otherwise, %FALSE.
+
+
+
+
+ the #NMSettingVlan
+
+
+
+ the type of priority map
+
+
+
+ the zero-based index of the ingress/egress priority map entry
+
+
+
+ on return the value of the priority map's 'from' item
+
+
+
+ on return the value of priority map's 'to' item
+
+
+
+
+
+
+
+ the #NMSettingVlan:protocol property of the setting
+
+
+
+
+ the #NMSettingVlan
+
+
+
+
+
+ Removes the priority map at index @idx from the
+#NMSettingVlan:ingress_priority_map or #NMSettingVlan:egress_priority_map
+properties.
+
+
+
+
+
+
+ the #NMSettingVlan
+
+
+
+ the type of priority map
+
+
+
+ the zero-based index of the priority map to remove
+
+
+
+
+
+ Removes the priority map @form:@to from the #NMSettingVlan:ingress_priority_map
+or #NMSettingVlan:egress_priority_map (according to @map argument)
+properties.
+
+
+ %TRUE if the priority mapping was found and removed; %FALSE if it was not.
+
+
+
+
+ the #NMSettingVlan
+
+
+
+ the type of priority map
+
+
+
+ the priority to map to @to
+
+
+
+ the priority to map @from to
+
+
+
+
+
+ Removes the priority map @str from the #NMSettingVlan:ingress_priority_map
+or #NMSettingVlan:egress_priority_map (according to @map argument)
+properties.
+
+
+ %TRUE if the priority mapping was found and removed; %FALSE if it was not.
+
+
+
+
+ the #NMSettingVlan
+
+
+
+ the type of priority map
+
+
+
+ the string which contains a priority map, like "3:7"
+
+
+
+
+
+ For outgoing packets, a list of mappings from Linux SKB priorities to
+802.1p priorities. The mapping is given in the format "from:to" where
+both "from" and "to" are unsigned integers, ie "7:3".
+
+
+
+
+
+ One or more flags which control the behavior and features of the VLAN
+interface. Flags include %NM_VLAN_FLAG_REORDER_HEADERS (reordering of
+output packet headers), %NM_VLAN_FLAG_GVRP (use of the GVRP protocol),
+and %NM_VLAN_FLAG_LOOSE_BINDING (loose binding of the interface to its
+master device's operating state). %NM_VLAN_FLAG_MVRP (use of the MVRP
+protocol).
+
+The default value of this property is NM_VLAN_FLAG_REORDER_HEADERS,
+but it used to be 0. To preserve backward compatibility, the default-value
+in the D-Bus API continues to be 0 and a missing property on D-Bus
+is still considered as 0.
+
+
+
+ The VLAN identifier that the interface created by this connection should
+be assigned. The valid range is from 0 to 4094, without the reserved id 4095.
+
+
+
+ For incoming packets, a list of mappings from 802.1p priorities to Linux
+SKB priorities. The mapping is given in the format "from:to" where both
+"from" and "to" are unsigned integers, ie "7:3".
+
+
+
+
+
+ If given, specifies the parent interface name or parent connection UUID
+from which this VLAN interface should be created. If this property is
+not specified, the connection must contain an #NMSettingWired setting
+with a #NMSettingWired:mac-address property.
+
+
+
+ Specifies the VLAN protocol to use for encapsulation.
+
+Supported values are: '802.1Q', '802.1ad'. If not specified the default
+value is '802.1Q'.
+
+
+
+
+
+
+
+ VPN Settings
+
+
+ Creates a new #NMSettingVpn object with default values.
+
+
+ the new empty #NMSettingVpn object
+
+
+
+
+ Establishes a relationship between @key and @item internally in the
+setting which may be retrieved later. Should not be used to store passwords
+or other secrets, which is what nm_setting_vpn_add_secret() is for.
+
+Before 1.24, @item must not be %NULL and not an empty string. Since 1.24,
+@item can be set to an empty string. It can also be set to %NULL to unset
+the key. In that case, the behavior is as if calling nm_setting_vpn_remove_data_item().
+
+
+
+
+
+
+ the #NMSettingVpn
+
+
+
+ a name that uniquely identifies the given value @item
+
+
+
+ the value to be referenced by @key
+
+
+
+
+
+ Establishes a relationship between @key and @secret internally in the
+setting which may be retrieved later.
+
+Before 1.24, @secret must not be %NULL and not an empty string. Since 1.24,
+@secret can be set to an empty string. It can also be set to %NULL to unset
+the key. In that case, the behavior is as if calling nm_setting_vpn_remove_secret().
+
+
+
+
+
+
+ the #NMSettingVpn
+
+
+
+ a name that uniquely identifies the given secret @secret
+
+
+
+ the secret to be referenced by @key
+
+
+
+
+
+ Iterates all data items stored in this setting. It is safe to add, remove,
+and modify data items inside @func, though any additions or removals made
+during iteration will not be part of the iteration.
+
+
+
+
+
+
+ a #NMSettingVpn
+
+
+
+ an user provided function
+
+
+
+ data to be passed to @func
+
+
+
+
+
+ Iterates all secrets stored in this setting. It is safe to add, remove,
+and modify secrets inside @func, though any additions or removals made during
+iteration will not be part of the iteration.
+
+
+
+
+
+
+ a #NMSettingVpn
+
+
+
+ an user provided function
+
+
+
+ data to be passed to @func
+
+
+
+
+
+ Retrieves the data item of a key/value relationship previously established
+by nm_setting_vpn_add_data_item().
+
+
+ the data item, if any
+
+
+
+
+ the #NMSettingVpn
+
+
+
+ the name of the data item to retrieve
+
+
+
+
+
+ Retrieves every data key inside @setting, as an array.
+
+
+ a
+ %NULL-terminated array containing each data key or %NULL if
+ there are no data items.
+
+
+
+
+
+
+ the #NMSettingVpn
+
+
+
+ the length of the returned array
+
+
+
+
+
+ Gets number of key/value pairs of VPN configuration data.
+
+
+ the number of VPN plugin specific configuration data items
+
+
+
+
+ the #NMSettingVpn
+
+
+
+
+
+ Gets number of VPN plugin specific secrets in the setting.
+
+
+ the number of VPN plugin specific secrets
+
+
+
+
+ the #NMSettingVpn
+
+
+
+
+
+
+
+ the #NMSettingVpn:persistent property of the setting
+
+
+
+
+ the #NMSettingVpn
+
+
+
+
+
+ Retrieves the secret of a key/value relationship previously established
+by nm_setting_vpn_add_secret().
+
+
+ the secret, if any
+
+
+
+
+ the #NMSettingVpn
+
+
+
+ the name of the secret to retrieve
+
+
+
+
+
+ Retrieves every secret key inside @setting, as an array.
+
+
+ a
+ %NULL-terminated array containing each secret key or %NULL if
+ there are no secrets.
+
+
+
+
+
+
+ the #NMSettingVpn
+
+
+
+ the length of the returned array
+
+
+
+
+
+ Returns the service name of the VPN, which identifies the specific VPN
+plugin that should be used to connect to this VPN.
+
+
+ the VPN plugin's service name
+
+
+
+
+ the #NMSettingVpn
+
+
+
+
+
+
+
+ the #NMSettingVpn:timeout property of the setting
+
+
+
+
+ the #NMSettingVpn
+
+
+
+
+
+
+
+ the #NMSettingVpn:user-name property of the setting
+
+
+
+
+ the #NMSettingVpn
+
+
+
+
+
+ Deletes a key/value relationship previously established by
+nm_setting_vpn_add_data_item().
+
+
+ %TRUE if the data item was found and removed from the internal list,
+%FALSE if it was not.
+
+
+
+
+ the #NMSettingVpn
+
+
+
+ the name of the data item to remove
+
+
+
+
+
+ Deletes a key/value relationship previously established by
+nm_setting_vpn_add_secret().
+
+
+ %TRUE if the secret was found and removed from the internal list,
+%FALSE if it was not.
+
+
+
+
+ the #NMSettingVpn
+
+
+
+ the name of the secret to remove
+
+
+
+
+
+ Dictionary of key/value pairs of VPN plugin specific data. Both keys and
+values must be strings.
+
+
+
+
+
+
+ If the VPN service supports persistence, and this property is %TRUE,
+the VPN will attempt to stay connected across link changes and outages,
+until explicitly disconnected.
+
+
+
+ Dictionary of key/value pairs of VPN plugin specific secrets like
+passwords or private keys. Both keys and values must be strings.
+
+
+
+
+
+
+ D-Bus service name of the VPN plugin that this setting uses to connect to
+its network. i.e. org.freedesktop.NetworkManager.vpnc for the vpnc
+plugin.
+
+
+
+ Timeout for the VPN service to establish the connection. Some services
+may take quite a long time to connect.
+Value of 0 means a default timeout, which is 60 seconds (unless overridden
+by vpn.timeout in configuration file). Values greater than zero mean
+timeout in seconds.
+
+
+
+ If the VPN connection requires a user name for authentication, that name
+should be provided here. If the connection is available to more than one
+user, and the VPN requires each user to supply a different name, then
+leave this property empty. If this property is empty, NetworkManager
+will automatically supply the username of the user which requested the
+VPN connection.
+
+
+
+
+
+
+
+ VRF settings
+
+
+ Creates a new #NMSettingVrf object with default values.
+
+
+ the new empty #NMSettingVrf object
+
+
+
+
+
+
+ the routing table for the VRF
+
+
+
+
+ the #NMSettingVrf
+
+
+
+
+
+ The routing table for this VRF.
+
+
+
+
+
+
+
+ VXLAN Settings
+
+
+ Creates a new #NMSettingVxlan object with default values.
+
+
+ the new empty #NMSettingVxlan object
+
+
+
+
+
+
+ the #NMSettingVxlan:ageing property of the setting
+
+
+
+
+ the #NMSettingVxlan
+
+
+
+
+
+
+
+ the #NMSettingVxlan:destination-port property of the setting
+
+
+
+
+ the #NMSettingVxlan
+
+
+
+
+
+
+
+ the #NMSettingVxlan:id property of the setting
+
+
+
+
+ the #NMSettingVxlan
+
+
+
+
+
+
+
+ the #NMSettingVxlan:l2_miss property of the setting
+
+
+
+
+ the #NMSettingVxlan
+
+
+
+
+
+
+
+ the #NMSettingVxlan:l3_miss property of the setting
+
+
+
+
+ the #NMSettingVxlan
+
+
+
+
+
+
+
+ the #NMSettingVxlan:learning property of the setting
+
+
+
+
+ the #NMSettingVxlan
+
+
+
+
+
+
+
+ the #NMSettingVxlan:limit property of the setting
+
+
+
+
+ the #NMSettingVxlan
+
+
+
+
+
+
+
+ the #NMSettingVxlan:local property of the setting
+
+
+
+
+ the #NMSettingVxlan
+
+
+
+
+
+
+
+ the #NMSettingVxlan:parent property of the setting
+
+
+
+
+ the #NMSettingVxlan
+
+
+
+
+
+
+
+ the #NMSettingVxlan:proxy property of the setting
+
+
+
+
+ the #NMSettingVxlan
+
+
+
+
+
+
+
+ the #NMSettingVxlan:remote property of the setting
+
+
+
+
+ the #NMSettingVxlan
+
+
+
+
+
+
+
+ the #NMSettingVxlan:rsc property of the setting
+
+
+
+
+ the #NMSettingVxlan
+
+
+
+
+
+
+
+ the #NMSettingVxlan:source-port-max property of the setting
+
+
+
+
+ the #NMSettingVxlan
+
+
+
+
+
+
+
+ the #NMSettingVxlan:source-port-min property of the setting
+
+
+
+
+ the #NMSettingVxlan
+
+
+
+
+
+
+
+ the #NMSettingVxlan:tos property of the setting
+
+
+
+
+ the #NMSettingVxlan
+
+
+
+
+
+
+
+ the #NMSettingVxlan:ttl property of the setting
+
+
+
+
+ the #NMSettingVxlan
+
+
+
+
+
+ Specifies the lifetime in seconds of FDB entries learnt by the kernel.
+
+
+
+ Specifies the UDP destination port to communicate to the remote VXLAN
+tunnel endpoint.
+
+
+
+ Specifies the VXLAN Network Identifier (or VXLAN Segment Identifier) to
+use.
+
+
+
+ Specifies whether netlink LL ADDR miss notifications are generated.
+
+
+
+ Specifies whether netlink IP ADDR miss notifications are generated.
+
+
+
+ Specifies whether unknown source link layer addresses and IP addresses
+are entered into the VXLAN device forwarding database.
+
+
+
+ Specifies the maximum number of FDB entries. A value of zero means that
+the kernel will store unlimited entries.
+
+
+
+ If given, specifies the source IP address to use in outgoing packets.
+
+
+
+ If given, specifies the parent interface name or parent connection UUID.
+
+
+
+ Specifies whether ARP proxy is turned on.
+
+
+
+ Specifies the unicast destination IP address to use in outgoing packets
+when the destination link layer address is not known in the VXLAN device
+forwarding database, or the multicast IP address to join.
+
+
+
+ Specifies whether route short circuit is turned on.
+
+
+
+ Specifies the maximum UDP source port to communicate to the remote VXLAN
+tunnel endpoint.
+
+
+
+ Specifies the minimum UDP source port to communicate to the remote VXLAN
+tunnel endpoint.
+
+
+
+ Specifies the TOS value to use in outgoing packets.
+
+
+
+ Specifies the time-to-live value to use in outgoing packets.
+
+
+
+
+
+
+
+ Wi-Fi P2P Settings
+
+
+ Creates a new #NMSettingWifiP2P object with default values.
+
+
+ the new empty #NMSettingWifiP2P object
+
+
+
+
+
+
+ the #NMSettingWifiP2P:peer property of the setting
+
+
+
+
+ the #NMSettingWifiP2P
+
+
+
+
+
+
+
+ the #NMSettingWiFiP2P:wfd-ies property of the setting
+
+
+
+
+ the #NMSettingWiFiP2P
+
+
+
+
+
+
+
+ the #NMSettingWifiP2P:wps-method property of the setting
+
+
+
+
+ the #NMSettingWifiP2P
+
+
+
+
+
+ The P2P device that should be connected to. Currently, this is the only
+way to create or join a group.
+
+
+
+ The Wi-Fi Display (WFD) Information Elements (IEs) to set.
+
+Wi-Fi Display requires a protocol specific information element to be
+set in certain Wi-Fi frames. These can be specified here for the
+purpose of establishing a connection.
+This setting is only useful when implementing a Wi-Fi Display client.
+
+
+
+ Flags indicating which mode of WPS is to be used.
+
+There's little point in changing the default setting as NetworkManager will
+automatically determine the best method to use.
+
+
+
+
+
+
+
+ WiMax Settings
+
+
+ Creates a new #NMSettingWimax object with default values.
+ WiMAX is no longer supported.
+
+
+ the new empty #NMSettingWimax object
+
+
+
+
+ Returns the MAC address of a WiMAX device which this connection is locked
+to.
+ WiMAX is no longer supported.
+
+
+ the MAC address
+
+
+
+
+ the #NMSettingWimax
+
+
+
+
+
+ Returns the WiMAX NSP name (ex "Sprint" or "CLEAR") which identifies the
+specific WiMAX network this setting describes a connection to.
+ WiMAX is no longer supported.
+
+
+ the WiMAX NSP name
+
+
+
+
+ the #NMSettingWimax
+
+
+
+
+
+ If specified, this connection will only apply to the WiMAX device whose
+MAC address matches. This property does not change the MAC address of the
+device (known as MAC spoofing).
+ WiMAX is no longer supported.
+
+
+
+ Network Service Provider (NSP) name of the WiMAX network this connection
+should use.
+ WiMAX is no longer supported.
+
+
+
+
+
+
+
+ WireGuard Settings
+
+
+ Creates a new #NMSettingWireGuard object with default values.
+
+
+ the new empty #NMSettingWireGuard object
+
+
+
+
+ If a peer with the same public-key already exists, that
+one is replaced by @peer. The new @peer is always appended
+(or moved to) the end, so in case a peer is replaced, the
+indexes are shifted and the number of peers stays unchanged.
+
+
+
+
+
+
+ the #NMSettingWireGuard instance
+
+
+
+ the #NMWireGuardPeer instance to append.
+ This seals @peer and keeps a reference on the
+ instance.
+
+
+
+
+
+
+
+ the number of cleared peers.
+
+
+
+
+ the #NMSettingWireGuard instance
+
+
+
+
+
+
+
+ the set firewall mark.
+
+
+
+
+ the #NMSettingWireGuard instance
+
+
+
+
+
+
+
+ the "ip4-auto-default-route" property of the setting.
+
+
+
+
+ the #NMSettingWireGuard setting.
+
+
+
+
+
+
+
+ the "ip6-auto-default-route" property of the setting.
+
+
+
+
+ the #NMSettingWireGuard setting.
+
+
+
+
+
+
+
+ the set UDP listen port.
+
+
+
+
+ the #NMSettingWireGuard instance
+
+
+
+
+
+
+
+ the MTU of the setting.
+
+
+
+
+ the #NMSettingWireGuard instance
+
+
+
+
+
+
+
+ the #NMWireGuardPeer entry at
+ index @idx. If the index is out of range, %NULL is returned.
+
+
+
+
+ the #NMSettingWireGuard instance
+
+
+
+ the index to lookup.
+
+
+
+
+
+
+
+ the #NMWireGuardPeer instance with a
+ matching public key. If no such peer exists, %NULL is returned.
+
+
+
+
+ the #NMSettingWireGuard instance
+
+
+
+ the public key for looking up the
+ peer.
+
+
+
+ optional output argument
+ for the index of the found peer. If no index is found,
+ this is set to the nm_setting_wireguard_get_peers_len().
+
+
+
+
+
+
+
+ whether automatically add peer routes.
+
+
+
+
+ the #NMSettingWireGuard instance
+
+
+
+
+
+
+
+ the number of registered peers.
+
+
+
+
+ the #NMSettingWireGuard instance
+
+
+
+
+
+
+
+ the set private-key or %NULL.
+
+
+
+
+ the #NMSettingWireGuard instance
+
+
+
+
+
+
+
+ the secret-flags for #NMSettingWireGuard:private-key.
+
+
+
+
+ the #NMSettingWireGuard instance
+
+
+
+
+
+
+
+ %TRUE if @idx was in range and a peer
+ was removed. Otherwise, @self is unchanged.
+
+
+
+
+ the #NMSettingWireGuard instance
+
+
+
+ the index to remove.
+
+
+
+
+
+ If @idx is one past the last peer, the behavior is the same
+as nm_setting_wireguard_append_peer().
+Otherwise, the peer will be at @idx and replace the peer
+instance at that index. Note that if a peer with the same
+public-key exists on another index, then that peer will also
+be replaced. In that case, the number of peers will shrink
+by one (because the one at @idx got replace and then one
+with the same public-key got removed). This also means,
+that the resulting index afterwards may be one less than
+@idx (if another peer with a lower index was dropped).
+
+
+
+
+
+
+ the #NMSettingWireGuard instance
+
+
+
+ the #NMWireGuardPeer instance to set.
+ This seals @peer and keeps a reference on the
+ instance.
+
+
+
+ the index, in the range of 0 to the number of
+ peers (including). That means, if @idx is one past
+ the end of the number of peers, this is the same as
+ nm_setting_wireguard_append_peer(). Otherwise, the
+ peer at this index is replaced.
+
+
+
+
+
+ The use of fwmark is optional and is by default off. Setting it to 0
+disables it. Otherwise, it is a 32-bit fwmark for outgoing packets.
+
+Note that "ip4-auto-default-route" or "ip6-auto-default-route" enabled,
+implies to automatically choose a fwmark.
+
+
+
+ Whether to enable special handling of the IPv4 default route.
+If enabled, the IPv4 default route from wireguard.peer-routes
+will be placed to a dedicated routing-table and two policy routing rules
+will be added. The fwmark number is also used as routing-table for the default-route,
+and if fwmark is zero, an unused fwmark/table is chosen automatically.
+This corresponds to what wg-quick does with Table=auto and what WireGuard
+calls "Improved Rule-based Routing".
+
+Note that for this automatism to work, you usually don't want to set
+ipv4.gateway, because that will result in a conflicting default route.
+
+Leaving this at the default will enable this option automatically
+if ipv4.never-default is not set and there are any peers that use
+a default-route as allowed-ips. Since this automatism only makes
+sense if you also have a peer with an /0 allowed-ips, it is usually
+not necessary to enable this explicitly. However, you can disable
+it if you want to configure your own routing and rules.
+
+
+
+ Like ip4-auto-default-route, but for the IPv6 default route.
+
+
+
+ The listen-port. If listen-port is not specified, the port will be chosen
+randomly when the interface comes up.
+
+
+
+ If non-zero, only transmit packets of the specified size or smaller,
+breaking larger packets up into multiple fragments.
+
+If zero a default MTU is used. Note that contrary to wg-quick's MTU
+setting, this does not take into account the current routes at the
+time of activation.
+
+
+
+ Whether to automatically add routes for the AllowedIPs ranges
+of the peers. If %TRUE (the default), NetworkManager will automatically
+add routes in the routing tables according to ipv4.route-table and
+ipv6.route-table. Usually you want this automatism enabled.
+If %FALSE, no such routes are added automatically. In this case, the
+user may want to configure static routes in ipv4.routes and ipv6.routes,
+respectively.
+
+Note that if the peer's AllowedIPs is "0.0.0.0/0" or "::/0" and the profile's
+ipv4.never-default or ipv6.never-default setting is enabled, the peer route for
+this peer won't be added automatically.
+
+
+
+ The 256 bit private-key in base64 encoding.
+
+
+
+ Flags indicating how to handle the #NMSettingWirelessSecurity:private-key
+property.
+
+
+
+
+
+
+
+ Wired Ethernet Settings
+
+
+ Creates a new #NMSettingWired object with default values.
+
+
+ the new empty #NMSettingWired object
+
+
+
+
+ Adds a new MAC address to the #NMSettingWired:mac-address-blacklist property.
+
+
+ %TRUE if the MAC address was added; %FALSE if the MAC address
+is invalid or was already present
+
+
+
+
+ the #NMSettingWired
+
+
+
+ the MAC address string (hex-digits-and-colons notation) to blacklist
+
+
+
+
+
+ Add an option to the table. If the key already exists, the value gets
+replaced.
+
+Before 1.32, the function would assert that the key is valid. Since then,
+an invalid key gets silently added but renders the profile as invalid.
+
+
+ since 1.32 this always returns %TRUE.
+
+
+
+
+ the #NMSettingWired
+
+
+
+ key name for the option
+
+
+
+ value for the option
+
+
+
+
+
+ Removes all blacklisted MAC addresses.
+
+
+
+
+
+
+ the #NMSettingWired
+
+
+
+
+
+
+
+ the #NMSettingWired:accept-all-mac-addresses property of the setting
+
+
+
+
+ the #NMSettingWired
+
+
+
+
+
+
+
+ the #NMSettingWired:auto-negotiate property of the setting
+
+
+
+
+ the #NMSettingWired
+
+
+
+
+
+
+
+ the #NMSettingWired:cloned-mac-address property of the setting
+
+
+
+
+ the #NMSettingWired
+
+
+
+
+
+
+
+ the #NMSettingWired:duplex property of the setting
+
+
+
+
+ the #NMSettingWired
+
+
+
+
+
+
+
+ the #NMSettingWired:generate-mac-address-mask property of the setting
+
+
+
+
+ the #NMSettingWired
+
+
+
+
+
+
+
+ the #NMSettingWired:mac-address property of the setting
+
+
+
+
+ the #NMSettingWired
+
+
+
+
+
+
+
+ the #NMSettingWired:mac-address-blacklist property of the setting
+
+
+
+
+
+
+ the #NMSettingWired
+
+
+
+
+
+ Since 1.46, access at index "len" is allowed and returns NULL.
+
+
+ the blacklisted MAC address string (hex-digits-and-colons notation)
+at index @idx
+
+
+
+
+ the #NMSettingWired
+
+
+
+ the zero-based index of the MAC address entry
+
+
+
+
+
+
+
+ the #NMSettingWired:mtu property of the setting
+
+
+
+
+ the #NMSettingWired
+
+
+
+
+
+
+
+ the number of blacklisted MAC addresses
+
+
+
+
+ the #NMSettingWired
+
+
+
+
+
+ Returns the number of s390-specific options that should be set for this
+device when it is activated. This can be used to retrieve each s390
+option individually using nm_setting_wired_get_s390_option().
+
+
+ the number of s390-specific device options
+
+
+
+
+ the #NMSettingWired
+
+
+
+
+
+
+
+ the #NMSettingWired:port property of the setting
+
+
+
+
+ the #NMSettingWired
+
+
+
+
+
+ Returns the s390 device type this connection should apply to. Will be one
+of 'qeth', 'lcs', or 'ctc'.
+
+
+ the s390 device type
+
+
+
+
+ the #NMSettingWired
+
+
+
+
+
+ Given an index, return the value of the s390 option at that index. indexes
+are *not* guaranteed to be static across modifications to options done by
+nm_setting_wired_add_s390_option() and nm_setting_wired_remove_s390_option(),
+and should not be used to refer to options except for short periods of time
+such as during option iteration.
+
+
+ %TRUE on success if the index was valid and an option was found,
+%FALSE if the index was invalid (ie, greater than the number of options
+currently held by the setting)
+
+
+
+
+ the #NMSettingWired
+
+
+
+ index of the desired option, from 0 to
+nm_setting_wired_get_num_s390_options() - 1
+
+
+
+ on return, the key
+ name of the s390 specific option; this value is owned by the setting and
+ should not be modified
+
+
+
+ on return, the value
+ of the key of the s390 specific option; this value is owned by the setting
+ and should not be modified
+
+
+
+
+
+ Returns the value associated with the s390-specific option specified by
+@key, if it exists.
+
+
+ the value, or %NULL if the key/value pair was never added to the
+setting; the value is owned by the setting and must not be modified
+
+
+
+
+ the #NMSettingWired
+
+
+
+ the key for which to retrieve the value
+
+
+
+
+
+ Return the list of s390 subchannels that identify the device that this
+connection is applicable to. The connection should only be used in
+conjunction with that device.
+
+
+ array of strings, each specifying
+ one subchannel the s390 device uses to communicate to the host.
+
+
+
+
+
+
+ the #NMSettingWired
+
+
+
+
+
+
+
+ the #NMSettingWired:speed property of the setting
+
+
+
+
+ the #NMSettingWired
+
+
+
+
+
+ Returns a list of valid s390 options.
+
+The @setting argument is unused and %NULL may be passed instead.
+
+
+ a %NULL-terminated array of strings of valid s390 options.
+
+
+
+
+
+
+ the #NMSettingWired. This argument is unused
+ and you may pass %NULL.
+
+
+
+
+
+ Returns the Wake-on-LAN options enabled for the connection
+
+
+ the Wake-on-LAN options
+
+
+
+
+ the #NMSettingWired
+
+
+
+
+
+ Returns the Wake-on-LAN password. This only applies to
+%NM_SETTING_WIRED_WAKE_ON_LAN_MAGIC.
+
+
+ the Wake-on-LAN setting password, or %NULL if there is no password.
+
+
+
+
+ the #NMSettingWired
+
+
+
+
+
+ Removes the MAC address at index @idx from the blacklist.
+
+
+
+
+
+
+ the #NMSettingWired
+
+
+
+ index number of the MAC address
+
+
+
+
+
+ Removes the MAC address @mac from the blacklist.
+
+
+ %TRUE if the MAC address was found and removed; %FALSE if it was not.
+
+
+
+
+ the #NMSettingWired
+
+
+
+ the MAC address string (hex-digits-and-colons notation) to remove from
+the blacklist
+
+
+
+
+
+ Remove the s390-specific option referenced by @key from the internal option
+list.
+
+
+ %TRUE if the option was found and removed from the internal option
+list, %FALSE if it was not.
+
+
+
+
+ the #NMSettingWired
+
+
+
+ key name for the option to remove
+
+
+
+
+
+ When %TRUE, setup the interface to accept packets for all MAC addresses.
+This is enabling the kernel interface flag IFF_PROMISC.
+When %FALSE, the interface will only accept the packets with the
+interface destination mac address or broadcast.
+
+
+
+ When %TRUE, enforce auto-negotiation of speed and duplex mode.
+If "speed" and "duplex" properties are both specified, only that
+single mode will be advertised and accepted during the link
+auto-negotiation process: this works only for BASE-T 802.3 specifications
+and is useful for enforcing gigabits modes, as in these cases link
+negotiation is mandatory.
+When %FALSE, "speed" and "duplex" properties should be both set or
+link configuration will be skipped.
+
+
+
+ If specified, request that the device use this MAC address instead.
+This is known as MAC cloning or spoofing.
+
+Beside explicitly specifying a MAC address, the special values "preserve", "permanent",
+"random" and "stable" are supported.
+"preserve" means not to touch the MAC address on activation.
+"permanent" means to use the permanent hardware address if the device
+has one (otherwise this is treated as "preserve").
+"random" creates a random MAC address on each connect.
+"stable" creates a hashed MAC address based on connection.stable-id and a
+machine dependent key.
+
+If unspecified, the value can be overwritten via global defaults, see manual
+of NetworkManager.conf. If still unspecified, it defaults to "preserve"
+(older versions of NetworkManager may use a different default value).
+
+On D-Bus, this field is expressed as "assigned-mac-address" or the deprecated
+"cloned-mac-address".
+
+
+
+ When a value is set, either "half" or "full", configures the device
+to use the specified duplex mode. If "auto-negotiate" is "yes" the
+specified duplex mode will be the only one advertised during link
+negotiation: this works only for BASE-T 802.3 specifications and is
+useful for enforcing gigabits modes, as in these cases link negotiation
+is mandatory.
+If the value is unset (the default), the link configuration will be
+either skipped (if "auto-negotiate" is "no", the default) or will
+be auto-negotiated (if "auto-negotiate" is "yes") and the local device
+will advertise all the supported duplex modes.
+Must be set together with the "speed" property if specified.
+Before specifying a duplex mode be sure your device supports it.
+
+
+
+ With #NMSettingWired:cloned-mac-address setting "random" or "stable",
+by default all bits of the MAC address are scrambled and a locally-administered,
+unicast MAC address is created. This property allows to specify that certain bits
+are fixed. Note that the least significant bit of the first MAC address will
+always be unset to create a unicast MAC address.
+
+If the property is %NULL, it is eligible to be overwritten by a default
+connection setting. If the value is still %NULL or an empty string, the
+default is to create a locally-administered, unicast MAC address.
+
+If the value contains one MAC address, this address is used as mask. The set
+bits of the mask are to be filled with the current MAC address of the device,
+while the unset bits are subject to randomization.
+Setting "FE:FF:FF:00:00:00" means to preserve the OUI of the current MAC address
+and only randomize the lower 3 bytes using the "random" or "stable" algorithm.
+
+If the value contains one additional MAC address after the mask,
+this address is used instead of the current MAC address to fill the bits
+that shall not be randomized. For example, a value of
+"FE:FF:FF:00:00:00 68:F7:28:00:00:00" will set the OUI of the MAC address
+to 68:F7:28, while the lower bits are randomized. A value of
+"02:00:00:00:00:00 00:00:00:00:00:00" will create a fully scrambled
+globally-administered, burned-in MAC address.
+
+If the value contains more than one additional MAC addresses, one of
+them is chosen randomly. For example, "02:00:00:00:00:00 00:00:00:00:00:00 02:00:00:00:00:00"
+will create a fully scrambled MAC address, randomly locally or globally
+administered.
+
+
+
+ If specified, this connection will only apply to the Ethernet device
+whose permanent MAC address matches. This property does not change the
+MAC address of the device (i.e. MAC spoofing).
+
+
+
+ If specified, this connection will never apply to the Ethernet device
+whose permanent MAC address matches an address in the list. Each MAC
+address is in the standard hex-digits-and-colons notation
+(00:11:22:33:44:55).
+
+
+
+
+
+ If non-zero, only transmit packets of the specified size or smaller,
+breaking larger packets up into multiple Ethernet frames.
+
+
+
+ Specific port type to use if the device supports multiple
+attachment methods. One of "tp" (Twisted Pair), "aui" (Attachment Unit
+Interface), "bnc" (Thin Ethernet) or "mii" (Media Independent Interface).
+If the device supports only one port type, this setting is ignored.
+
+
+
+ s390 network device type; one of "qeth", "lcs", or "ctc", representing
+the different types of virtual network devices available on s390 systems.
+
+
+
+ Dictionary of key/value pairs of s390-specific device options. Both keys
+and values must be strings. Allowed keys include "portno", "layer2",
+"portname", "protocol", among others. Key names must contain only
+alphanumeric characters (ie, [a-zA-Z0-9]).
+
+Currently, NetworkManager itself does nothing with this information.
+However, s390utils ships a udev rule which parses this information
+and applies it to the interface.
+
+
+
+
+
+
+ Identifies specific subchannels that this network device uses for
+communication with z/VM or s390 host. Like the
+#NMSettingWired:mac-address property for non-z/VM devices, this property
+can be used to ensure this connection only applies to the network device
+that uses these subchannels. The list should contain exactly 3 strings,
+and each string may only be composed of hexadecimal characters and the
+period (.) character.
+
+
+
+
+
+ When a value greater than 0 is set, configures the device to use
+the specified speed. If "auto-negotiate" is "yes" the specified
+speed will be the only one advertised during link negotiation:
+this works only for BASE-T 802.3 specifications and is useful for
+enforcing gigabit speeds, as in this case link negotiation is
+mandatory.
+If the value is unset (0, the default), the link configuration will be
+either skipped (if "auto-negotiate" is "no", the default) or will
+be auto-negotiated (if "auto-negotiate" is "yes") and the local device
+will advertise all the supported speeds.
+In Mbit/s, ie 100 == 100Mbit/s.
+Must be set together with the "duplex" property when non-zero.
+Before specifying a speed value be sure your device supports it.
+
+
+
+ The #NMSettingWiredWakeOnLan options to enable. Not all devices support all options.
+May be any combination of %NM_SETTING_WIRED_WAKE_ON_LAN_PHY,
+%NM_SETTING_WIRED_WAKE_ON_LAN_UNICAST, %NM_SETTING_WIRED_WAKE_ON_LAN_MULTICAST,
+%NM_SETTING_WIRED_WAKE_ON_LAN_BROADCAST, %NM_SETTING_WIRED_WAKE_ON_LAN_ARP,
+%NM_SETTING_WIRED_WAKE_ON_LAN_MAGIC or the special values
+%NM_SETTING_WIRED_WAKE_ON_LAN_DEFAULT (to use global settings) and
+%NM_SETTING_WIRED_WAKE_ON_LAN_IGNORE (to disable management of Wake-on-LAN in
+NetworkManager).
+
+
+
+ If specified, the password used with magic-packet-based
+Wake-on-LAN, represented as an Ethernet MAC address. If %NULL,
+no password will be required.
+
+
+
+
+
+
+
+ Options for #NMSettingWired:wake-on-lan. Note that not all options
+are supported by all devices.
+
+ Wake on PHY activity
+
+
+ Wake on unicast messages
+
+
+ Wake on multicast messages
+
+
+ Wake on broadcast messages
+
+
+ Wake on ARP
+
+
+ Wake on magic packet
+
+
+ Use the default value
+
+
+ Don't change configured settings
+
+
+
+ Wi-Fi Settings
+
+
+ Creates a new #NMSettingWireless object with default values.
+
+
+ the new empty #NMSettingWireless object
+
+
+
+
+ Adds a new MAC address to the #NMSettingWireless:mac-address-blacklist property.
+
+
+ %TRUE if the MAC address was added; %FALSE if the MAC address
+is invalid or was already present
+
+
+
+
+ the #NMSettingWireless
+
+
+
+ the MAC address string (hex-digits-and-colons notation) to blacklist
+
+
+
+
+
+ Adds a new Wi-Fi AP's BSSID to the previously seen BSSID list of the setting.
+NetworkManager now tracks previously seen BSSIDs internally so this function
+no longer has much use. Actually, changes you make using this function will
+not be preserved.
+
+
+ %TRUE if @bssid was already known, %FALSE if not
+
+
+
+
+ the #NMSettingWireless
+
+
+
+ the new BSSID to add to the list
+
+
+
+
+
+ Given a #NMSettingWireless and an optional #NMSettingWirelessSecurity,
+determine if the configuration given by the settings is compatible with
+the security of an access point using that access point's capability flags
+and mode. Useful for clients that wish to filter a set of connections
+against a set of access points and determine which connections are
+compatible with which access points.
+
+
+ %TRUE if the given settings are compatible with the access point's
+security flags and mode, %FALSE if they are not.
+
+
+
+
+ a #NMSettingWireless
+
+
+
+ a #NMSettingWirelessSecurity or %NULL
+
+
+
+ the %NM80211ApFlags of the given access point
+
+
+
+ the %NM80211ApSecurityFlags of the given access point's WPA
+capabilities
+
+
+
+ the %NM80211ApSecurityFlags of the given access point's WPA2/RSN
+capabilities
+
+
+
+ the 802.11 mode of the AP, either Ad-Hoc or Infrastructure
+
+
+
+
+
+ Removes all blacklisted MAC addresses.
+
+
+
+
+
+
+ the #NMSettingWireless
+
+
+
+
+
+
+
+ the #NMSettingWireless:ap-isolation property of the setting
+
+
+
+
+ the #NMSettingWireless
+
+
+
+
+
+
+
+ the #NMSettingWireless:band property of the setting
+
+
+
+
+ the #NMSettingWireless
+
+
+
+
+
+
+
+ the #NMSettingWireless:bssid property of the setting
+
+
+
+
+ the #NMSettingWireless
+
+
+
+
+
+
+
+ the #NMSettingWireless:channel property of the setting
+
+
+
+
+ the #NMSettingWireless
+
+
+
+
+
+
+
+ the #NMSettingWireless:cloned-mac-address property of the setting
+
+
+
+
+ the #NMSettingWireless
+
+
+
+
+
+
+
+ the #NMSettingWireless:generate-mac-address-mask property of the setting
+
+
+
+
+ the #NMSettingWireless
+
+
+
+
+
+
+
+ the #NMSettingWireless:hidden property of the setting
+
+
+
+
+ the #NMSettingWireless
+
+
+
+
+
+
+
+ the #NMSettingWireless:mac-address property of the setting
+
+
+
+
+ the #NMSettingWireless
+
+
+
+
+
+
+
+ the #NMSettingWireless:mac-address-blacklist property of the setting
+
+
+
+
+
+
+ the #NMSettingWireless
+
+
+
+
+
+
+
+ the #NMSettingWireless:mac-address-randomization property of the
+setting
+
+
+
+
+ the #NMSettingWireless
+
+
+
+
+
+ Since 1.46, access at index "len" is allowed and returns NULL.
+
+
+ the blacklisted MAC address string (hex-digits-and-colons notation)
+at index @idx
+
+
+
+
+ the #NMSettingWireless
+
+
+
+ the zero-based index of the MAC address entry
+
+
+
+
+
+
+
+ the #NMSettingWireless:mode property of the setting
+
+
+
+
+ the #NMSettingWireless
+
+
+
+
+
+
+
+ the #NMSettingWireless:mtu property of the setting
+
+
+
+
+ the #NMSettingWireless
+
+
+
+
+
+
+
+ the number of blacklisted MAC addresses
+
+
+
+
+ the #NMSettingWireless
+
+
+
+
+
+
+
+ the number of BSSIDs in the previously seen BSSID list
+
+
+
+
+ the #NMSettingWireless
+
+
+
+
+
+
+
+ the #NMSettingWireless:powersave property of the setting
+
+
+
+
+ the #NMSettingWireless
+
+
+
+
+
+ This setting is not implemented and has no effect.
+
+
+ the #NMSettingWireless:rate property of the setting
+
+
+
+
+ the #NMSettingWireless
+
+
+
+
+
+
+
+ the BSSID at index @i
+
+
+
+
+ the #NMSettingWireless
+
+
+
+ index of a BSSID in the previously seen BSSID list
+
+
+
+
+
+
+
+ the #NMSettingWireless:ssid property of the setting
+
+
+
+
+ the #NMSettingWireless
+
+
+
+
+
+ This setting is not implemented and has no effect.
+
+
+ the #NMSettingWireless:tx-power property of the setting
+
+
+
+
+ the #NMSettingWireless
+
+
+
+
+
+ Returns the Wake-on-WLAN options enabled for the connection
+
+
+ the Wake-on-WLAN options
+
+
+
+
+ the #NMSettingWireless
+
+
+
+
+
+ Removes the MAC address at index @idx from the blacklist.
+
+
+
+
+
+
+ the #NMSettingWireless
+
+
+
+ index number of the MAC address
+
+
+
+
+
+ Removes the MAC address @mac from the blacklist.
+
+
+ %TRUE if the MAC address was found and removed; %FALSE if it was not.
+
+
+
+
+ the #NMSettingWireless
+
+
+
+ the MAC address string (hex-digits-and-colons notation) to remove from
+the blacklist
+
+
+
+
+
+ Configures AP isolation, which prevents communication between
+wireless devices connected to this AP. This property can be set
+to a value different from %NM_TERNARY_DEFAULT only when the
+interface is configured in AP mode.
+
+If set to %NM_TERNARY_TRUE, devices are not able to communicate
+with each other. This increases security because it protects
+devices against attacks from other clients in the network. At
+the same time, it prevents devices to access resources on the
+same wireless networks as file shares, printers, etc.
+
+If set to %NM_TERNARY_FALSE, devices can talk to each other.
+
+When set to %NM_TERNARY_DEFAULT, the global default is used; in
+case the global default is unspecified it is assumed to be
+%NM_TERNARY_FALSE.
+
+
+
+ 802.11 frequency band of the network. One of "a" for 5GHz 802.11a or
+"bg" for 2.4GHz 802.11. This will lock associations to the Wi-Fi network
+to the specific band, i.e. if "a" is specified, the device will not
+associate with the same network in the 2.4GHz band even if the network's
+settings are compatible. This setting depends on specific driver
+capability and may not work with all drivers.
+
+
+
+ If specified, directs the device to only associate with the given access
+point. This capability is highly driver dependent and not supported by
+all devices. Note: this property does not control the BSSID used when
+creating an Ad-Hoc network and is unlikely to in the future.
+
+Locking a client profile to a certain BSSID will prevent roaming and also
+disable background scanning. That can be useful, if there is only one access
+point for the SSID.
+
+
+
+ Wireless channel to use for the Wi-Fi connection. The device will only
+join (or create for Ad-Hoc networks) a Wi-Fi network on the specified
+channel. Because channel numbers overlap between bands, this property
+also requires the "band" property to be set.
+
+
+
+ If specified, request that the device use this MAC address instead.
+This is known as MAC cloning or spoofing.
+
+Beside explicitly specifying a MAC address, the special values "preserve", "permanent",
+"random", "stable" and "stable-ssid" are supported.
+"preserve" means not to touch the MAC address on activation.
+"permanent" means to use the permanent hardware address of the device.
+"random" creates a random MAC address on each connect.
+"stable" creates a hashed MAC address based on connection.stable-id and a
+machine dependent key.
+"stable-ssid" creates a hashed MAC address based on the SSID, the same as setting the
+stable-id to "${NETWORK_SSID}".
+
+If unspecified, the value can be overwritten via global defaults, see manual
+of NetworkManager.conf. If still unspecified, it defaults to "preserve"
+(older versions of NetworkManager may use a different default value).
+
+On D-Bus, this field is expressed as "assigned-mac-address" or the deprecated
+"cloned-mac-address".
+
+
+
+ With #NMSettingWireless:cloned-mac-address setting "random" or "stable",
+by default all bits of the MAC address are scrambled and a locally-administered,
+unicast MAC address is created. This property allows to specify that certain bits
+are fixed. Note that the least significant bit of the first MAC address will
+always be unset to create a unicast MAC address.
+
+If the property is %NULL, it is eligible to be overwritten by a default
+connection setting. If the value is still %NULL or an empty string, the
+default is to create a locally-administered, unicast MAC address.
+
+If the value contains one MAC address, this address is used as mask. The set
+bits of the mask are to be filled with the current MAC address of the device,
+while the unset bits are subject to randomization.
+Setting "FE:FF:FF:00:00:00" means to preserve the OUI of the current MAC address
+and only randomize the lower 3 bytes using the "random" or "stable" algorithm.
+
+If the value contains one additional MAC address after the mask,
+this address is used instead of the current MAC address to fill the bits
+that shall not be randomized. For example, a value of
+"FE:FF:FF:00:00:00 68:F7:28:00:00:00" will set the OUI of the MAC address
+to 68:F7:28, while the lower bits are randomized. A value of
+"02:00:00:00:00:00 00:00:00:00:00:00" will create a fully scrambled
+globally-administered, burned-in MAC address.
+
+If the value contains more than one additional MAC addresses, one of
+them is chosen randomly. For example, "02:00:00:00:00:00 00:00:00:00:00:00 02:00:00:00:00:00"
+will create a fully scrambled MAC address, randomly locally or globally
+administered.
+
+
+
+ If %TRUE, indicates that the network is a non-broadcasting network that
+hides its SSID. This works both in infrastructure and AP mode.
+
+In infrastructure mode, various workarounds are used for a more reliable
+discovery of hidden networks, such as probe-scanning the SSID. However,
+these workarounds expose inherent insecurities with hidden SSID networks,
+and thus hidden SSID networks should be used with caution.
+
+In AP mode, the created network does not broadcast its SSID.
+
+Note that marking the network as hidden may be a privacy issue for you
+(in infrastructure mode) or client stations (in AP mode), as the explicit
+probe-scans are distinctly recognizable on the air.
+
+
+
+ If specified, this connection will only apply to the Wi-Fi device whose
+permanent MAC address matches. This property does not change the MAC
+address of the device (i.e. MAC spoofing).
+
+
+
+ A list of permanent MAC addresses of Wi-Fi devices to which this
+connection should never apply. Each MAC address should be given in the
+standard hex-digits-and-colons notation (eg "00:11:22:33:44:55").
+
+
+
+
+
+ One of %NM_SETTING_MAC_RANDOMIZATION_DEFAULT (never randomize unless
+the user has set a global default to randomize and the supplicant
+supports randomization), %NM_SETTING_MAC_RANDOMIZATION_NEVER (never
+randomize the MAC address), or %NM_SETTING_MAC_RANDOMIZATION_ALWAYS
+(always randomize the MAC address).
+ Use the #NMSettingWireless:cloned-mac-address property instead.
+
+
+
+ Wi-Fi network mode; one of "infrastructure", "mesh", "adhoc" or "ap". If blank,
+infrastructure is assumed.
+
+
+
+ If non-zero, only transmit packets of the specified size or smaller,
+breaking larger packets up into multiple Ethernet frames.
+
+
+
+ One of %NM_SETTING_WIRELESS_POWERSAVE_DISABLE (disable Wi-Fi power
+saving), %NM_SETTING_WIRELESS_POWERSAVE_ENABLE (enable Wi-Fi power
+saving), %NM_SETTING_WIRELESS_POWERSAVE_IGNORE (don't touch currently
+configure setting) or %NM_SETTING_WIRELESS_POWERSAVE_DEFAULT (use the
+globally configured value). All other values are reserved.
+
+
+
+ This property is not implemented and has no effect.
+ This property is not implemented and has no effect.
+
+
+
+ A list of BSSIDs (each BSSID formatted as a MAC address like
+"00:11:22:33:44:55") that have been detected as part of the Wi-Fi
+network. NetworkManager internally tracks previously seen BSSIDs. The
+property is only meant for reading and reflects the BSSID list of
+NetworkManager. The changes you make to this property will not be
+preserved.
+
+This is not a regular property that the user would configure. Instead,
+NetworkManager automatically sets the seen BSSIDs and tracks them internally
+in "/var/lib/NetworkManager/seen-bssids" file.
+
+
+
+
+
+ SSID of the Wi-Fi network. Must be specified.
+
+
+
+ This property is not implemented and has no effect.
+ This property is not implemented and has no effect.
+
+
+
+ The #NMSettingWirelessWakeOnWLan options to enable. Not all devices support all options.
+May be any combination of %NM_SETTING_WIRELESS_WAKE_ON_WLAN_ANY,
+%NM_SETTING_WIRELESS_WAKE_ON_WLAN_DISCONNECT,
+%NM_SETTING_WIRELESS_WAKE_ON_WLAN_MAGIC,
+%NM_SETTING_WIRELESS_WAKE_ON_WLAN_GTK_REKEY_FAILURE,
+%NM_SETTING_WIRELESS_WAKE_ON_WLAN_EAP_IDENTITY_REQUEST,
+%NM_SETTING_WIRELESS_WAKE_ON_WLAN_4WAY_HANDSHAKE,
+%NM_SETTING_WIRELESS_WAKE_ON_WLAN_RFKILL_RELEASE,
+%NM_SETTING_WIRELESS_WAKE_ON_WLAN_TCP or the special values
+%NM_SETTING_WIRELESS_WAKE_ON_WLAN_DEFAULT (to use global settings) and
+%NM_SETTING_WIRELESS_WAKE_ON_WLAN_IGNORE (to disable management of Wake-on-LAN in
+NetworkManager).
+
+
+
+
+
+
+
+ These flags indicate whether wireless powersave must be enabled.
+
+ use the default value
+
+
+ don't touch existing setting
+
+
+ disable powersave
+
+
+ enable powersave
+
+
+
+ Wi-Fi Security Settings
+
+
+ Creates a new #NMSettingWirelessSecurity object with default values.
+
+
+ the new empty #NMSettingWirelessSecurity object
+
+
+
+
+ Adds an encryption algorithm to the list of allowed groupwise encryption
+algorithms. If the list is not empty, then only access points that support
+one or more of the encryption algorithms in the list will be considered
+compatible with this connection.
+
+
+ %TRUE if the algorithm was added to the list, %FALSE if it was
+already in the list
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+ the encryption algorithm to add, one of "wep40", "wep104",
+"tkip", or "ccmp"
+
+
+
+
+
+ Adds an encryption algorithm to the list of allowed pairwise encryption
+algorithms. If the list is not empty, then only access points that support
+one or more of the encryption algorithms in the list will be considered
+compatible with this connection.
+
+
+ %TRUE if the algorithm was added to the list, %FALSE if it was
+already in the list
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+ the encryption algorithm to add, one of "tkip" or "ccmp"
+
+
+
+
+
+ Adds a Wi-Fi security protocol (one of "wpa" or "rsn") to the allowed list;
+only protocols in this list will be used when finding and connecting to
+the Wi-Fi network specified by this connection. For example, if the
+protocol list contains only "wpa" but the access point for the SSID specified
+by this connection only supports WPA2/RSN, the connection cannot be used
+with the access point.
+
+
+ %TRUE if the protocol was new and was added to the allowed
+protocol list, or %FALSE if it was already in the list
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+ the protocol to add, one of "wpa" or "rsn"
+
+
+
+
+
+ Removes all algorithms from the allowed list. If there are no algorithms
+specified then all groupwise encryption algorithms are allowed.
+
+
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+
+
+ Removes all algorithms from the allowed list. If there are no algorithms
+specified then all pairwise encryption algorithms are allowed.
+
+
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+
+
+ Removes all protocols from the allowed list. If there are no protocols
+specified then all protocols are allowed.
+
+
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+
+
+
+
+ the #NMSettingWirelessSecurity:auth-alg property of the setting
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+
+
+
+
+ the #NMSettingWirelessSecurity:fils property of the setting
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+
+
+ Returns the allowed groupwise encryption algorithm from allowed algorithm
+list.
+
+
+ the groupwise encryption algorithm at index @i
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+ index of an item in the allowed groupwise encryption algorithm list
+
+
+
+
+
+
+
+ the #NMSettingWirelessSecurity:key-mgmt property of the setting
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+
+
+
+
+ the #NMSettingWirelessSecurity:leap-password property of the setting
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+
+
+
+
+ the #NMSettingSecretFlags pertaining to the
+#NMSettingWirelessSecurity:leap-password
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+
+
+
+
+ the #NMSettingWirelessSecurity:leap-username property of the setting
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+
+
+
+
+ the number of groupwise encryption algorithms in the allowed list
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+
+
+
+
+ the number of pairwise encryption algorithms in the allowed list
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+
+
+
+
+ the number of security protocols this connection allows when
+connecting to secure Wi-Fi networks
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+
+
+ Returns the allowed pairwise encryption algorithm from allowed algorithm
+list.
+
+
+ the pairwise encryption algorithm at index @i
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+ index of an item in the allowed pairwise encryption algorithm list
+
+
+
+
+
+
+
+ the #NMSettingWirelessSecurity:pmf property of the setting
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+
+
+
+
+ the protocol at index @i
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+ an index into the protocol list
+
+
+
+
+
+
+
+ the #NMSettingWirelessSecurity:psk property of the setting
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+
+
+
+
+ the #NMSettingSecretFlags pertaining to the
+#NMSettingWirelessSecurity:psk
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+
+
+
+
+ the WEP key at the given index
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+ the WEP key index (0..3 inclusive)
+
+
+
+
+
+
+
+ the #NMSettingSecretFlags pertaining to the all WEP keys
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+
+
+
+
+ the #NMSettingWirelessSecurity:wep-key-type property of the setting
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+
+
+
+
+ the #NMSettingWirelessSecurity:wep-tx-keyidx property of the setting
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+
+
+
+
+ the #NMSettingWirelessSecurity:wps-method property of the setting
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+
+
+ Removes an encryption algorithm from the allowed groupwise encryption
+algorithm list.
+
+
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+ the index of an item in the allowed groupwise encryption algorithm list
+
+
+
+
+
+ Removes an encryption algorithm from the allowed groupwise encryption
+algorithm list.
+
+
+ %TRUE if the algorithm was found and removed; %FALSE if it was not.
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+ the encryption algorithm to remove, one of "wep40", "wep104",
+"tkip", or "ccmp"
+
+
+
+
+
+ Removes an encryption algorithm from the allowed pairwise encryption
+algorithm list.
+
+
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+ the index of an item in the allowed pairwise encryption algorithm list
+
+
+
+
+
+ Removes an encryption algorithm from the allowed pairwise encryption
+algorithm list.
+
+
+ %TRUE if the encryption algorithm was found and removed; %FALSE if it was not.
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+ the encryption algorithm to remove, one of "tkip" or "ccmp"
+
+
+
+
+
+ Removes a protocol from the allowed protocol list.
+
+
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+ index of the protocol to remove
+
+
+
+
+
+ Removes a protocol from the allowed protocol list.
+
+
+ %TRUE if the protocol was found and removed; %FALSE if it was not.
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+ the protocol to remove, one of "wpa" or "rsn"
+
+
+
+
+
+ Sets a WEP key in the given index.
+
+
+
+
+
+
+ the #NMSettingWirelessSecurity
+
+
+
+ the index of the key (0..3 inclusive)
+
+
+
+ the WEP key as a string, in either hexadecimal, ASCII, or passphrase
+form as determined by the value of the #NMSettingWirelessSecurity:wep-key-type
+property.
+
+
+
+
+
+ When WEP is used (ie, key-mgmt = "none" or "ieee8021x") indicate the
+802.11 authentication algorithm required by the AP here. One of "open"
+for Open System, "shared" for Shared Key, or "leap" for Cisco LEAP. When
+using Cisco LEAP (ie, key-mgmt = "ieee8021x" and auth-alg = "leap") the
+"leap-username" and "leap-password" properties must be specified.
+
+
+
+ Indicates whether Fast Initial Link Setup (802.11ai) must be enabled for
+the connection. One of %NM_SETTING_WIRELESS_SECURITY_FILS_DEFAULT (use
+global default value), %NM_SETTING_WIRELESS_SECURITY_FILS_DISABLE
+(disable FILS), %NM_SETTING_WIRELESS_SECURITY_FILS_OPTIONAL (enable FILS
+if the supplicant and the access point support it) or
+%NM_SETTING_WIRELESS_SECURITY_FILS_REQUIRED (enable FILS and fail if not
+supported). When set to %NM_SETTING_WIRELESS_SECURITY_FILS_DEFAULT and
+no global default is set, FILS will be optionally enabled.
+
+
+
+ A list of group/broadcast encryption algorithms which prevents
+connections to Wi-Fi networks that do not utilize one of the algorithms
+in the list. For maximum compatibility leave this property empty. Each
+list element may be one of "wep40", "wep104", "tkip", or "ccmp".
+
+
+
+
+
+ Key management used for the connection. One of "none" (WEP or no
+password protection), "ieee8021x" (Dynamic WEP), "owe" (Opportunistic
+Wireless Encryption), "wpa-psk" (WPA2 + WPA3 personal), "sae" (WPA3
+personal only), "wpa-eap" (WPA2 + WPA3 enterprise) or
+"wpa-eap-suite-b-192" (WPA3 enterprise only).
+
+This property must be set for any Wi-Fi connection that uses security.
+
+
+
+ The login password for legacy LEAP connections (ie, key-mgmt =
+"ieee8021x" and auth-alg = "leap").
+
+
+
+ Flags indicating how to handle the
+#NMSettingWirelessSecurity:leap-password property.
+
+
+
+ The login username for legacy LEAP connections (ie, key-mgmt =
+"ieee8021x" and auth-alg = "leap").
+
+
+
+ A list of pairwise encryption algorithms which prevents connections to
+Wi-Fi networks that do not utilize one of the algorithms in the list.
+For maximum compatibility leave this property empty. Each list element
+may be one of "tkip" or "ccmp".
+
+
+
+
+
+ Indicates whether Protected Management Frames (802.11w) must be enabled
+for the connection. One of %NM_SETTING_WIRELESS_SECURITY_PMF_DEFAULT
+(use global default value), %NM_SETTING_WIRELESS_SECURITY_PMF_DISABLE
+(disable PMF), %NM_SETTING_WIRELESS_SECURITY_PMF_OPTIONAL (enable PMF if
+the supplicant and the access point support it) or
+%NM_SETTING_WIRELESS_SECURITY_PMF_REQUIRED (enable PMF and fail if not
+supported). When set to %NM_SETTING_WIRELESS_SECURITY_PMF_DEFAULT and no
+global default is set, PMF will be optionally enabled.
+
+
+
+ List of strings specifying the allowed WPA protocol versions to use.
+Each element may be one "wpa" (allow WPA) or "rsn" (allow WPA2/RSN). If
+not specified, both WPA and RSN connections are allowed.
+
+
+
+
+
+ Pre-Shared-Key for WPA networks. For WPA-PSK, it's either an ASCII
+passphrase of 8 to 63 characters that is (as specified in the 802.11i
+standard) hashed to derive the actual key, or the key in form of 64
+hexadecimal character. The WPA3-Personal networks use a passphrase
+of any length for SAE authentication.
+
+
+
+ Flags indicating how to handle the #NMSettingWirelessSecurity:psk
+property.
+
+
+
+ Flags indicating how to handle the #NMSettingWirelessSecurity:wep-key0,
+#NMSettingWirelessSecurity:wep-key1, #NMSettingWirelessSecurity:wep-key2,
+and #NMSettingWirelessSecurity:wep-key3 properties.
+
+
+
+ Controls the interpretation of WEP keys. Allowed values are
+%NM_WEP_KEY_TYPE_KEY, in which case the key is either a 10- or
+26-character hexadecimal string, or a 5- or 13-character ASCII password;
+or %NM_WEP_KEY_TYPE_PASSPHRASE, in which case the passphrase is provided
+as a string and will be hashed using the de-facto MD5 method to derive
+the actual WEP key.
+
+
+
+ Index 0 WEP key. This is the WEP key used in most networks. See the
+"wep-key-type" property for a description of how this key is interpreted.
+
+
+
+ Index 1 WEP key. This WEP index is not used by most networks. See the
+"wep-key-type" property for a description of how this key is interpreted.
+
+
+
+ Index 2 WEP key. This WEP index is not used by most networks. See the
+"wep-key-type" property for a description of how this key is interpreted.
+
+
+
+ Index 3 WEP key. This WEP index is not used by most networks. See the
+"wep-key-type" property for a description of how this key is interpreted.
+
+
+
+ When static WEP is used (ie, key-mgmt = "none") and a non-default WEP key
+index is used by the AP, put that WEP key index here. Valid values are 0
+(default key) through 3. Note that some consumer access points (like the
+Linksys WRT54G) number the keys 1 - 4.
+
+
+
+ Flags indicating which mode of WPS is to be used if any.
+
+There's little point in changing the default setting as NetworkManager will
+automatically determine whether it's feasible to start WPS enrollment from
+the Access Point capabilities.
+
+WPS can be disabled by setting this property to a value of 1.
+
+
+
+
+
+
+
+ These flags indicate whether FILS must be enabled.
+
+ use the default value
+
+
+ disable FILS
+
+
+ enable FILS if the supplicant and the AP support it
+
+
+ require FILS and fail if not available
+
+
+
+ These flags indicate whether PMF must be enabled.
+
+ use the default value
+
+
+ disable PMF
+
+
+ enable PMF if the supplicant and the AP support it
+
+
+ require PMF and fail if not available
+
+
+
+ Configure the use of WPS by a connection while it activates.
+
+Note: prior to 1.16, this was a GEnum type instead of a GFlags type
+although, with the same numeric values.
+
+ Attempt whichever method AP supports
+
+
+ WPS can not be used.
+
+
+ Use WPS, any method
+
+
+ use WPS push-button method
+
+
+ use PIN method
+
+
+
+ Options for #NMSettingWireless:wake-on-wlan. Note that not all options
+are supported by all devices.
+
+ Wake on any activity
+
+
+ Wake on disconnect
+
+
+ Wake on magic packet
+
+
+ Wake on GTK rekey failure
+
+
+ Wake on EAP identity request
+
+
+ Wake on 4way handshake
+
+
+ Wake on rfkill release
+
+
+
+
+ Wake on all events. This does not
+ include the exclusive flags @NM_SETTING_WIRELESS_WAKE_ON_WLAN_DEFAULT or
+ @NM_SETTING_WIRELESS_WAKE_ON_WLAN_IGNORE.
+
+
+ Use the default value
+
+
+ Don't change configured settings
+
+
+
+ IEEE 802.15.4 (WPAN) MAC Settings
+
+
+ Creates a new #NMSettingWpan object with default values.
+
+
+ the new empty #NMSettingWpan object
+
+
+
+
+
+
+ the #NMSettingWpan:channel property of the setting
+
+
+
+
+ the #NMSettingWpan
+
+
+
+
+
+
+
+ the #NMSettingWpan:mac-address property of the setting
+
+
+
+
+ the #NMSettingWpan
+
+
+
+
+
+
+
+ the #NMSettingWpan:page property of the setting
+
+
+
+
+ the #NMSettingWpan
+
+
+
+
+
+
+
+ the #NMSettingWpan:pan-id property of the setting
+
+
+
+
+ the #NMSettingWpan
+
+
+
+
+
+
+
+ the #NMSettingWpan:short-address property of the setting
+
+
+
+
+ the #NMSettingWpan
+
+
+
+
+
+ IEEE 802.15.4 channel. A positive integer or -1, meaning "do not
+set, use whatever the device is already set to".
+
+
+
+ If specified, this connection will only apply to the IEEE 802.15.4 (WPAN)
+MAC layer device whose permanent MAC address matches.
+
+
+
+ IEEE 802.15.4 channel page. A positive integer or -1, meaning "do not
+set, use whatever the device is already set to".
+
+
+
+ IEEE 802.15.4 Personal Area Network (PAN) identifier.
+
+
+
+ Short IEEE 802.15.4 address to be used within a restricted environment.
+
+
+
+
+
+
+
+ Numeric flags for the "flags" argument of AddConnection2() D-Bus API.
+
+ an alias for numeric zero, no flags set.
+
+
+ to persist the connection to disk.
+
+
+ to make the connection in-memory only.
+
+
+ usually, when the connection
+ has autoconnect enabled and gets added, it becomes eligible to autoconnect
+ right away. Setting this flag, disables autoconnect until the connection
+ is manually activated.
+
+
+
+ Flags describing the current activation state.
+
+ an alias for numeric zero, no flags set.
+
+
+ the connection is not saved to disk.
+ That either means, that the connection is in-memory only and currently
+ is not backed by a file. Or, that the connection is backed by a file,
+ but has modifications in-memory that were not persisted to disk.
+
+
+ A connection is "nm-generated" if
+ it was generated by NetworkManger. If the connection gets modified or saved
+ by the user, the flag gets cleared. A nm-generated is also unsaved
+ and has no backing file as it is in-memory only.
+
+
+ The connection will be deleted
+ when it disconnects. That is for in-memory connections (unsaved), which are
+ currently active but deleted on disconnect. Volatile connections are
+ always unsaved, but they are also no backing file on disk and are entirely
+ in-memory only.
+
+
+ the profile was generated to represent
+ an external configuration of a networking device. Since: 1.26.
+
+
+
+ Errors related to the settings/persistent configuration interface of
+NetworkManager.
+
+These may be returned from #NMClient methods that invoke D-Bus operations on
+the "org.freedesktop.NetworkManager.Settings" interface, and correspond to
+D-Bus errors in that namespace.
+
+ unknown or unclassified error
+
+
+ permission denied
+
+
+ the requested operation is not supported by any
+ active settings backend
+
+
+ the connection was invalid
+
+
+ attempted to modify a read-only connection
+
+
+ a connection with that UUID already exists
+
+
+ attempted to set an invalid hostname
+
+
+ invalid arguments
+
+
+ The profile's VersionId mismatched
+ and the update is rejected. See the "version-id" argument to Update2()
+ method. Since 1.44.
+
+
+ the requested operation is not
+ supported by the settings plugin currently in use for the specified object.
+ Since: 1.44.
+
+
+
+
+
+
+
+
+
+ an alias for numeric zero, no flags set.
+
+
+ to persist the connection to disk.
+
+
+ makes the profile in-memory.
+ Note that such profiles are stored in keyfile format under /run.
+ If the file is already in-memory, the file in /run is updated in-place.
+ Otherwise, the previous storage for the profile is left unchanged
+ on disk, and the in-memory copy shadows it.
+ Note that the original filename of the previous persistent storage (if any)
+ is remembered. That means, when later persisting the profile again to disk,
+ the file on disk will be overwritten again.
+ Likewise, when finally deleting the profile, both the storage from /run
+ and persistent storage are deleted (or if the persistent storage does not
+ allow deletion, and nmmeta file is written to mark the UUID as deleted).
+
+
+ this is almost the same
+ as %NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY, with one difference: when later deleting
+ the profile, the original profile will not be deleted. Instead a nmmeta
+ file is written to /run to indicate that the profile is gone.
+ Note that if such a nmmeta tombstone file exists and hides a file in persistent
+ storage, then when re-adding the profile with the same UUID, then the original
+ storage is taken over again.
+
+
+ this is like %NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY,
+ but if the connection has a corresponding file on persistent storage, the file
+ will be deleted right away. If the profile is later again persisted to disk,
+ a new, unused filename will be chosen.
+
+
+ This can be specified with either
+ %NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY, %NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY_DETACHED
+ or %NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY_ONLY.
+ After making the connection in-memory only, the connection is marked
+ as volatile. That means, if the connection is currently not active
+ it will be deleted right away. Otherwise, it is marked to for deletion
+ once the connection deactivates. A volatile connection cannot autoactivate
+ again (because it's about to be deleted), but a manual activation will
+ clear the volatile flag.
+
+
+ usually, when the connection
+ has autoconnect enabled and is modified, it becomes eligible to autoconnect
+ right away. Setting this flag, disables autoconnect until the connection
+ is manually activated.
+
+
+ when a profile gets modified that is
+ currently active, then these changes don't take effect for the active
+ device unless the profile gets reactivated or the configuration reapplied.
+ There are two exceptions: by default "connection.zone" and "connection.metered"
+ properties take effect immediately. Specify this flag to prevent these
+ properties to take effect, so that the change is restricted to modify
+ the profile. Since: 1.20.
+
+
+
+
+
+
+ Creates a new #NMSimpleConnection object with no #NMSetting objects.
+
+
+ the new empty #NMConnection object
+
+
+
+
+ Clones an #NMConnection as an #NMSimpleConnection.
+
+
+ a new #NMConnection containing the same settings
+and properties as the source #NMConnection
+
+
+
+
+ the #NMConnection to clone
+
+
+
+
+
+ Creates a new #NMSimpleConnection from a hash table describing the
+connection and normalize the connection. See nm_connection_to_dbus() for a
+description of the expected hash table.
+
+
+ the new #NMSimpleConnection object, populated with
+settings created from the values in the hash table, or %NULL if the
+connection failed to normalize.
+
+
+
+
+ a #GVariant of type %NM_VARIANT_TYPE_CONNECTION describing the connection
+
+
+
+
+
+
+
+
+
+
+ don't modify current encap-mode
+
+
+ disable encapsulation mode
+
+
+ enable encapsulation mode
+
+
+
+
+ don't modify current inline-mode
+
+
+ don't use inline mode
+
+
+ L2 mode
+
+
+ L3 mode
+
+
+ L4 mode
+
+
+
+
+ don't modify current eswitch mode
+
+
+ use legacy SRIOV
+
+
+ use switchdev mode
+
+
+
+
+
+ Creates a new #NMSriovVF object.
+
+
+ the new #NMSriovVF object.
+
+
+
+
+ the VF index
+
+
+
+
+
+ Adds a VLAN to the VF. Currently kernel only supports one VLAN per VF.
+
+
+ %TRUE if the VLAN was added; %FALSE if it already existed
+
+
+
+
+ the #NMSriovVF
+
+
+
+ the VLAN id
+
+
+
+
+
+ Creates a copy of @vf.
+
+
+ a copy of @vf
+
+
+
+
+ the #NMSriovVF
+
+
+
+
+
+ Determines if two #NMSriovVF objects have the same index,
+attributes and VLANs.
+
+
+ %TRUE if the objects contain the same values, %FALSE
+ if they do not.
+
+
+
+
+ the #NMSriovVF
+
+
+
+ the #NMSriovVF to compare @vf to.
+
+
+
+
+
+ Gets the value of the attribute with name @name on @vf
+
+
+ the value of the attribute with name @name on
+ @vf, or %NULL if @vf has no such attribute.
+
+
+
+
+ the #NMSriovVF
+
+
+
+ the name of a VF attribute
+
+
+
+
+
+ Gets an array of attribute names defined on @vf.
+
+
+ a %NULL-terminated array of attribute names
+
+
+
+
+
+
+ the #NMSriovVF
+
+
+
+
+
+ Gets the index property of this VF object.
+
+
+ the VF index
+
+
+
+
+ the #NMSriovVF
+
+
+
+
+
+ Returns the VLANs currently configured on the VF. Currently kernel only
+supports one VLAN per VF.
+
+
+ a list of VLAN ids configured on the VF.
+
+
+
+
+
+
+ the #NMSriovVF
+
+
+
+ on return, the number of VLANs configured
+
+
+
+
+
+ Returns the configured protocol for the given VLAN.
+
+
+ the configured protocol
+
+
+
+
+ the #NMSriovVF
+
+
+
+ the VLAN id
+
+
+
+
+
+ Returns the QoS value for the given VLAN.
+
+
+ the QoS value
+
+
+
+
+ the #NMSriovVF
+
+
+
+ the VLAN id
+
+
+
+
+
+ Increases the reference count of the object.
+
+
+
+
+
+
+ the #NMSriovVF
+
+
+
+
+
+ Removes a VLAN from a VF.
+
+
+ %TRUE if the VLAN was removed, %FALSE if the VLAN @vlan_id
+ did not belong to the VF.
+
+
+
+
+ the #NMSriovVF
+
+
+
+ the VLAN id
+
+
+
+
+
+ Sets the named attribute on @vf to the given value.
+
+
+
+
+
+
+ the #NMSriovVF
+
+
+
+ the name of a route attribute
+
+
+
+ the value
+
+
+
+
+
+ Sets the protocol for the given VLAN.
+
+
+
+
+
+
+ the #NMSriovVF
+
+
+
+ the VLAN id
+
+
+
+ the VLAN protocol
+
+
+
+
+
+ Sets a QoS value for the given VLAN.
+
+
+
+
+
+
+ the #NMSriovVF
+
+
+
+ the VLAN id
+
+
+
+ a QoS (priority) value
+
+
+
+
+
+ Decreases the reference count of the object. If the reference count
+reaches zero, the object will be destroyed.
+
+
+
+
+
+
+ the #NMSriovVF
+
+
+
+
+
+ Validates a VF attribute, i.e. checks that the attribute is a known one,
+the value is of the correct type and well-formed.
+
+
+ %TRUE if the attribute is valid, %FALSE otherwise
+
+
+
+
+ the attribute name
+
+
+
+ the attribute value
+
+
+
+ on return, whether the attribute name is a known one
+
+
+
+
+
+
+ #NMSriovVFVlanProtocol indicates the VLAN protocol to use.
+
+ use 802.1Q
+
+
+ use 802.1ad
+
+
+
+ #NMState values indicate the current overall networking state.
+
+ Networking state is unknown. This indicates a daemon error
+ that makes it unable to reasonably assess the state. In such event the
+ applications are expected to assume Internet connectivity might be present
+ and not disable controls that require network access.
+ The graphical shells may hide the network accessibility indicator altogether
+ since no meaningful status indication can be provided.
+
+
+ Networking is not enabled, the system is being suspended or
+ resumed from suspend.
+
+
+ There is no active network connection.
+ The graphical shell should indicate no network connectivity and the
+ applications should not attempt to access the network.
+
+
+ Network connections are being cleaned up.
+ The applications should tear down their network sessions.
+
+
+ A network connection is being started
+ The graphical shell should indicate the network is being connected while
+ the applications should still make no attempts to connect the network.
+
+
+ There is only local IPv4 and/or IPv6 connectivity,
+ but no default route to access the Internet. The graphical shell should
+ indicate no network connectivity.
+
+
+ There is only site-wide IPv4 and/or IPv6 connectivity.
+ This means a default route is available, but the Internet connectivity check
+ (see "Connectivity" property) did not succeed. The graphical shell should
+ indicate limited network connectivity.
+
+
+ There is global IPv4 and/or IPv6 Internet connectivity
+ This means the Internet connectivity check succeeded, the graphical shell should
+ indicate full network connectivity.
+
+
+
+
+
+ Creates a new #NMTCAction object.
+
+
+ the new #NMTCAction object, or %NULL on error
+
+
+
+
+ name of the queueing discipline
+
+
+
+
+
+ Creates a copy of @action
+
+
+ a copy of @action
+
+
+
+
+ the #NMTCAction
+
+
+
+
+
+ Determines if two #NMTCAction objects contain the same kind, family,
+handle, parent and info.
+
+
+ %TRUE if the objects contain the same values, %FALSE if they do not.
+
+
+
+
+ the #NMTCAction
+
+
+
+ the #NMTCAction to compare @action to.
+
+
+
+
+
+ Gets the value of the attribute with name @name on @action
+
+
+ the value of the attribute with name @name on
+ @action, or %NULL if @action has no such attribute.
+
+
+
+
+ the #NMTCAction
+
+
+
+ the name of an action attribute
+
+
+
+
+
+ Gets an array of attribute names defined on @action.
+
+
+ a %NULL-terminated array of attribute names,
+
+
+
+
+
+
+ the #NMTCAction
+
+
+
+
+
+
+
+
+
+
+
+ the #NMTCAction
+
+
+
+
+
+ Increases the reference count of the object.
+
+
+
+
+
+
+ the #NMTCAction
+
+
+
+
+
+ Sets or clears the named attribute on @action to the given value.
+
+
+
+
+
+
+ the #NMTCAction
+
+
+
+ the name of an action attribute
+
+
+
+ the value
+
+
+
+
+
+ Decreases the reference count of the object. If the reference count
+reaches zero, the object will be destroyed.
+
+
+
+
+
+
+ the #NMTCAction
+
+
+
+
+
+
+
+
+ Creates a new #NMTCQdisc object.
+
+
+ the new #NMTCQdisc object, or %NULL on error
+
+
+
+
+ name of the queueing discipline
+
+
+
+ the parent queueing discipline
+
+
+
+
+
+ Creates a copy of @qdisc
+
+
+ a copy of @qdisc
+
+
+
+
+ the #NMTCQdisc
+
+
+
+
+
+ Determines if two #NMTCQdisc objects contain the same kind, * handle
+and parent.
+
+
+ %TRUE if the objects contain the same values, %FALSE if they do not.
+
+
+
+
+ the #NMTCQdisc
+
+
+
+ the #NMTCQdisc to compare @qdisc to.
+
+
+
+
+
+ Gets the value of the attribute with name @name on @qdisc
+
+
+ the value of the attribute with name @name on
+ @qdisc, or %NULL if @qdisc has no such attribute.
+
+
+
+
+ the #NMTCQdisc
+
+
+
+ the name of an qdisc attribute
+
+
+
+
+
+ Gets an array of attribute names defined on @qdisc.
+
+
+ a %NULL-terminated array of attribute names
+ or %NULL if no attributes are set.
+
+
+
+
+
+
+ the #NMTCQdisc
+
+
+
+
+
+
+
+ the queueing discipline handle
+
+
+
+
+ the #NMTCQdisc
+
+
+
+
+
+
+
+
+
+
+
+ the #NMTCQdisc
+
+
+
+
+
+
+
+ the parent class
+
+
+
+
+ the #NMTCQdisc
+
+
+
+
+
+ Increases the reference count of the object.
+
+
+
+
+
+
+ the #NMTCQdisc
+
+
+
+
+
+ Sets or clears the named attribute on @qdisc to the given value.
+
+
+
+
+
+
+ the #NMTCQdisc
+
+
+
+ the name of an qdisc attribute
+
+
+
+ the value
+
+
+
+
+
+ Sets the queueing discipline handle.
+
+
+
+
+
+
+ the #NMTCQdisc
+
+
+
+ the queueing discipline handle
+
+
+
+
+
+ Decreases the reference count of the object. If the reference count
+reaches zero, the object will be destroyed.
+
+
+
+
+
+
+ the #NMTCQdisc
+
+
+
+
+
+
+
+
+ Creates a new #NMTCTfilter object.
+
+
+ the new #NMTCTfilter object, or %NULL on error
+
+
+
+
+ name of the queueing discipline
+
+
+
+ the parent queueing discipline
+
+
+
+
+
+ Creates a copy of @tfilter
+
+
+ a copy of @tfilter
+
+
+
+
+ the #NMTCTfilter
+
+
+
+
+
+ Determines if two #NMTCTfilter objects contain the same kind, family,
+handle, parent and info.
+
+
+ %TRUE if the objects contain the same values, %FALSE if they do not.
+
+
+
+
+ the #NMTCTfilter
+
+
+
+ the #NMTCTfilter to compare @tfilter to.
+
+
+
+
+
+
+
+ the action associated with a traffic filter.
+
+
+
+
+ the #NMTCTfilter
+
+
+
+
+
+
+
+ the queueing discipline handle
+
+
+
+
+ the #NMTCTfilter
+
+
+
+
+
+
+
+
+
+
+
+ the #NMTCTfilter
+
+
+
+
+
+
+
+ the parent class
+
+
+
+
+ the #NMTCTfilter
+
+
+
+
+
+ Increases the reference count of the object.
+
+
+
+
+
+
+ the #NMTCTfilter
+
+
+
+
+
+ Sets the action associated with a traffic filter.
+
+
+
+
+
+
+ the #NMTCTfilter
+
+
+
+ the action object
+
+
+
+
+
+ Sets the queueing discipline handle.
+
+
+
+
+
+
+ the #NMTCTfilter
+
+
+
+ the queueing discipline handle
+
+
+
+
+
+ Decreases the reference count of the object. If the reference count
+reaches zero, the object will be destroyed.
+
+
+
+
+
+
+ the #NMTCTfilter
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates a new arp_ping #NMTeamLinkWatcher object
+
+
+ the new #NMTeamLinkWatcher object, or %NULL on error
+
+
+
+
+ init_wait value
+
+
+
+ interval value
+
+
+
+ missed_max value
+
+
+
+ the host name or the ip address that will be used as destination
+ address in the arp request
+
+
+
+ the host name or the ip address that will be used as source
+ address in the arp request
+
+
+
+ the watcher #NMTeamLinkWatcherArpPingFlags
+
+
+
+
+
+ Creates a new arp_ping #NMTeamLinkWatcher object
+
+
+ the new #NMTeamLinkWatcher object, or %NULL on error
+
+
+
+
+ init_wait value
+
+
+
+ interval value
+
+
+
+ missed_max value
+
+
+
+ vlanid value
+
+
+
+ the host name or the ip address that will be used as destination
+ address in the arp request
+
+
+
+ the host name or the ip address that will be used as source
+ address in the arp request
+
+
+
+ the watcher #NMTeamLinkWatcherArpPingFlags
+
+
+
+
+
+ Creates a new ethtool #NMTeamLinkWatcher object
+
+
+ the new #NMTeamLinkWatcher object
+
+
+
+
+ delay_up value
+
+
+
+ delay_down value
+
+
+
+
+
+ Creates a new nsna_ping #NMTeamLinkWatcher object
+
+
+ the new #NMTeamLinkWatcher object, or %NULL on error
+
+
+
+
+ init_wait value
+
+
+
+ interval value
+
+
+
+ missed_max value
+
+
+
+ the host name or the ipv6 address that will be used as
+ target address in the NS packet
+
+
+
+
+
+ Creates a copy of @watcher
+
+
+ a copy of @watcher
+
+
+
+
+ the #NMTeamLinkWatcher
+
+
+
+
+
+ Determines if two #NMTeamLinkWatcher objects contain the same values
+in all the properties.
+
+
+ %TRUE if the objects contain the same values, %FALSE if they do not.
+
+
+
+
+ the #NMTeamLinkWatcher
+
+
+
+ the #NMTeamLinkWatcher to compare @watcher to.
+
+
+
+
+
+ Gets the delay_down interval (in milliseconds) that elapses between the link
+going down and the runner being notified about it.
+
+
+
+
+
+
+ the #NMTeamLinkWatcher
+
+
+
+
+
+ Gets the delay_up interval (in milliseconds) that elapses between the link
+coming up and the runner being notified about it.
+
+
+
+
+
+
+ the #NMTeamLinkWatcher
+
+
+
+
+
+ Gets the arp ping watcher flags.
+
+
+
+
+
+
+ the #NMTeamLinkWatcher
+
+
+
+
+
+ Gets the init_wait interval (in milliseconds) that the team slave should
+wait before sending the first packet to the target host.
+
+
+
+
+
+
+ the #NMTeamLinkWatcher
+
+
+
+
+
+ Gets the interval (in milliseconds) that the team slave should wait between
+sending two check packets to the target host.
+
+
+
+
+
+
+ the #NMTeamLinkWatcher
+
+
+
+
+
+ Gets the number of missed replies after which the link is considered down.
+
+
+
+
+
+
+ the #NMTeamLinkWatcher
+
+
+
+
+
+ Gets the name of the link watcher to be used.
+
+
+
+
+
+
+ the #NMTeamLinkWatcher
+
+
+
+
+
+ Gets the ip address to be used as source for the link probing packets.
+
+
+
+
+
+
+ the #NMTeamLinkWatcher
+
+
+
+
+
+ Gets the host name/ip address to be used as destination for the link probing
+packets.
+
+
+
+
+
+
+ the #NMTeamLinkWatcher
+
+
+
+
+
+ Gets the VLAN tag ID to be used to outgoing link probes
+
+
+
+
+
+
+ the #NMTeamLinkWatcher
+
+
+
+
+
+ Increases the reference count of the object.
+
+Since 1.20, ref-counting of #NMTeamLinkWatcher is thread-safe.
+
+
+
+
+
+
+ the #NMTeamLinkWatcher
+
+
+
+
+
+ Decreases the reference count of the object. If the reference count
+reaches zero, the object will be destroyed.
+
+Since 1.20, ref-counting of #NMTeamLinkWatcher is thread-safe.
+
+
+
+
+
+
+ the #NMTeamLinkWatcher
+
+
+
+
+
+
+
+ the arp_ping link watcher
+ option 'validate_active' is enabled (set to true).
+
+
+ the arp_ping link watcher
+ option 'validate_inactive' is enabled (set to true).
+
+
+ the arp_ping link watcher option
+ 'send_always' is enabled (set to true).
+
+
+
+ An boolean value that can be overridden by a default.
+
+ use the globally-configured default value.
+
+
+ the option is disabled.
+
+
+ the option is enabled.
+
+
+
+ The maximum length of hardware addresses handled by NetworkManager itself,
+nm_utils_hwaddr_len(), and nm_utils_hwaddr_aton().
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This function takes a string argument and returns either %TRUE or %FALSE.
+It is a general purpose predicate, for example used by nm_setting_option_clear_by_name().
+
+
+ %TRUE if the predicate function matches.
+
+
+
+
+ the name to check.
+
+
+
+
+
+ Describes generic security mechanisms that 802.11 access points may offer.
+Used with nm_utils_security_valid() for checking whether a given access
+point is compatible with a network device.
+
+ unknown or invalid security, placeholder and not used
+
+
+ unencrypted and open
+
+
+ static WEP keys are used for encryption
+
+
+ Cisco LEAP is used for authentication and for generating the
+dynamic WEP keys automatically
+
+
+ standard 802.1x is used for authentication and
+generating the dynamic WEP keys automatically
+
+
+ WPA1 is used with Pre-Shared Keys (PSK)
+
+
+ WPA1 is used with 802.1x authentication
+
+
+ WPA2/RSN is used with Pre-Shared Keys (PSK)
+
+
+ WPA2 is used with 802.1x authentication
+
+
+ is used with WPA3 Enterprise
+
+
+ is used with Enhanced Open
+
+
+ is used with WPA3 Enterprise Suite-B 192 bit mode. Since: 1.30.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ %_NM_VERSION_INFO_CAPABILITY_UNUSED: a dummy capability. It has no meaning,
+ don't use it.
+Currently no enum values are defined. These capabilities are exposed
+on D-Bus in the "VersionInfo" bit field.
+
+
+
+
+ #NMVlanFlags values control the behavior of the VLAN interface.
+
+ indicates that this interface should reorder
+ outgoing packet headers to look more like a non-VLAN Ethernet interface
+
+
+ indicates that this interface should use GVRP to register
+ itself with its switch
+
+
+ indicates that this interface's operating
+ state is tied to the underlying network interface but other details
+ (like routing) are not.
+
+
+ indicates that this interface should use MVRP to register
+ itself with its switch
+
+
+
+ A selector for traffic priority maps; these map Linux SKB priorities
+to 802.1p priorities used in VLANs.
+
+ map for incoming data
+
+
+ map for outgoing data
+
+
+
+
+
+ Gets the VPN login banner of the active #NMVpnConnection.
+
+
+ the VPN login banner of the VPN connection. This is the internal
+string used by the connection, and must not be modified.
+
+
+
+
+ a #NMVpnConnection
+
+
+
+
+
+ Gets the current #NMVpnConnection state.
+
+
+ the VPN state of the active VPN connection.
+
+
+
+
+ a #NMVpnConnection
+
+
+
+
+
+ The VPN login banner of the active VPN connection.
+
+
+
+ The VPN state of the active VPN connection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VPN connection states
+
+ The state of the VPN connection is
+ unknown.
+
+
+ The VPN connection is preparing to
+ connect.
+
+
+ The VPN connection needs authorization
+ credentials.
+
+
+ The VPN connection is being established.
+
+
+ The VPN connection is getting an IP
+ address.
+
+
+ The VPN connection is active.
+
+
+ The VPN connection failed.
+
+
+ The VPN connection is disconnected.
+
+
+
+ VPN connection state reasons
+
+ The reason for the VPN connection
+ state change is unknown.
+
+
+ No reason was given for the VPN
+ connection state change.
+
+
+ The VPN connection changed
+ state because the user disconnected it.
+
+
+ The VPN connection
+ changed state because the device it was using was disconnected.
+
+
+ The service providing the
+ VPN connection was stopped.
+
+
+ The IP config of the VPN
+ connection was invalid.
+
+
+ The connection attempt to
+ the VPN service timed out.
+
+
+ A timeout occurred
+ while starting the service providing the VPN connection.
+
+
+ Starting the service
+ starting the service providing the VPN connection failed.
+
+
+ Necessary secrets for the VPN
+ connection were not provided.
+
+
+ Authentication to the VPN
+ server failed.
+
+
+ The connection was
+ deleted from settings.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ the #NMVpnEditor
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ the #NMVpnEditor
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Interface for editing a specific #NMConnection
+
+
+ the parent interface
+
+
+
+
+
+
+
+
+
+
+ the #NMVpnEditor
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Load the shared library @plugin_name and create a new
+#NMVpnEditorPlugin instance via the #NMVpnEditorPluginFactory
+function.
+
+This is similar to nm_vpn_editor_plugin_load_from_file(), but
+it does no validation of the plugin name, instead passes it directly
+to dlopen(). If you have the full path to a plugin file,
+nm_vpn_editor_plugin_load_from_file() is preferred.
+
+
+ a new plugin instance or %NULL on error.
+
+
+
+
+ The name of the shared library to load.
+ This path will be directly passed to dlopen() without
+ further checks.
+
+
+
+ if not-null, check that the loaded plugin advertises
+ the given service.
+
+
+
+
+
+ Load the shared library @plugin_name and create a new
+#NMVpnEditorPlugin instance via the #NMVpnEditorPluginFactory
+function.
+
+If @plugin_name is not an absolute path name, it assumes the file
+is in the plugin directory of NetworkManager. In any case, the call
+will do certain checks on the file before passing it to dlopen.
+A consequence for that is, that you cannot omit the ".so" suffix
+as you could for nm_vpn_editor_plugin_load().
+
+
+ a new plugin instance or %NULL on error.
+
+
+
+
+ The path or name of the shared library to load.
+ The path must either be an absolute filename to an existing file.
+ Alternatively, it can be the name (without path) of a library in the
+ plugin directory of NetworkManager.
+
+
+
+ if not-null, check that the loaded plugin advertises
+ the given service.
+
+
+
+ if non-negative, check whether the file is owned
+ by UID @check_owner or by root. In this case also check that
+ the file is not writable by anybody else.
+
+
+
+ optional callback to validate the file prior to
+ loading the shared library.
+
+
+
+ user data for @check_file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ a new #NMVpnEditor or %NULL on error
+
+
+
+
+ the #NMVpnEditorPlugin
+
+
+
+ the #NMConnection to be edited
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ a new #NMVpnEditor or %NULL on error
+
+
+
+
+ the #NMVpnEditorPlugin
+
+
+
+ the #NMConnection to be edited
+
+
+
+
+
+
+
+ if set, return the #NMVpnPluginInfo instance.
+
+
+
+
+ the #NMVpnEditorPlugin instance
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns an opaque VT function table for the plugin to extend
+functionality. The actual meaning of NMVpnEditorPluginVT is not
+defined in public API of libnm, instead it must be agreed by
+both the plugin and the caller. See the header-only file
+'nm-vpn-editor-plugin-call.h' which defines the meaning.
+
+
+ the actual size of the @plugin's virtual function table.
+
+
+
+
+ the #NMVpnEditorPlugin
+
+
+
+ buffer to be filled with the VT table of the plugin
+
+
+
+ the size of the buffer. Can be 0 to only query the
+ size of plugin's VT.
+
+
+
+
+
+
+
+ a new #NMConnection imported from @path, or %NULL
+on error or if the file at @path was not recognized by this plugin
+
+
+
+
+ the #NMVpnEditorPlugin
+
+
+
+ full path to the file to attempt to read into a new #NMConnection
+
+
+
+
+
+ Set or clear the plugin-info instance.
+This takes a weak reference on @plugin_info, to avoid circular
+reference as the plugin-info might also reference the editor-plugin.
+
+
+
+
+
+
+ the #NMVpnEditorPlugin instance
+
+
+
+ a #NMVpnPluginInfo instance or %NULL
+
+
+
+
+
+ Longer description of the VPN plugin.
+
+
+
+ Short display name of the VPN plugin.
+
+
+
+ D-Bus service name of the plugin's VPN service.
+
+
+
+
+ Flags that indicate certain capabilities of the plugin to editor programs.
+
+ unknown or no capability
+
+
+ the plugin can import new connections
+
+
+ the plugin can export connections
+
+
+ the plugin supports IPv6 addressing
+
+
+
+ Interface for VPN editor plugins.
+
+
+ the parent interface
+
+
+
+
+
+
+ a new #NMVpnEditor or %NULL on error
+
+
+
+
+ the #NMVpnEditorPlugin
+
+
+
+ the #NMConnection to be edited
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ the name of the data or secret item
+
+
+
+ the value of the data or secret item
+
+
+
+ User data passed to nm_setting_vpn_foreach_data_item() or
+nm_setting_vpn_foreach_secret()
+
+
+
+
+
+ Returned by the VPN service plugin to indicate errors. These codes correspond
+to errors in the "org.freedesktop.NetworkManager.VPN.Error" namespace.
+
+ unknown or unclassified error
+
+
+ the plugin is already starting,
+ and another connect request was received
+
+
+ the plugin is already connected, and
+ another connect request was received
+
+
+ the plugin is already stopping,
+ and another stop request was received
+
+
+ the plugin is already stopped, and
+ another disconnect request was received
+
+
+ the operation could not be performed in
+ this state
+
+
+ the operation could not be performed as
+ the request contained malformed arguments, or arguments of unexpected type.
+ Usually means that one of the VPN setting data items or secrets was not of
+ the expected type (ie int, string, bool, etc).
+
+
+ a child process failed to launch
+
+
+ the operation could not be performed
+ because the connection was invalid. Usually means that the connection's
+ VPN setting was missing some required data item or secret.
+
+
+ the operation could not be
+ performed as the plugin does not support interactive operations, such as
+ ConnectInteractive() or NewSecrets()
+
+
+
+
+
+
+
+
+ VPN plugin failure reasons
+
+ Login failed.
+
+
+ Connect failed.
+
+
+ Invalid IP configuration returned from
+ the VPN plugin.
+
+
+
+
+
+
+ Read the plugin info from file @filename. Does not do
+any further verification on the file. You might want to check
+file permissions and ownership of the file.
+
+
+ %NULL if there is any error or a newly created
+#NMVpnPluginInfo instance.
+
+
+
+
+ filename to read.
+
+
+
+
+
+ This has the same effect as doing a full nm_vpn_plugin_info_list_load()
+followed by a search for the first matching VPN plugin info that has the
+given @name and/or @service.
+
+
+ a newly created instance of plugin info
+ or %NULL if no matching value was found.
+
+
+
+
+ the name to search for. Either @name or @service
+ must be present.
+
+
+
+ the service to search for. Either @name or
+ @service must be present.
+
+
+
+
+
+ This constructor does not read any data from file but
+takes instead a @keyfile argument.
+
+
+ new plugin info instance.
+
+
+
+
+ optional filename.
+
+
+
+ inject data for the plugin info instance.
+
+
+
+
+
+
+
+ %TRUE if the plugin was added to @list. This will fail
+to add duplicate plugins.
+
+
+
+
+ list of plugins
+
+
+
+
+
+ instance to add
+
+
+
+
+
+
+
+ the first plugin with a matching @filename (or %NULL).
+
+
+
+
+ list of plugins
+
+
+
+
+
+ filename to search
+
+
+
+
+
+
+
+ the first plugin with a matching @name (or %NULL).
+
+
+
+
+ list of plugins
+
+
+
+
+
+ name to search
+
+
+
+
+
+
+
+ the first plugin with a matching @service (or %NULL).
+
+
+
+
+ list of plugins
+
+
+
+
+
+ service to search. This can be the main service-type
+ or one of the provided aliases.
+
+
+
+
+
+ A VPN plugin provides one or several service-types, like org.freedesktop.NetworkManager.libreswan
+Certain plugins provide more then one service type, via aliases (org.freedesktop.NetworkManager.openswan).
+This function looks up a service-type (or an alias) based on a name.
+
+Preferably, the name can be a full service-type/alias of an installed
+plugin. Otherwise, it can be the name of a VPN plugin (in which case, the
+primary, non-aliased service-type is returned). Otherwise, it can be
+one of several well known short-names (which is a hard-coded list of
+types in libnm). On success, this returns a full qualified service-type
+(or an alias). It doesn't say, that such an plugin is actually available,
+but it could be retrieved via nm_vpn_plugin_info_list_find_by_service().
+
+
+ the resolved service-type or %NULL on failure.
+
+
+
+
+ a possibly empty #GSList of #NMVpnPluginInfo instances
+
+
+
+
+
+ a name to lookup the service-type.
+
+
+
+
+
+
+
+ a %NULL terminated strv list of strings.
+ The list itself and the values must be freed with g_strfreev().
+
+
+
+
+
+
+ a possibly empty #GSList of #NMVpnPluginInfo
+
+
+
+
+
+ only include results that are actually in @list.
+ Otherwise, the result is extended with a hard-code list or
+ well-known plugins
+
+
+
+ if %FALSE, only full service types are returned.
+ Otherwise, this also includes abbreviated names that can be used
+ with nm_vpn_plugin_info_list_find_service_type().
+
+
+
+
+
+
+
+ list of plugins
+loaded from the default directories rejecting duplicates.
+
+
+
+
+
+
+ Remove @plugin_info from @list.
+
+
+ %TRUE if @plugin_info was in @list and successfully removed.
+
+
+
+
+ list of plugins
+
+
+
+
+
+ instance
+
+
+
+
+
+ Regular name files have a certain pattern. That basically means
+they have the file extension "name". Check if @filename
+is valid according to that pattern.
+
+
+
+
+
+
+ the filename to check
+
+
+
+
+
+
+
+
+ the aliases from the name-file.
+
+
+
+
+
+
+ plugin info instance
+
+
+
+
+
+
+
+ the absolute path to the auth-dialog helper or %NULL.
+
+
+
+
+ plugin info instance
+
+
+
+
+
+
+
+ the cached #NMVpnEditorPlugin instance.
+
+
+
+
+ plugin info instance
+
+
+
+
+
+
+
+ the filename. Can be %NULL.
+
+
+
+
+ plugin info instance
+
+
+
+
+
+
+
+ the name. Cannot be %NULL.
+
+
+
+
+ plugin info instance
+
+
+
+
+
+
+
+ the plugin. Can be %NULL.
+
+
+
+
+ plugin info instance
+
+
+
+
+
+
+
+ the program. Can be %NULL.
+
+
+
+
+ plugin info instance
+
+
+
+
+
+
+
+ the service. Cannot be %NULL.
+
+
+
+
+ plugin info instance
+
+
+
+
+
+
+
+ loads the plugin and returns the newly created
+ instance. The plugin is owned by @self and can be later retrieved again
+ via nm_vpn_plugin_info_get_editor_plugin(). You can load the
+ plugin only once, unless you reset the state via
+ nm_vpn_plugin_info_set_editor_plugin().
+
+
+
+
+ plugin info instance
+
+
+
+
+
+
+
+ #NMVpnPluginInfo is internally a #GKeyFile. Returns the matching
+property.
+
+
+
+
+ plugin info instance
+
+
+
+ group name
+
+
+
+ name of the property
+
+
+
+
+
+ Set the internal plugin instance. If %NULL, only clear the previous instance.
+
+
+
+
+
+
+ plugin info instance
+
+
+
+ plugin instance
+
+
+
+
+
+
+
+ %TRUE if the supports hints for secret requests, otherwise %FALSE
+
+
+
+
+ plugin info instance
+
+
+
+
+
+
+
+ %TRUE if the service supports multiple instances with different bus names, otherwise %FALSE
+
+
+
+
+ plugin info instance
+
+
+
+
+
+ The filename from which the info was loaded.
+Can be %NULL if the instance was not loaded from
+a file (i.e. the keyfile instance was passed to the
+constructor).
+
+
+
+ Initialize the instance with a different keyfile instance.
+When passing a keyfile instance, the constructor will not
+try to read from filename.
+
+
+
+ The name of the VPN plugin.
+
+
+
+
+
+
+
+
+
+
+ Given a VPN secret key name, attempts to find the corresponding flags data
+item in @data. If found, converts the flags data item to
+#NMSettingSecretFlags and returns it.
+ Replaced by NMVpnServicePlugin.
+
+
+ %TRUE if the flag data item was found and successfully converted
+to flags, %FALSE if not
+
+
+
+
+ hash table containing VPN key/value pair data items
+
+
+
+
+
+
+ VPN secret key name for which to retrieve flags for
+
+
+
+ on success, the flags associated with @secret_name
+
+
+
+
+
+ Parses key/value pairs from a file descriptor (normally stdin) passed by
+an applet when the applet calls the authentication dialog of the VPN plugin.
+ Replaced by NMVpnServicePlugin.
+
+
+ %TRUE if reading values was successful, %FALSE if not
+
+
+
+
+ file descriptor to read from, usually stdin (0)
+
+
+
+ on successful return, a hash table
+(mapping char*:char*) containing the key/value pairs of VPN data items
+
+
+
+
+
+
+ on successful return, a hash table
+(mapping char*:char*) containing the key/value pairsof VPN secrets
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Replaced by NMVpnServicePlugin.
+
+
+
+
+
+
+
+
+
+
+
+ Replaced by NMVpnServicePlugin.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Replaced by NMVpnServicePlugin.
+
+
+
+
+
+
+
+
+
+
+
+ Replaced by NMVpnServicePlugin.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Replaced by NMVpnServicePlugin.
+
+
+
+
+
+
+
+
+
+
+
+ Replaced by NMVpnServicePlugin.
+
+
+
+
+
+
+
+
+
+
+
+ Called by VPN plugin implementations to signal to NetworkManager that secrets
+are required during the connection process. This signal may be used to
+request new secrets when the secrets originally provided by NetworkManager
+are insufficient, or the VPN process indicates that it needs additional
+information to complete the request.
+ Replaced by NMVpnServicePlugin.
+
+
+
+
+
+
+ the #NMVpnPluginOld
+
+
+
+ an information message about why secrets are required, if any
+
+
+
+ VPN specific secret names for required new secrets
+
+
+
+
+
+ Replaced by NMVpnServicePlugin.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Replaced by NMVpnServicePlugin.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Replaced by NMVpnServicePlugin.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The D-Bus service name of this plugin.
+ Replaced by NMVpnServicePlugin.
+
+
+
+ The state of the plugin.
+ Replaced by NMVpnServicePlugin.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Given a VPN secret key name, attempts to find the corresponding flags data
+item in @data. If found, converts the flags data item to
+#NMSettingSecretFlags and returns it.
+
+
+ %TRUE if the flag data item was found and successfully converted
+to flags, %FALSE if not
+
+
+
+
+ hash table containing VPN key/value pair data items
+
+
+
+
+
+
+ VPN secret key name for which to retrieve flags for
+
+
+
+ on success, the flags associated with @secret_name
+
+
+
+
+
+ Parses key/value pairs from a file descriptor (normally stdin) passed by
+an applet when the applet calls the authentication dialog of the VPN plugin.
+
+
+ %TRUE if reading values was successful, %FALSE if not
+
+
+
+
+ file descriptor to read from, usually stdin (0)
+
+
+
+ on successful return, a hash table
+(mapping char*:char*) containing the key/value pairs of VPN data items
+
+
+
+
+
+
+ on successful return, a hash table
+(mapping char*:char*) containing the key/value pairsof VPN secrets
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Called by VPN plugin implementations to signal to NetworkManager that secrets
+are required during the connection process. This signal may be used to
+request new secrets when the secrets originally provided by NetworkManager
+are insufficient, or the VPN process indicates that it needs additional
+information to complete the request.
+
+
+
+
+
+
+ the #NMVpnServicePlugin
+
+
+
+ an information message about why secrets are required, if any
+
+
+
+ VPN specific secret names for required new secrets
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Shutdown the @plugin and disconnect from D-Bus. After this,
+the plugin instance is dead and should no longer be used.
+It ensures to get no more requests from D-Bus. In principle,
+you don't need to shutdown the plugin, disposing the instance
+has the same effect. However, this gives a way to deactivate
+the plugin before giving up the last reference.
+
+
+
+
+
+
+ the #NMVpnServicePlugin instance
+
+
+
+
+
+ The D-Bus service name of this plugin.
+
+
+
+ The state of the plugin.
+
+
+
+ Whether to watch for D-Bus peer's changes.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VPN daemon states
+
+ The state of the VPN plugin is unknown.
+
+
+ The VPN plugin is initialized.
+
+
+ Not used.
+
+
+ The plugin is attempting to connect to a VPN server.
+
+
+ The plugin has connected to a VPN server.
+
+
+ The plugin is disconnecting from the VPN server.
+
+
+ The plugin has disconnected from the VPN server.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The #NMWepKeyType values specify how any WEP keys present in the setting
+are interpreted. There are no standards governing how to hash the various WEP
+key/passphrase formats into the actual WEP key. Unfortunately some WEP keys
+can be interpreted in multiple ways, requiring the setting to specify how to
+interpret the any WEP keys. For example, the key "732f2d712e4a394a375d366931"
+is both a valid Hexadecimal WEP key and a WEP passphrase. Further, many
+ASCII keys are also valid WEP passphrases, but since passphrases and ASCII
+keys are hashed differently to determine the actual WEP key the type must be
+specified.
+
+ unknown WEP key type
+
+
+ indicates a hexadecimal or ASCII formatted WEP key.
+Hex keys are either 10 or 26 hexadecimal characters (ie "5f782f2f5f" or
+"732f2d712e4a394a375d366931"), while ASCII keys are either 5 or 13 ASCII
+characters (ie "abcde" or "blahblah99$*1").
+
+
+ indicates a WEP passphrase (ex "I bought a duck
+on my way back from the market 235Q&^%^*%") instead of a hexadecimal or ASCII
+key. Passphrases are between 8 and 64 characters inclusive and are hashed
+the actual WEP key using the MD5 hash algorithm.
+
+
+
+
+
+ Validates a given connection against a given Wi-Fi P2P peer to ensure that
+the connection may be activated with that peer. The connection must match the
+@peer's address and in the future possibly other attributes.
+
+
+ %TRUE if the connection may be activated with this Wi-Fi P2P Peer,
+%FALSE if it cannot be.
+
+
+
+
+ an #NMWifiP2PPeer to validate @connection against
+
+
+
+ an #NMConnection to validate against @peer
+
+
+
+
+
+ Filters a given array of connections for a given #NMWifiP2PPeer object and
+returns connections which may be activated with the P2P peer. Any
+returned connections will match the @peers's HW address and in the future
+possibly other attributes.
+
+To obtain the list of connections that are compatible with this P2P peer,
+use nm_client_get_connections() and then filter the returned list for a given
+#NMDevice using nm_device_filter_connections() and finally filter that list
+with this function.
+
+
+ an array of
+#NMConnections that could be activated with the given @peer. The array should
+be freed with g_ptr_array_unref() when it is no longer required.
+
+
+
+
+
+
+ an #NMWifiP2PPeer to filter connections for
+
+
+
+ an array of #NMConnections to
+filter
+
+
+
+
+
+
+
+ Gets the flags of the P2P peer.
+
+
+ the flags
+
+
+
+
+ a #NMWifiP2PPeer
+
+
+
+
+
+ Gets the hardware address of the P2P peer.
+
+
+ the hardware address
+
+
+
+
+ a #NMWifiP2PPeer
+
+
+
+
+
+ Returns the timestamp (in CLOCK_BOOTTIME seconds) for the last time the
+P2P peer was seen. A value of -1 means the P2P peer has never been seen.
+
+
+ the last seen time in seconds
+
+
+
+
+ a #NMWifiP2PPeer
+
+
+
+
+
+ Gets the manufacturer of the P2P peer.
+
+
+ the manufacturer
+
+
+
+
+ a #NMWifiP2PPeer
+
+
+
+
+
+ Gets the model of the P2P peer.
+
+
+ the model
+
+
+
+
+ a #NMWifiP2PPeer
+
+
+
+
+
+ Gets the model number of the P2P peer.
+
+
+ the model number
+
+
+
+
+ a #NMWifiP2PPeer
+
+
+
+
+
+ Gets the name of the P2P peer.
+
+
+ the name
+
+
+
+
+ a #NMWifiP2PPeer
+
+
+
+
+
+ Gets the serial number of the P2P peer.
+
+
+ the serial number
+
+
+
+
+ a #NMWifiP2PPeer
+
+
+
+
+
+ Gets the current signal strength of the P2P peer as a percentage.
+
+
+ the signal strength (0 to 100)
+
+
+
+
+ a #NMWifiP2PPeer
+
+
+
+
+
+ Gets the WFD information elements of the P2P peer.
+
+
+ the #GBytes containing the WFD IEs, or %NULL.
+
+
+
+
+ a #NMWifiP2PPeer
+
+
+
+
+
+ The flags of the P2P peer.
+
+
+
+ The hardware address of the P2P peer.
+
+
+
+ The timestamp (in CLOCK_BOOTTIME seconds) for the last time the
+P2P peer was found. A value of -1 means the peer has never been seen.
+
+
+
+ The manufacturer of the P2P peer.
+
+
+
+ The model of the P2P peer.
+
+
+
+ The hardware address of the P2P peer.
+
+
+
+ The name of the P2P peer.
+
+
+
+ The serial number of the P2P peer.
+
+
+
+ The current signal strength of the P2P peer.
+
+
+
+ The WFD information elements of the P2P peer.
+
+
+
+
+
+
+
+ WiMAX is no longer supported by NetworkManager since 1.2.0.
+
+
+ Validates a given connection against a given WiMAX NSP to ensure that the
+connection may be activated with that NSP. The connection must match the
+@nsp's network name and other attributes.
+ WiMAX is no longer supported by NetworkManager since 1.2.0.
+
+
+ %TRUE if the connection may be activated with this WiMAX NSP,
+%FALSE if it cannot be.
+
+
+
+
+ an #NMWimaxNsp to validate @connection against
+
+
+
+ an #NMConnection to validate against @nsp
+
+
+
+
+
+ Filters a given array of connections for a given #NMWimaxNsp object and
+return connections which may be activated with the NSP. Any returned
+connections will match the @nsp's network name and other attributes.
+ WiMAX is no longer supported by NetworkManager since 1.2.0.
+
+
+ an array of
+#NMConnections that could be activated with the given @nsp. The array should
+be freed with g_ptr_array_unref() when it is no longer required.
+
+
+
+
+
+
+ an #NMWimaxNsp to filter connections for
+
+
+
+ an array of #NMConnections to
+filter
+
+
+
+
+
+
+
+ Gets the name of the wimax NSP
+ WiMAX is no longer supported by NetworkManager since 1.2.0.
+
+
+ the name
+
+
+
+
+ a #NMWimaxNsp
+
+
+
+
+
+ Gets the network type of the wimax NSP.
+ WiMAX is no longer supported by NetworkManager since 1.2.0.
+
+
+ the network type
+
+
+
+
+ a #NMWimaxNsp
+
+
+
+
+
+ Gets the WPA signal quality of the wimax NSP.
+ WiMAX is no longer supported by NetworkManager since 1.2.0.
+
+
+ the signal quality
+
+
+
+
+ a #NMWimaxNsp
+
+
+
+
+
+ The name of the WiMAX NSP.
+ WiMAX is no longer supported by NetworkManager since 1.2.0.
+
+
+
+ The network type of the WiMAX NSP.
+ WiMAX is no longer supported by NetworkManager since 1.2.0.
+
+
+
+ The signal quality of the WiMAX NSP.
+ WiMAX is no longer supported by NetworkManager since 1.2.0.
+
+
+
+
+
+
+
+ WiMAX network type.
+
+ unknown network type
+
+
+ home network
+
+
+ partner network
+
+
+ roaming partner network
+
+
+
+ The settings of one WireGuard peer.
+
+
+
+
+ a new, default, unsealed #NMWireGuardPeer instance.
+
+
+
+
+ Appends @allowed_ip setting to the list. This does not check
+for duplicates and always appends @allowed_ip to the end of the
+list. If @allowed_ip is valid, it will be normalized and a modified
+for might be appended. If @allowed_ip is invalid, it will still be
+appended, but later verification will fail.
+
+It is a bug trying to modify a sealed #NMWireGuardPeer instance.
+
+
+ %TRUE if the value is a valid allowed-ips value, %FALSE otherwise.
+ Depending on @accept_invalid, also invalid values are added.
+
+
+
+
+ the unsealed #NMWireGuardPeer instance
+
+
+
+ the allowed-ip entry to set.
+
+
+
+ if %TRUE, also invalid @allowed_ip value
+ will be appended. Otherwise, the function does nothing
+ in face of invalid values and returns %FALSE.
+
+
+
+
+
+ Removes all allowed-ip entries.
+
+It is a bug trying to modify a sealed #NMWireGuardPeer instance.
+
+
+
+
+
+
+ the unsealed #NMWireGuardPeer instance
+
+
+
+
+
+
+
+ zero of the two instances are equivalent or
+ a non-zero integer otherwise. This defines a total ordering
+ over the peers. Whether a peer is sealed or not, does not
+ affect the comparison.
+
+
+
+
+ the #NMWireGuardPeer to compare.
+
+
+
+ the other #NMWireGuardPeer to compare.
+
+
+
+ #NMSettingCompareFlags to affect the comparison.
+
+
+
+
+
+
+
+ the allowed-ip setting at index @idx.
+ If @idx is out of range, %NULL will be returned.
+
+
+
+
+ the #NMWireGuardPeer instance
+
+
+
+ the index from zero to (allowed-ips-len - 1) to
+ retrieve.
+
+
+
+ %TRUE if the returned value is a valid allowed-ip
+ setting.
+ This parameter is wrongly not marked as (out) argument, it is
+ thus not accessible via introspection. This cannot be fixed without
+ breaking API for introspection users.
+
+
+
+
+
+
+
+ the number of allowed-ips entries.
+
+
+
+
+ the #NMWireGuardPeer instance
+
+
+
+
+
+
+
+ the endpoint or %NULL if none was set.
+
+
+
+
+ the #NMWireGuardPeer instance
+
+
+
+
+
+
+
+ get the persistent-keepalive setting in seconds. Set to zero to disable
+ keep-alive.
+
+
+
+
+ the #NMWireGuardPeer instance
+
+
+
+
+
+
+
+ the preshared key or %NULL if unset.
+
+
+
+
+ the #NMWireGuardPeer instance
+
+
+
+
+
+
+
+ get the secret flags for the preshared-key.
+
+
+
+
+ the #NMWireGuardPeer instance
+
+
+
+
+
+
+
+ the public key or %NULL if unset.
+
+
+
+
+ the #NMWireGuardPeer instance
+
+
+
+
+
+
+
+ whether @self is sealed or not.
+
+
+
+
+ the #NMWireGuardPeer instance
+
+
+
+
+
+
+
+ %TRUE if the peer is valid or fails with an error
+ reason.
+
+
+
+
+ the #NMWireGuardPeer instance
+
+
+
+ if %TRUE, secret properties are validated.
+ Otherwise, they are ignored for this purpose.
+
+
+
+ if %TRUE, non-secret properties are validated.
+ Otherwise, they are ignored for this purpose.
+
+
+
+
+
+
+
+ a clone of @self. This instance
+ is always unsealed.
+
+
+
+
+ the #NMWireGuardPeer instance to copy.
+
+
+
+ if %TRUE, the preshared-key secrets are copied
+ as well. Otherwise, they will be removed.
+
+
+
+
+
+
+
+ returns the input argument @self after incrementing
+ the reference count.
+
+Since 1.42, ref-counting of #NMWireGuardPeer is thread-safe.
+
+
+
+
+ the #NMWireGuardPeer instance
+
+
+
+
+
+ Removes the allowed-ip at the given @idx. This shifts all
+following entries one index down.
+
+It is a bug trying to modify a sealed #NMWireGuardPeer instance.
+
+
+ %TRUE if @idx was valid and the allowed-ip was removed.
+ %FALSE otherwise, and the peer will not be changed.
+
+
+
+
+ the unsealed #NMWireGuardPeer instance
+
+
+
+ the index from zero to (allowed-ips-len - 1) to
+ retrieve. If the index is out of range, %FALSE is returned
+ and nothing is done.
+
+
+
+
+
+ Seal the #NMWireGuardPeer instance. Afterwards, it is a bug
+to call all functions that modify the instance (except ref/unref).
+A sealed instance cannot be unsealed again, but you can create
+an unsealed copy with nm_wireguard_peer_new_clone().
+
+
+
+
+
+
+ the #NMWireGuardPeer instance
+
+
+
+
+
+ Sets or clears the endpoint of @self.
+
+It is a bug trying to modify a sealed #NMWireGuardPeer instance.
+
+
+ %TRUE if the endpoint is %NULL or valid. For an
+ invalid @endpoint argument, %FALSE is returned. Depending
+ on @allow_invalid, the instance will be modified.
+
+
+
+
+ the unsealed #NMWireGuardPeer instance
+
+
+
+ the socket address endpoint to set or %NULL.
+
+
+
+ if %TRUE, also invalid values are set.
+ If %FALSE, the function does nothing for invalid @endpoint
+ arguments.
+
+
+
+
+
+ It is a bug trying to modify a sealed #NMWireGuardPeer instance.
+
+
+
+
+
+
+ the unsealed #NMWireGuardPeer instance
+
+
+
+ the keep-alive value to set.
+
+
+
+
+
+ Reset the preshared key. Note that if the preshared key is valid, it
+will be normalized (which may or may not modify the set value).
+
+Note that the preshared-key is a secret and consequently has corresponding
+preshared-key-flags property. This is so that secrets can be optional
+and requested on demand from a secret-agent. Also, an invalid preshared-key
+may optionally cause nm_wireguard_peer_is_valid() to fail or it may
+be accepted.
+
+It is a bug trying to modify a sealed #NMWireGuardPeer instance.
+
+
+ %TRUE if the preshared-key is valid, otherwise %FALSE.
+ %NULL is considered a valid value.
+ If the key is invalid, it depends on @accept_invalid whether the
+ previous value was reset.
+
+
+
+
+ the unsealed #NMWireGuardPeer instance
+
+
+
+ the new preshared
+ key or %NULL to clear the preshared key.
+
+
+
+ whether to allow setting the key to an invalid
+ value. If %FALSE, @self is unchanged if the key is invalid
+ and if %FALSE is returned.
+
+
+
+
+
+ It is a bug trying to modify a sealed #NMWireGuardPeer instance.
+
+
+
+
+
+
+ the unsealed #NMWireGuardPeer instance
+
+
+
+ the secret flags to set.
+
+
+
+
+
+ Reset the public key. Note that if the public key is valid, it
+will be normalized (which may or may not modify the set value).
+
+It is a bug trying to modify a sealed #NMWireGuardPeer instance.
+
+
+ %TRUE if the key was valid or %NULL. Returns
+ %FALSE for invalid keys. Depending on @accept_invalid
+ will an invalid key be set or not.
+
+
+
+
+ the unsealed #NMWireGuardPeer instance
+
+
+
+ the new public
+ key or %NULL to clear the public key.
+
+
+
+ if %TRUE and @public_key is not %NULL and
+ invalid, then do not modify the instance.
+
+
+
+
+
+ Drop a reference to @self. If the last reference is dropped,
+the instance is freed and all associate data released.
+
+Since 1.42, ref-counting of #NMWireGuardPeer is thread-safe.
+
+
+
+
+
+
+ the #NMWireGuardPeer instance
+
+
+
+
+
+
+
+
+
+
+
+ Parses the string representation of the queueing
+discipline to a %NMBridgeVlan instance.
+
+
+ the %NMBridgeVlan or %NULL
+
+
+
+
+ the string representation of a bridge VLAN
+
+
+
+
+
+ Registers an error quark for #NMClient if necessary.
+
+ the error quark used for #NMClient errors.
+
+
+
+
+
+
+ a new #NMConnection imported from @path, or %NULL
+on error or if the file with @filename was not recognized as a WireGuard config
+
+
+
+
+ name of the file to attempt to read into a new #NMConnection
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Checks whether @optname is a valid option name for a channels setting.
+
+
+ %TRUE, if @optname is valid
+
+
+
+
+ the option name to check
+
+
+
+
+
+ Checks whether @optname is a valid option name for a coalesce setting.
+
+
+ %TRUE, if @optname is valid
+
+
+
+
+ the option name to check
+
+
+
+
+
+ Checks whether @optname is a valid option name for an eee setting.
+
+
+ %TRUE, if @optname is valid
+
+
+
+
+ the option name to check
+
+
+
+
+
+ Checks whether @optname is a valid option name for an offload feature.
+
+
+ %TRUE, if @optname is valid
+
+Note that nm_ethtool_optname_is_feature() was first added to the libnm header files
+in 1.14.0 but forgot to actually add to the library. This happened belatedly in 1.20.0 and
+the stable versions 1.18.2, 1.16.4 and 1.14.8 (with linker version "libnm_1_14_8").
+
+
+
+
+ the option name to check
+
+
+
+
+
+ Checks whether @optname is a valid option name for a pause setting.
+
+
+ %TRUE, if @optname is valid
+
+
+
+
+ the option name to check
+
+
+
+
+
+ Checks whether @optname is a valid option name for a ring setting.
+
+
+ %TRUE, if @optname is valid
+
+
+
+
+ the option name to check
+
+
+
+
+
+ Validates a route attribute, i.e. checks that the attribute is a known one
+and the value is of the correct type and well-formed.
+
+
+ %TRUE if the attribute is valid, %FALSE otherwise
+
+
+
+
+ the attribute name
+
+
+
+ the attribute value
+
+
+
+ IP address family of the route
+
+
+
+ on return, whether the attribute name is a known one
+
+
+
+
+
+
+
+ the specifiers for route attributes
+
+
+
+
+
+
+ the new #NMIPRoutingRule or %NULL on error.
+
+
+
+
+ the string representation to convert to an #NMIPRoutingRule
+
+
+
+ #NMIPRoutingRuleAsStringFlags for controlling the
+ string conversion.
+
+
+
+ extra arguments for controlling the string
+ conversion. Currently, not extra arguments are supported.
+
+
+
+
+
+
+
+
+ Tries to create a NMConnection from a keyfile. The resulting keyfile is
+not normalized and might not even verify.
+
+
+ on success, returns the created connection.
+
+
+
+
+ the keyfile from which to create the connection
+
+
+
+ when reading certificates from files with relative name,
+ the relative path is made absolute using @base_dir. This must
+ be an absolute path.
+
+
+
+ the #NMKeyfileHandlerFlags.
+
+
+
+ read handler
+
+
+
+ user data for read handler
+
+
+
+
+
+ @connection should verify as a valid profile according to
+nm_connection_verify(). If it does not verify, the keyfile may
+be incomplete and the parser may not be able to fully recreate
+the original profile.
+
+
+ a new #GKeyFile or %NULL on error.
+
+
+
+
+ the #NMConnection to persist to keyfile.
+
+
+
+ the #NMKeyfileHandlerFlags.
+
+
+
+ optional handler for events and
+ to override the default behavior.
+
+
+
+ argument for @handler.
+
+
+
+
+
+
+
+
+
+
+ Extra connection functionality.
+
+
+ An #NMConnection describes all the settings and configuration values that
+are necessary to configure network devices for operation on a specific
+network. Connections are the fundamental operating object for
+NetworkManager; no device is connected without a #NMConnection, or
+disconnected without having been connected with a #NMConnection.
+
+Each #NMConnection contains a list of #NMSetting objects usually referenced
+by name (using nm_connection_get_setting_by_name()) or by type (with
+nm_connection_get_setting()). The settings describe the actual parameters
+with which the network devices are configured, including device-specific
+parameters (MTU, SSID, APN, channel, rate, etc) and IP-level parameters
+(addresses, routes, addressing methods, etc).
+
+
+ A #NMRemoteConnection represents a connection that is exported via
+NetworkManager D-Bus interface.
+
+
+ Each #NMSetting contains properties that describe configuration that applies
+to a specific network layer (like IPv4 or IPv6 configuration) or device type
+(like Ethernet, or Wi-Fi). A collection of individual settings together
+make up an #NMConnection. Each property is strongly typed and usually has
+a number of allowed values. See each #NMSetting subclass for a description
+of properties and allowed values.
+
+
+ The #NMSetting6Lowpan object is a #NMSetting subclass that describes properties
+necessary for connection to 6LoWPAN interfaces.
+
+
+ The #NMSetting8021x object is a #NMSetting subclass that describes
+properties necessary for connection to 802.1x-authenticated networks, such as
+WPA and WPA2 Enterprise Wi-Fi networks and wired 802.1x networks. 802.1x
+connections typically use certificates and/or EAP authentication methods to
+securely verify, identify, and authenticate the client to the network itself,
+instead of simply relying on a widely shared static key.
+
+It's a good idea to read up on wpa_supplicant configuration before using this
+setting extensively, since most of the options here correspond closely with
+the relevant wpa_supplicant configuration options.
+
+Furthermore, to get a good idea of 802.1x, EAP, TLS, TTLS, etc and their
+applications to Wi-Fi and wired networks, you'll want to get copies of the
+following books.
+
+ 802.11 Wireless Networks: The Definitive Guide, Second Edition
+ Author: Matthew Gast
+ ISBN: 978-0596100520
+
+ Cisco Wireless LAN Security
+ Authors: Krishna Sankar, Sri Sundaralingam, Darrin Miller, and Andrew Balinsky
+ ISBN: 978-1587051548
+
+
+ The #NMSettingAdsl object is a #NMSetting subclass that describes
+properties of ADSL connections.
+
+
+ The #NMSettingBluetooth object is a #NMSetting subclass that describes
+properties necessary for connection to devices that provide network
+connections via the Bluetooth Dial-Up Networking (DUN) and Network Access
+Point (NAP) profiles.
+
+
+ The #NMSettingBond object is a #NMSetting subclass that describes properties
+necessary for bond connections.
+
+
+ The #NMSettingBondPort object is a #NMSetting subclass that describes
+optional properties that apply to bond ports.
+
+
+ The #NMSettingBridge object is a #NMSetting subclass that describes properties
+necessary for bridging connections.
+
+
+ The #NMSettingBridgePort object is a #NMSetting subclass that describes
+optional properties that apply to bridge ports.
+
+
+ The #NMSettingCdma object is a #NMSetting subclass that describes
+properties that allow connections to IS-95-based mobile broadband
+networks, including those using CDMA2000/EVDO technology.
+
+
+ The #NMSettingConnection object is a #NMSetting subclass that describes
+properties that apply to all #NMConnection objects, regardless of what type
+of network connection they describe. Each #NMConnection object must contain
+a #NMSettingConnection setting.
+
+
+ The #NMSettingDcb object is a #NMSetting subclass that describes properties
+for enabling and using Data Center Bridging (DCB) on Ethernet networks.
+DCB is a set of protocols (including 802.1Qbb, 802.1Qaz, 802.1Qau, and
+802.1AB) to eliminate packet loss in Ethernet networks and support the use
+of storage technologies like Fibre Channel over Ethernet (FCoE) and iSCSI.
+
+
+ The #NMSettingDummy object is a #NMSetting subclass that describes properties
+necessary for connection to dummy devices
+
+
+ The #NMSettingEthtool object is a #NMSetting subclass that describes properties
+to control network driver and hardware settings.
+
+
+ The #NMSettingGeneric object is a #NMSetting subclass that describes
+optional properties that apply to "generic" devices (ie, devices that
+NetworkManager does not specifically recognize).
+
+There are currently no properties on this object; it exists only to be
+the "connection type" setting on #NMConnections for generic devices.
+
+
+ The #NMSettingGsm object is a #NMSetting subclass that describes
+properties that allow connections to 3GPP-based mobile broadband
+networks, including those using GPRS/EDGE and UMTS/HSPA technology.
+
+
+ The #NMSettingHsr object is a #NMSetting subclass that describes properties
+necessary for HSR/PRP connections.
+
+
+ The #NMSettingInfiniband object is a #NMSetting subclass that describes properties
+necessary for connection to IP-over-InfiniBand networks.
+
+
+ #NMSettingIPConfig is the abstract base class of
+#NMSettingIP4Config and #NMSettingIP6Config, providing properties
+related to IP addressing, routing, and Domain Name Service.
+
+
+ The #NMSettingIP4Config object is a #NMSetting subclass that describes
+properties related to IPv4 addressing, routing, and Domain Name Service.
+
+#NMSettingIP4Config has few properties or methods of its own; it inherits
+almost everything from #NMSettingIPConfig.
+
+NetworkManager supports 5 values for the #NMSettingIPConfig:method property
+for IPv4. If "auto" is specified then the appropriate automatic method
+(DHCP, PPP, etc) is used for the interface and most other properties can be
+left unset. If "link-local" is specified, then a link-local address in the
+169.254/16 range will be assigned to the interface. If "manual" is
+specified, static IP addressing is used and at least one IP address must be
+given in the "addresses" property. If "shared" is specified (indicating that
+this connection will provide network access to other computers) then the
+interface is assigned an address in the 10.42.x.1/24 range and a DHCP and
+forwarding DNS server are started, and the interface is NAT-ed to the current
+default network connection. "disabled" means IPv4 will not be used on this
+connection.
+
+
+ The #NMSettingIP6Config object is a #NMSetting subclass that describes
+properties related to IPv6 addressing, routing, and Domain Name Service
+
+#NMSettingIP6Config has few properties or methods of its own; it inherits
+almost everything from #NMSettingIPConfig.
+
+NetworkManager supports 7 values for the #NMSettingIPConfig:method property
+for IPv6. If "auto" is specified then the appropriate automatic method (PPP,
+router advertisement, etc) is used for the device and most other properties
+can be left unset. To force the use of DHCP only, specify "dhcp"; this
+method is only valid for Ethernet- based hardware. If "link-local" is
+specified, then an IPv6 link-local address will be assigned to the interface.
+If "manual" is specified, static IP addressing is used and at least one IP
+address must be given in the "addresses" property. If "ignore" is specified,
+IPv6 configuration is not done. Note: the "shared" method is not yet
+supported. If "disabled" is specified, IPv6 is disabled completely for the
+interface.
+
+
+ The #NMSettingLoopback object is a #NMSetting subclass that describes properties
+necessary for connection to loopback devices
+
+
+ The #NMSettingMacsec object is a #NMSetting subclass that describes properties
+necessary for connection to MACsec (IEEE 802.1AE) interfaces.
+
+
+ The #NMSettingMacvlan object is a #NMSetting subclass that describes properties
+necessary for connection to macvlan interfaces.
+
+
+ The #NMSettingOlpcMesh object is a #NMSetting subclass that describes properties
+necessary for connection to OLPC-Mesh devices.
+
+
+ The #NMSettingOvsBridge object is a #NMSetting subclass that describes properties
+necessary for Open vSwitch bridges.
+
+
+ The #NMSettingOvsDpdk object is a #NMSetting subclass that describes properties
+necessary for Open vSwitch interfaces of type "dpdk".
+
+
+ The #NMSettingOvsExternalIDs object is a #NMSetting subclass that allow to
+configure external ids for OVS.
+
+
+ The #NMSettingOvsInterface object is a #NMSetting subclass that describes properties
+necessary for Open vSwitch interfaces.
+
+
+ The #NMSettingOvsOtherConfig object is a #NMSetting subclass that allows to
+configure other_config settings for OVS. See also "other_config" in the
+"ovs-vswitchd.conf.db" manual for the keys that OVS supports.
+
+
+ The #NMSettingOvsPatch object is a #NMSetting subclass that describes properties
+necessary for Open vSwitch interfaces of type "patch".
+
+
+ The #NMSettingOvsPort object is a #NMSetting subclass that describes properties
+necessary for Open vSwitch ports.
+
+
+ The #NMSettingPpp object is a #NMSetting subclass that describes properties
+necessary for connection to networks that require PPP transport, like PPPoE
+cable and DSL modems and some mobile broadband devices.
+
+
+ The #NMSettingPppoe object is a #NMSetting subclass that describes
+properties necessary for connection to networks that require PPPoE connections
+to provide IP transport, for example cable or DSL modems.
+
+
+ The #NMSettingProxy object is a #NMSetting subclass that describes properties
+related to Proxy settings like PAC URL, PAC script etc.
+
+NetworkManager support 2 values for the #NMSettingProxy:method property for
+proxy. If "auto" is specified then WPAD takes place and the appropriate details
+are pushed into PacRunner or user can override this URL with a new PAC URL or a
+PAC script. If "none" is selected then no proxy configuration is given to PacRunner
+to fulfill client queries.
+
+
+ The #NMSettingSerial object is a #NMSetting subclass that describes
+properties necessary for connections that may use serial communications,
+such as mobile broadband or analog telephone connections.
+
+
+ The #NMSettingTeam object is a #NMSetting subclass that describes properties
+necessary for team connections.
+
+
+ The #NMSettingTeamPort object is a #NMSetting subclass that describes
+optional properties that apply to team ports.
+
+
+ The #NMSettingTun object is a #NMSetting subclass that describes properties
+necessary for connection to TUN/TAP interfaces.
+
+
+ The #NMSettingUser object is a #NMSetting subclass that allow to attach
+arbitrary user data to #NMConnection objects.
+
+
+ The #NMSettingVeth object is a #NMSetting subclass that describes properties
+necessary for connection to veth interfaces.
+
+
+ The #NMSettingVlan object is a #NMSetting subclass that describes properties
+necessary for connection to VLAN interfaces.
+
+
+ The #NMSettingVpn object is a #NMSetting subclass that describes properties
+necessary for connection to Virtual Private Networks. NetworkManager uses
+a plugin architecture to allow easier use of new VPN types, and this
+setting abstracts the configuration for those plugins. Since the configuration
+options are only known to the VPN plugins themselves, the VPN configuration
+options are stored as key/value pairs of strings rather than GObject
+properties.
+
+
+ The #NMSettingVrf object is a #NMSetting subclass that describes properties
+necessary for connection to vrf devices
+
+
+ The #NMSettingVxlan object is a #NMSetting subclass that describes properties
+necessary for connection to VXLAN interfaces.
+
+
+ The #NMSettingWifiP2P object is a #NMSetting subclass that describes properties
+necessary for connection to 802.11 Wi-Fi P2P networks (aka Wi-Fi Direct).
+
+
+ The #NMSettingWimax object is a #NMSetting subclass that describes properties
+necessary for connection to 802.16e Mobile WiMAX networks.
+
+NetworkManager no longer supports WiMAX; while this API remains available for
+backward-compatibility reasons, it serves no real purpose, since WiMAX
+connections cannot be activated.
+
+
+ The #NMSettingWired object is a #NMSetting subclass that describes properties
+necessary for connection to Ethernet networks.
+
+
+ The #NMSettingWireGuard object is a #NMSetting subclass that contains settings
+for configuring WireGuard.
+
+
+ The #NMSettingWireless object is a #NMSetting subclass that describes properties
+necessary for connection to 802.11 Wi-Fi networks.
+
+
+ The #NMSettingWirelessSecurity object is a #NMSetting subclass that describes
+properties necessary for connection to encrypted Wi-Fi networks.
+
+It's a good idea to read up on wpa_supplicant configuration before using this
+setting extensively, since most of the options here correspond closely with
+the relevant wpa_supplicant configuration options. To get a better overview
+of how Wi-Fi security works, you may want to get copies of the following books.
+
+ 802.11 Wireless Networks: The Definitive Guide, Second Edition
+ Author: Matthew Gast
+ ISBN: 978-0596100520
+
+ Cisco Wireless LAN Security
+ Authors: Krishna Sankar, Sri Sundaralingam, Darrin Miller, and Andrew Balinsky
+ ISBN: 978-1587051548
+
+
+ The #NMSettingWpan object is a #NMSetting subclass that describes properties
+necessary for configuring IEEE 802.15.4 (WPAN) MAC layer devices.
+
+
+ An #NMSimpleConnection does not directly represent a D-Bus-exported connection,
+but might be used in the process of creating a new one.
+
+
+ A collection of utility functions for working with SSIDs, IP addresses, Wi-Fi
+access points and devices, among other things.
+
+
+ Parses the string representation of the range to create a %NMRange
+instance.
+
+
+ the %NMRange or %NULL
+
+
+
+
+ the string representation of a range
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Validates a VF attribute, i.e. checks that the attribute is a known one,
+the value is of the correct type and well-formed.
+
+
+ %TRUE if the attribute is valid, %FALSE otherwise
+
+
+
+
+ the attribute name
+
+
+
+ the attribute value
+
+
+
+ on return, whether the attribute name is a known one
+
+
+
+
+
+ Given a set of device capabilities, and a desired security type to check
+against, determines whether the combination of device capabilities and
+desired security type are valid for AP/Hotspot connections.
+
+
+ %TRUE if the device capabilities are compatible with the desired
+@type, %FALSE if they are not.
+
+
+
+
+ the security type to check device capabilities against,
+e.g. #NMU_SEC_STATIC_WEP
+
+
+
+ bitfield of the capabilities of the specific Wi-Fi device, e.g.
+#NM_WIFI_DEVICE_CAP_CIPHER_WEP40
+
+
+
+
+
+
+
+ %TRUE if the input key is a valid base64 encoded key
+ with @required_key_len bytes.
+
+
+
+
+ the (possibly invalid) base64 encode key.
+
+
+
+ the expected (binary) length of the key after
+ decoding. If the length does not match, the validation fails.
+
+
+
+ an optional output buffer for the binary
+ key. If given, it will be filled with exactly @required_key_len
+ bytes.
+
+
+
+
+
+ Converts the byte array @src into a hexadecimal string. If @final_len is
+greater than -1, the returned string is terminated at that index
+(returned_string[final_len] == '\0'),
+
+
+ the textual form of @bytes
+
+
+
+
+ an array of bytes
+
+
+
+
+
+ the length of the @src array
+
+
+
+ an index where to cut off the returned string, or -1
+
+
+
+
+
+ Convert bonding mode from integer value to descriptive name.
+See https://www.kernel.org/doc/Documentation/networking/bonding.txt for
+available modes.
+
+
+ bonding mode string, or NULL on error
+
+
+
+
+ bonding mode as a numeric value
+
+
+
+
+
+ Convert bonding mode from string representation to numeric value.
+See https://www.kernel.org/doc/Documentation/networking/bonding.txt for
+available modes.
+The @mode string can be either a descriptive name or a number (as string).
+
+
+ numeric bond mode, or -1 on error
+
+
+
+
+ bonding mode as string
+
+
+
+
+
+ Determines if a connection of type @virtual_type can (in the
+general case) work with connections of type @other_type.
+
+If @virtual_type is %NM_TYPE_SETTING_VLAN, then this checks if
+@other_type is a valid type for the parent of a VLAN.
+
+If @virtual_type is a "master" type (eg, %NM_TYPE_SETTING_BRIDGE),
+then this checks if @other_type is a valid type for a slave of that
+master.
+
+Note that even if this returns %TRUE it is not guaranteed that
+<emphasis>every</emphasis> connection of type @other_type is
+compatible with @virtual_type; it may depend on the exact
+configuration of the two connections, or on the capabilities of an
+underlying device driver.
+
+
+ %TRUE or %FALSE
+
+
+
+
+ a virtual connection type
+
+
+
+ a connection type to test against @virtual_type
+
+
+
+
+
+ This ensures that all NMSetting GTypes are created. For example,
+after this call, g_type_from_name("NMSettingConnection") will work.
+
+This cannot fail and does nothing if the type already exists.
+
+
+
+
+
+
+ Converts a string to the matching enum value.
+
+If the enum is a %G_TYPE_FLAGS the function returns the logical OR of values
+matching the comma-separated tokens in the string; if an unknown token is found
+the function returns %FALSE and stores a pointer to a newly allocated string
+containing the unrecognized token in @err_token.
+
+
+ %TRUE if the conversion was successful, %FALSE otherwise
+
+
+
+
+ the %GType of the enum
+
+
+
+ the input string
+
+
+
+ the output value
+
+
+
+ location to store
+ the first unrecognized token
+
+
+
+
+
+ Returns the list of possible values for a given enum.
+
+
+ a NULL-terminated dynamically-allocated array of static strings
+or %NULL on error
+
+
+
+
+
+
+ the %GType of the enum
+
+
+
+ the first element to be returned
+
+
+
+ the last element to be returned
+
+
+
+
+
+ Converts an enum value to its string representation. If the enum is a
+%G_TYPE_FLAGS the function returns a comma-separated list of matching values.
+If the value has no corresponding string representation, it is converted
+to a number. For enums it is converted to a decimal number, for flags
+to an (unsigned) hex number.
+
+
+ a newly allocated string or %NULL
+
+
+
+
+ the %GType of the enum
+
+
+
+ the value to be translated
+
+
+
+
+
+ This function does a quick printable character conversion of the SSID, simply
+replacing embedded NULLs and non-printable characters with the hexadecimal
+representation of that character. Intended for debugging only, should not
+be used for display of SSIDs.
+
+Warning: this function uses a static buffer. It is not thread-safe. Don't
+ use this function.
+ use nm_utils_ssid_to_utf8() or nm_utils_bin2hexstr().
+
+
+ pointer to the escaped SSID, which uses an internal static buffer
+and will be overwritten by subsequent calls to this function
+
+
+
+
+ pointer to a buffer containing the SSID data
+
+
+
+
+
+ length of the SSID data in @ssid
+
+
+
+
+
+ Tests if @filename has a valid extension for an X.509 certificate file
+(".cer", ".crt", ".der", or ".pem"), and contains a certificate in a format
+recognized by NetworkManager.
+
+
+ %TRUE if the file is a certificate, %FALSE if it is not
+
+
+
+
+ name of the file to test
+
+
+
+
+
+ Tests if @filename is a PKCS#<!-- -->12 file.
+
+
+ %TRUE if the file is PKCS#<!-- -->12, %FALSE if it is not
+
+
+
+
+ name of the file to test
+
+
+
+
+
+ Tests if @filename has a valid extension for an X.509 private key file
+(".der", ".key", ".pem", or ".p12"), and contains a private key in a format
+recognized by NetworkManager.
+
+
+ %TRUE if the file is a private key, %FALSE if it is not
+
+
+
+
+ name of the file to test
+
+
+
+ on return, whether the file is encrypted
+
+
+
+
+
+ Searches for a @progname file in a list of search @paths.
+
+
+ the full path to the helper, if found, or %NULL if not found.
+ The returned string is not owned by the caller, but later
+ invocations of the function might overwrite it.
+
+
+
+
+ the helper program name, like "iptables"
+ Must be a non-empty string, without path separator (/).
+
+
+
+ a custom path to try first before searching.
+ It is silently ignored if it is empty or not an absolute path.
+
+
+
+ a %NULL terminated list of search paths.
+ Can be empty or %NULL, in which case only @try_first is checked.
+
+
+
+ the flags passed to g_file_test() when searching
+ for @progname. Set it to 0 to skip the g_file_test().
+
+
+
+ if given, pass the file name to this function
+ for additional checks. This check is performed after the check for
+ @file_test_flags. You cannot omit both @file_test_flags and @predicate.
+
+
+
+ user data for @predicate function.
+
+
+
+
+
+ Format attributes to a string.
+
+
+ the string representing attributes, or %NULL
+ in case there are no attributes
+
+
+
+
+ a #GHashTable mapping attribute names to #GVariant values
+
+
+
+
+
+
+ the attribute separator character
+
+
+
+ character separating key and values
+
+
+
+
+
+ Gets current time in milliseconds of CLOCK_BOOTTIME.
+
+
+ time in milliseconds
+
+
+
+
+ Converts a hexadecimal string @hex into an array of bytes. The optional
+separator ':' may be used between single or pairs of hexadecimal characters,
+eg "00:11" or "0:1". Any "0x" at the beginning of @hex is ignored. @hex
+may not start or end with ':'.
+
+
+ the converted bytes, or %NULL on error
+
+
+
+
+ a string of hexadecimal characters with optional ':' separators
+
+
+
+
+
+ Parses @asc and converts it to binary form in a #GByteArray. See
+nm_utils_hwaddr_aton() if you don't want a #GByteArray.
+
+
+ a new #GByteArray, or %NULL if @asc couldn't
+be parsed
+
+
+
+
+
+
+ the ASCII representation of a hardware address
+
+
+
+ the expected length in bytes of the result
+
+
+
+
+
+ Parses @asc and converts it to binary form in @buffer.
+Bytes in @asc can be separated by colons (:), or hyphens (-), but not mixed.
+
+
+ @buffer, or %NULL if @asc couldn't be parsed
+ or would be shorter or longer than @length.
+
+
+
+
+ the ASCII representation of a hardware address
+
+
+
+ buffer to store the result into
+
+
+
+
+
+ the expected length in bytes of the result and
+the size of the buffer in bytes.
+
+
+
+
+
+ Parses @asc to see if it is a valid hardware address of the given
+length, and if so, returns it in canonical form (uppercase, with
+leading 0s as needed, and with colons rather than hyphens).
+
+
+ the canonicalized address if @asc appears to
+ be a valid hardware address of the indicated length, %NULL if not.
+
+
+
+
+ the ASCII representation of a hardware address
+
+
+
+ the length of address that @asc is expected to convert to
+ (or -1 to accept any length up to %NM_UTILS_HWADDR_LEN_MAX)
+
+
+
+
+
+ Returns the length in octets of a hardware address of type @type.
+
+Before 1.28, it was an error to call this function with any value other than
+<literal>ARPHRD_ETHER</literal> or <literal>ARPHRD_INFINIBAND</literal>.
+
+
+ the length or zero if the type is unrecognized.
+
+
+
+
+ the type of address; either <literal>ARPHRD_ETHER</literal> or
+<literal>ARPHRD_INFINIBAND</literal>
+
+
+
+
+
+ Generalized hardware address comparison function. Tests if @hwaddr1 and
+@hwaddr2 "equal" (or more precisely, "equivalent"), with several advantages
+over a simple memcmp():
+
+ 1. If @hwaddr1_len or @hwaddr2_len is -1, then the corresponding address is
+ assumed to be ASCII rather than binary, and will be converted to binary
+ before being compared.
+
+ 2. If @hwaddr1 or @hwaddr2 is %NULL, it is treated instead as though it was
+ a zero-filled buffer @hwaddr1_len or @hwaddr2_len bytes long.
+
+ 3. If @hwaddr1 and @hwaddr2 are InfiniBand hardware addresses (that is, if
+ they are <literal>INFINIBAND_ALEN</literal> bytes long in binary form)
+ then only the last 8 bytes are compared, since those are the only bytes
+ that actually identify the hardware. (The other 12 bytes will change
+ depending on the configuration of the InfiniBand fabric that the device
+ is connected to.)
+
+If a passed-in ASCII hardware address cannot be parsed, or would parse to an
+address larger than %NM_UTILS_HWADDR_LEN_MAX, then it will silently fail to
+match. (This means that externally-provided address strings do not need to be
+sanity-checked before comparing them against known good addresses; they are
+guaranteed to not match if they are invalid.)
+
+
+ %TRUE if @hwaddr1 and @hwaddr2 are equivalent, %FALSE if they are
+ different (or either of them is invalid).
+
+
+
+
+ pointer to a binary or ASCII hardware address, or %NULL
+
+
+
+ size of @hwaddr1, or -1 if @hwaddr1 is ASCII
+
+
+
+ pointer to a binary or ASCII hardware address, or %NULL
+
+
+
+ size of @hwaddr2, or -1 if @hwaddr2 is ASCII
+
+
+
+
+
+ Converts @addr to textual form.
+
+
+ the textual form of @addr
+
+
+
+
+ a binary hardware address
+
+
+
+
+
+ the length of @addr
+
+
+
+
+
+ Parses @asc to see if it is a valid hardware address of the given
+length.
+
+
+ %TRUE if @asc appears to be a valid hardware address
+ of the indicated length, %FALSE if not.
+
+
+
+
+ the ASCII representation of a hardware address
+
+
+
+ the length of address that @asc is expected to convert to
+ (or -1 to accept any length up to %NM_UTILS_HWADDR_LEN_MAX)
+
+
+
+
+
+ Validate the network interface name.
+ Use nm_utils_is_valid_iface_name() instead, with better error reporting.
+
+
+ %TRUE if interface name is valid, otherwise %FALSE is returned.
+
+Before 1.20, this function did not accept %NULL as @name argument. If you
+ want to run against older versions of libnm, don't pass %NULL.
+
+
+
+
+ Name of interface
+
+
+
+
+
+ Wrapper for inet_ntop.
+
+
+ the input buffer @dst, or a pointer to an
+ internal, static buffer. This function cannot fail.
+
+
+
+
+ the address that should be converted to string.
+
+
+
+ the destination buffer, it must contain at least
+ <literal>INET_ADDRSTRLEN</literal> or %NM_INET_ADDRSTRLEN
+ characters. If set to %NULL, it will return a pointer to an internal, static
+ buffer (shared with nm_utils_inet6_ntop()). Beware, that the internal
+ buffer will be overwritten with ever new call of nm_utils_inet4_ntop() or
+ nm_utils_inet6_ntop() that does not provide its own @dst buffer. Since
+ 1.28, the internal buffer is thread local and thus thread safe. Before
+ it was not thread safe. When in doubt, pass your own
+ @dst buffer to avoid these issues.
+
+
+
+
+
+ Wrapper for inet_ntop.
+
+
+ the input buffer @dst, or a pointer to an
+ internal, static buffer. %NULL is not allowed as @in6addr,
+ otherwise, this function cannot fail.
+
+
+
+
+ the address that should be converted to string.
+
+
+
+ the destination buffer, it must contain at least
+ <literal>INET6_ADDRSTRLEN</literal> or %NM_INET_ADDRSTRLEN
+ characters. If set to %NULL, it will return a pointer to an internal, static
+ buffer (shared with nm_utils_inet4_ntop()). Beware, that the internal
+ buffer will be overwritten with ever new call of nm_utils_inet4_ntop() or
+ nm_utils_inet6_ntop() that does not provide its own @dst buffer. Since
+ 1.28, the internal buffer is thread local and thus thread safe. Before
+ it was not thread safe. When in doubt, pass your own
+ @dst buffer to avoid these issues.
+
+
+
+
+
+ Utility function to convert a #GVariant of type 'aau' representing a list of
+NetworkManager IPv4 addresses (which are tuples of address, prefix, and
+gateway) into a #GPtrArray of #NMIPAddress objects. The "gateway" field of
+the first address (if set) will be returned in @out_gateway; the "gateway" fields
+of the other addresses are ignored. Note that invalid addresses are discarded
+but the valid addresses are still returned.
+
+Since 1.46, an empty list is returned if the variant type is not valid
+(before it was checked as assertion)
+
+
+ a newly allocated
+ #GPtrArray of #NMIPAddress objects
+
+
+
+
+
+
+ a #GVariant of type 'aau'
+
+
+
+ on return, will
+ contain the IP gateway
+
+
+
+
+
+ Utility function to convert a #GPtrArray of #NMIPAddress objects representing
+IPv4 addresses into a #GVariant of type 'aau' representing an array of
+NetworkManager IPv4 addresses (which are tuples of address, prefix, and
+gateway). The "gateway" field of the first address will get the value of
+@gateway (if non-%NULL). In all of the other addresses, that field will be 0.
+
+
+ a new floating #GVariant representing @addresses.
+
+
+
+
+ an array of #NMIPAddress objects
+
+
+
+
+
+ the gateway IP address
+
+
+
+
+
+ Utility function to convert a #GVariant of type 'au' representing a list of
+IPv4 addresses into an array of IP address strings.
+
+Since 1.46, an empty list is returned if the variant type is not valid
+(before it was checked as assertion)
+
+
+ a %NULL-terminated array of IP address strings.
+
+
+
+
+ a #GVariant of type 'au'
+
+
+
+
+
+ Utility function to convert an array of IP address strings int a #GVariant of
+type 'au' representing an array of IPv4 addresses.
+
+
+ a new floating #GVariant representing @dns.
+
+
+
+
+ an array of IP address strings
+
+
+
+
+
+ When the Internet was originally set up, various ranges of IP addresses were
+segmented into three network classes: A, B, and C. This function will return
+a prefix that is associated with the IP address specified defining where it
+falls in the predefined classes.
+
+
+ the default class prefix for the given IP
+
+
+
+
+ an IPv4 address (in network byte order)
+
+
+
+
+
+
+
+ the CIDR prefix represented by the netmask
+
+
+
+
+ an IPv4 netmask in network byte order.
+ Usually the netmask has all leading bits up to the prefix
+ set so that the netmask is identical to having the first
+ prefix bits of the address set.
+ If that is not the case and there are "holes" in the
+ mask, the prefix is determined based on the lowest bit
+ set.
+
+
+
+
+
+
+
+ the netmask represented by the prefix, in network byte order
+
+
+
+
+ a CIDR prefix, must be not larger than 32.
+
+
+
+
+
+ Utility function to convert a #GVariant of type 'aau' representing an array
+of NetworkManager IPv4 routes (which are tuples of route, prefix, next hop,
+and metric) into a #GPtrArray of #NMIPRoute objects. Note that invalid routes
+are discarded but the valid routes are still returned.
+
+Since 1.46, an empty list is returned if the variant type is not valid
+(before it was checked as assertion)
+
+
+ a newly allocated
+ #GPtrArray of #NMIPRoute objects
+
+
+
+
+
+
+ #GVariant of type 'aau'
+
+
+
+
+
+ Utility function to convert a #GPtrArray of #NMIPRoute objects representing
+IPv4 routes into a #GVariant of type 'aau' representing an array of
+NetworkManager IPv4 routes (which are tuples of route, prefix, next hop, and
+metric).
+
+
+ a new floating #GVariant representing @routes.
+
+
+
+
+ an array of #NMIP4Route objects
+
+
+
+
+
+
+
+ Utility function to convert a #GVariant of type 'a(ayuay)' representing a
+list of NetworkManager IPv6 addresses (which are tuples of address, prefix,
+and gateway) into a #GPtrArray of #NMIPAddress objects. The "gateway" field
+of the first address (if set) will be returned in @out_gateway; the "gateway"
+fields of the other addresses are ignored. Note that invalid addresses are
+discarded but the valid addresses are still returned.
+
+Since 1.46, an empty list is returned if the variant type is not valid
+(before it was checked as assertion)
+
+
+ a newly allocated
+ #GPtrArray of #NMIPAddress objects
+
+
+
+
+
+
+ a #GVariant of type 'a(ayuay)'
+
+
+
+ on return, will
+ contain the IP gateway
+
+
+
+
+
+ Utility function to convert a #GPtrArray of #NMIPAddress objects representing
+IPv6 addresses into a #GVariant of type 'a(ayuay)' representing an array of
+NetworkManager IPv6 addresses (which are tuples of address, prefix, and
+gateway). The "gateway" field of the first address will get the value of
+@gateway (if non-%NULL). In all of the other addresses, that field will be
+all 0s.
+
+
+ a new floating #GVariant representing @addresses.
+
+
+
+
+ an array of #NMIPAddress objects
+
+
+
+
+
+ the gateway IP address
+
+
+
+
+
+ Utility function to convert a #GVariant of type 'aay' representing a list of
+IPv6 addresses into an array of IP address strings. Each "ay" entry must be
+a IPv6 address in binary form (16 bytes long). Invalid entries are silently
+ignored.
+
+Since 1.46, an empty list is returned if the variant type is not valid
+(before it was checked as assertion)
+
+
+ a %NULL-terminated array of IP address strings.
+
+
+
+
+ a #GVariant of type 'aay'
+
+
+
+
+
+ Utility function to convert an array of IP address strings int a #GVariant of
+type 'aay' representing an array of IPv6 addresses.
+
+If a string cannot be parsed, it will be silently ignored.
+
+
+ a new floating #GVariant representing @dns.
+
+
+
+
+ an array of IP address strings
+
+
+
+
+
+ Utility function to convert a #GVariant of type 'a(ayuayu)' representing an
+array of NetworkManager IPv6 routes (which are tuples of route, prefix, next
+hop, and metric) into a #GPtrArray of #NMIPRoute objects. Note that invalid
+routes are ignored but the valid ones are still returned.
+
+Since 1.46, an empty list is returned if the variant type is not valid
+(before it was checked as assertion)
+
+
+ a newly allocated
+ #GPtrArray of #NMIPRoute objects
+
+
+
+
+
+
+ #GVariant of type 'a(ayuayu)'
+
+
+
+
+
+ Utility function to convert a #GPtrArray of #NMIPRoute objects representing
+IPv6 routes into a #GVariant of type 'a(ayuayu)' representing an array of
+NetworkManager IPv6 routes (which are tuples of route, prefix, next hop, and
+metric).
+
+
+ a new floating #GVariant representing @routes.
+
+
+
+
+ an array of #NMIPRoute objects
+
+
+
+
+
+
+
+ Utility function to convert a #GVariant representing a list of new-style
+NetworkManager IPv4 or IPv6 addresses (as described in the documentation for
+nm_utils_ip_addresses_to_variant()) into a #GPtrArray of #NMIPAddress
+objects. Note that invalid addresses are discarded but the valid addresses
+are still returned.
+
+Since 1.46, an empty list is returned if the variant type is not valid
+(before it was checked as assertion)
+
+
+ a newly allocated
+ #GPtrArray of #NMIPAddress objects
+
+
+
+
+
+
+ a #GVariant of type 'aa{sv}'
+
+
+
+ an IP address family
+
+
+
+
+
+ Utility function to convert a #GPtrArray of #NMIPAddress objects representing
+IPv4 or IPv6 addresses into a #GVariant of type 'aa{sv}' representing an
+array of new-style NetworkManager IP addresses. All addresses will include
+"address" (an IP address string), and "prefix" (a uint). Some addresses may
+include additional attributes.
+
+
+ a new floating #GVariant representing @addresses.
+
+
+
+
+ an array of #NMIPAddress objects
+
+
+
+
+
+
+
+ Utility function to convert a #GVariant representing a list of new-style
+NetworkManager IPv4 or IPv6 addresses (as described in the documentation for
+nm_utils_ip_routes_to_variant()) into a #GPtrArray of #NMIPRoute objects.
+Invalid routes are discarded but the valid routes are still returned.
+
+Since 1.46, an empty list is returned if the variant type is not valid
+(before it was checked as assertion)
+
+
+ a newly allocated
+ #GPtrArray of #NMIPRoute objects
+
+
+
+
+
+
+ a #GVariant of type 'aa{sv}'
+
+
+
+ an IP address family
+
+
+
+
+
+ Utility function to convert a #GPtrArray of #NMIPRoute objects representing
+IPv4 or IPv6 routes into a #GVariant of type 'aa{sv}' representing an array
+of new-style NetworkManager IP routes. All routes will include "dest" (an IP
+address string), "prefix" (an uint) and optionally "next-hop" (an IP address
+string) and "metric" (an uint). Some routes may include additional attributes.
+Note that invalid routes are discarded and only a warning is emitted, but the
+valid routes are still returned.
+
+
+ a new floating #GVariant representing @routes.
+
+
+
+
+ an array of #NMIPRoute objects
+
+
+
+
+
+
+
+ Checks if @ip contains a valid IP address of the given family.
+
+
+ %TRUE or %FALSE
+
+
+
+
+ <literal>AF_INET</literal> or <literal>AF_INET6</literal>, or
+ <literal>AF_UNSPEC</literal> to accept either
+
+
+
+ an IP address
+
+
+
+
+
+ Different manufacturers use different mechanisms for not broadcasting the
+AP's SSID. This function attempts to detect blank/empty SSIDs using a
+number of known SSID-cloaking methods.
+
+
+ %TRUE if the SSID is "empty", %FALSE if it is not
+
+
+
+
+ pointer to a buffer containing the SSID data
+
+
+
+
+
+ length of the SSID data in @ssid
+
+
+
+
+
+
+
+ whether the passed string is valid JSON.
+ If libnm is not compiled with libjansson support, this check will
+ also return %TRUE for possibly invalid inputs. If that is a problem
+ for you, you must validate the JSON yourself.
+
+
+
+
+ the JSON string to test
+
+
+
+
+
+ Checks if @str is a UUID
+ older versions of NetworkManager had a wrong
+ understanding of what makes a valid UUID. This function can thus
+ accept some inputs as valid, which in fact are not valid UUIDs.
+
+
+ %TRUE if @str is a UUID, %FALSE if not
+
+In older versions, nm_utils_is_uuid() did not accept %NULL as @str
+argument. Don't pass %NULL if you run against older versions of libnm.
+
+
+
+
+ a string that might be a UUID
+
+
+
+
+
+ Validate the network interface name.
+
+This function is a 1:1 copy of the kernel's interface validation
+function in net/core/dev.c.
+
+
+ %TRUE if interface name is valid, otherwise %FALSE is returned.
+
+Before 1.20, this function did not accept %NULL as @name argument. If you
+ want to run against older versions of libnm, don't pass %NULL.
+
+
+
+
+ Name of interface
+
+
+
+
+
+ Parse attributes from a string.
+
+
+ a #GHashTable mapping
+attribute names to #GVariant values. Warning: the variant are still floating
+references, owned by the hash table. If you take a reference, ensure to sink
+the one of the hash table first.
+
+
+
+
+
+
+
+ the input string
+
+
+
+ the attribute separator character
+
+
+
+ character separating key and values
+
+
+
+ whether unknown attributes should be ignored
+
+
+
+ the attribute format specifiers
+
+
+
+
+
+ The only purpose of this function is to give access to g_print()
+or g_printerr() from pygobject. libnm can do debug logging by
+setting LIBNM_CLIENT_DEBUG and uses thereby g_printerr() or
+g_print(). A plain "print()" function in python is not in sync
+with these functions (it implements additional buffering). By
+using nm_utils_print(), the same logging mechanisms can be used.
+
+LIBNM_CLIENT_DEBUG is a list of keywords separated by commas. The keyword
+"trace" enables printing messages of the lowest up to the highest severity.
+Likewise, the severities "debug", "warn" ("warning") and "error" are honored
+in similar way. Setting the flags "ERROR" or "WARN" ("WARNING") implies that
+respective levels are enabled, but also are ERROR messages printed with
+g_critical() and WARN messages with g_warning(). Together with G_DEBUG="fatal-warnings"
+or G_DEBUG="fatal-critical" this can be used to abort the program on errors.
+Note that all <error> messages imply an unexpected data on the D-Bus API
+(due to a bug). <warn> also implies unexepected data, but that can happen
+when using different versions of libnm and daemon. For testing, it is
+good to turn these into assertions.
+
+By default, messages are printed to stderr, unless LIBNM_CLIENT_DEBUG
+contains "stdout" flag. Also, libnm honors LIBNM_CLIENT_DEBUG_FILE
+environment. If this is set to a filename pattern (accepting "%%p" for the
+process ID), then the debug log is written to that file instead of
+stderr/stdout. With @output_mode zero, the same location will be written.
+
+LIBNM_CLIENT_DEBUG_FILE is supported since 1.44. "ERROR", "WARN" and "WARNING"
+are supported since 1.46.
+
+
+
+
+
+
+ if 1 it uses g_print(). If 2, it uses g_printerr().
+ If 0, it uses the same output as internal libnm debug logging
+ does. That is, depending on LIBNM_CLIENT_DEBUG's "stdout" flag
+ it uses g_print() or g_printerr() and if LIBNM_CLIENT_DEBUG_FILE is
+ set, it writes the output to file instead
+
+
+
+ the message to print. The function does not append
+ a trailing newline.
+
+
+
+
+
+ Earlier versions of the Linux kernel added a NULL byte to the end of the
+SSID to enable easy printing of the SSID on the console or in a terminal,
+but this behavior was problematic (SSIDs are simply byte arrays, not strings)
+and thus was changed. This function compensates for that behavior at the
+cost of some compatibility with odd SSIDs that may legitimately have trailing
+NULLs, even though that is functionally pointless.
+
+
+ %TRUE if the SSIDs are the same, %FALSE if they are not
+
+
+
+
+ the first SSID to compare
+
+
+
+
+
+ length of the SSID data in @ssid1
+
+
+
+ the second SSID to compare
+
+
+
+
+
+ length of the SSID data in @ssid2
+
+
+
+ %TRUE to ignore one trailing NULL byte
+
+
+
+
+
+ Given a set of device capabilities, and a desired security type to check
+against, determines whether the combination of device, desired security
+type, and AP capabilities intersect.
+
+NOTE: this function cannot handle checking security for AP/Hotspot mode;
+use nm_utils_ap_mode_security_valid() instead.
+
+
+ %TRUE if the device capabilities and AP capabilities intersect and are
+compatible with the desired @type, %FALSE if they are not
+
+
+
+
+ the security type to check AP flags and device capabilities against,
+e.g. #NMU_SEC_STATIC_WEP
+
+
+
+ bitfield of the capabilities of the specific Wi-Fi device, e.g.
+#NM_WIFI_DEVICE_CAP_CIPHER_WEP40
+
+
+
+ whether the @ap_flags, @ap_wpa, and @ap_rsn arguments are valid
+
+
+
+ whether the capabilities being tested are from an Ad-Hoc AP (IBSS)
+
+
+
+ bitfield of AP capabilities, e.g. #NM_802_11_AP_FLAGS_PRIVACY
+
+
+
+ bitfield of AP capabilities derived from the AP's WPA beacon,
+e.g. (#NM_802_11_AP_SEC_PAIR_TKIP | #NM_802_11_AP_SEC_KEY_MGMT_PSK)
+
+
+
+ bitfield of AP capabilities derived from the AP's RSN/WPA2 beacon,
+e.g. (#NM_802_11_AP_SEC_PAIR_CCMP | #NM_802_11_AP_SEC_PAIR_TKIP)
+
+
+
+
+
+ Converts a string to a SR-IOV virtual function object.
+
+
+ the virtual function object
+
+
+
+
+ the input string
+
+
+
+
+
+ Converts a SR-IOV virtual function object to its string representation.
+
+
+ a newly allocated string or %NULL on error
+
+
+
+
+ the %NMSriovVF
+
+
+
+ if %TRUE, the VF index will be omitted from output string
+
+
+
+
+
+ Wi-Fi SSIDs are byte arrays, they are _not_ strings. Thus, an SSID may
+contain embedded NULLs and other unprintable characters. Often it is
+useful to print the SSID out for debugging purposes, but that should be the
+_only_ use of this function. Do not use this function for any persistent
+storage of the SSID, since the printable SSID returned from this function
+cannot be converted back into the real SSID of the access point.
+
+This function does almost everything humanly possible to convert the input
+into a printable UTF-8 string, using roughly the following procedure:
+
+1) if the input data is already UTF-8 safe, no conversion is performed
+2) attempts to get the current system language from the LANG environment
+ variable, and depending on the language, uses a table of alternative
+ encodings to try. For example, if LANG=hu_HU, the table may first try
+ the ISO-8859-2 encoding, and if that fails, try the Windows-1250 encoding.
+ If all fallback encodings fail, replaces non-UTF-8 characters with '?'.
+3) If the system language was unable to be determined, falls back to the
+ ISO-8859-1 encoding, then to the Windows-1251 encoding.
+4) If step 3 fails, replaces non-UTF-8 characters with '?'.
+
+Again, this function should be used for debugging and display purposes
+_only_.
+
+
+ an allocated string containing a UTF-8
+representation of the SSID, which must be freed by the caller using g_free().
+Returns %NULL on errors.
+
+
+
+
+ pointer to a buffer containing the SSID data
+
+
+
+
+
+ length of the SSID data in @ssid
+
+
+
+
+
+ Parses the tc style string action representation of the queueing
+discipline to a %NMTCAction instance. Supports a subset of the tc language.
+
+
+ the %NMTCAction or %NULL
+
+
+
+
+ the string representation of a action
+
+
+
+
+
+ Turns the %NMTCAction into a tc style string representation of the queueing
+discipline.
+
+
+ formatted string or %NULL
+
+
+
+
+ the %NMTCAction
+
+
+
+
+
+ Parses the tc style string qdisc representation of the queueing
+discipline to a %NMTCQdisc instance. Supports a subset of the tc language.
+
+
+ the %NMTCQdisc or %NULL
+
+
+
+
+ the string representation of a qdisc
+
+
+
+
+
+ Turns the %NMTCQdisc into a tc style string representation of the queueing
+discipline.
+
+
+ formatted string or %NULL
+
+
+
+
+ the %NMTCQdisc
+
+
+
+
+
+ Parses the tc style string tfilter representation of the queueing
+discipline to a %NMTCTfilter instance. Supports a subset of the tc language.
+
+
+ the %NMTCTfilter or %NULL
+
+
+
+
+ the string representation of a tfilter
+
+
+
+
+
+ Turns the %NMTCTfilter into a tc style string representation of the queueing
+discipline.
+
+
+ formatted string or %NULL
+
+
+
+
+ the %NMTCTfilter
+
+
+
+
+
+
+
+ a newly allocated UUID suitable for use as the #NMSettingConnection
+object's #NMSettingConnection:id: property. Should be freed with g_free()
+
+
+
+
+
+
+ the version ID of the libnm version. That is, the %NM_VERSION
+ at runtime.
+
+
+
+
+ Checks if @key is a valid WEP key
+
+
+ %TRUE if @key is a WEP key, %FALSE if not
+
+
+
+
+ a string that might be a WEP key
+
+
+
+ the #NMWepKeyType type of the WEP key
+
+
+
+
+
+ Utility function to return 2.4 GHz Wi-Fi frequencies (802.11bg band).
+
+
+ zero-terminated array of frequencies numbers (in MHz)
+
+
+
+
+ Utility function to return 5 GHz Wi-Fi frequencies (802.11a band).
+
+
+ zero-terminated array of frequencies numbers (in MHz)
+
+
+
+
+ Utility function to translate a Wi-Fi channel to its corresponding frequency.
+
+
+ the frequency represented by the channel of the band,
+ or -1 when the freq is invalid, or 0 when the band
+ is invalid
+
+
+
+
+ channel
+
+
+
+ frequency band for wireless ("a" or "bg")
+
+
+
+
+
+ Utility function to find out next/previous Wi-Fi channel for a channel.
+
+
+ the next channel in the specified direction or 0
+
+
+
+
+ current channel
+
+
+
+ whether going downward (0 or less) or upward (1 or more)
+
+
+
+ frequency band for wireless ("a" or "bg")
+
+
+
+
+
+ Utility function to translate a Wi-Fi frequency to its corresponding channel.
+
+
+ the channel represented by the frequency or 0
+
+
+
+
+ frequency
+
+
+
+
+
+ Utility function to verify Wi-Fi channel validity.
+
+
+ %TRUE or %FALSE
+
+
+
+
+ channel
+
+
+
+ frequency band for wireless ("a" or "bg")
+
+
+
+
+
+ Converts @strength into a 4-character-wide graphical representation of
+strength suitable for printing to stdout.
+
+Previous versions used to take a guess at the terminal type and possibly
+return a wide UTF-8 encoded string. Now it always returns a 7-bit
+clean strings of one to 0 to 4 asterisks. Users that actually need
+the functionality are encouraged to make their implementations instead.
+
+
+ the graphical representation of the access point strength
+
+
+
+
+ the access point strength, from 0 to 100
+
+
+
+
+
+ Checks if @psk is a valid WPA PSK
+
+
+ %TRUE if @psk is a WPA PSK, %FALSE if not
+
+
+
+
+ a string that might be a WPA PSK
+
+
+
+
+
+ Load the shared library @plugin_name and create a new
+#NMVpnEditorPlugin instance via the #NMVpnEditorPluginFactory
+function.
+
+This is similar to nm_vpn_editor_plugin_load_from_file(), but
+it does no validation of the plugin name, instead passes it directly
+to dlopen(). If you have the full path to a plugin file,
+nm_vpn_editor_plugin_load_from_file() is preferred.
+
+
+ a new plugin instance or %NULL on error.
+
+
+
+
+ The name of the shared library to load.
+ This path will be directly passed to dlopen() without
+ further checks.
+
+
+
+ if not-null, check that the loaded plugin advertises
+ the given service.
+
+
+
+
+
+ Load the shared library @plugin_name and create a new
+#NMVpnEditorPlugin instance via the #NMVpnEditorPluginFactory
+function.
+
+If @plugin_name is not an absolute path name, it assumes the file
+is in the plugin directory of NetworkManager. In any case, the call
+will do certain checks on the file before passing it to dlopen.
+A consequence for that is, that you cannot omit the ".so" suffix
+as you could for nm_vpn_editor_plugin_load().
+
+
+ a new plugin instance or %NULL on error.
+
+
+
+
+ The path or name of the shared library to load.
+ The path must either be an absolute filename to an existing file.
+ Alternatively, it can be the name (without path) of a library in the
+ plugin directory of NetworkManager.
+
+
+
+ if not-null, check that the loaded plugin advertises
+ the given service.
+
+
+
+ if non-negative, check whether the file is owned
+ by UID @check_owner or by root. In this case also check that
+ the file is not writable by anybody else.
+
+
+
+ optional callback to validate the file prior to
+ loading the shared library.
+
+
+
+ user data for @check_file
+
+
+
+
+
+
+
+
+
+
+
diff --git a/libphosh-rs/Phosh-0.gir b/libphosh-rs/Phosh-0.gir
new file mode 100644
index 000000000..23ab206ce
--- /dev/null
+++ b/libphosh-rs/Phosh-0.gir
@@ -0,0 +1,5316 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-gnome-Shell-Screenshot.top_of_page">org.gnome.Shell.Screenshot</link>.
+
+
+ Gets a machine-readable description of the <link linkend="gdbus-interface-org-gnome-Shell-Screenshot.top_of_page">org.gnome.Shell.Screenshot</link> D-Bus interface.
+
+
+ A #GDBusInterfaceInfo. Do not free.
+
+
+
+
+ Overrides all #GObject properties in the #PhoshDBusScreenshot interface for a concrete class.
+The properties are overridden in the order they are defined.
+
+
+ The last property id.
+
+
+
+
+ The class structure for a #GObject derived class.
+
+
+
+ The property id to assign to the first overridden property.
+
+
+
+
+
+ Handler for the #PhoshDBusScreenshot::handle-flash-area signal.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Handler for the #PhoshDBusScreenshot::handle-pick-color signal.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Handler for the #PhoshDBusScreenshot::handle-screenshot signal.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Handler for the #PhoshDBusScreenshot::handle-screenshot-area signal.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Handler for the #PhoshDBusScreenshot::handle-screenshot-window signal.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Handler for the #PhoshDBusScreenshot::handle-select-area signal.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Asynchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.FlashArea">FlashArea()</link> D-Bus method on @proxy.
+When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
+You can then call phosh_dbus_screenshot_call_flash_area_finish() to get the result of the operation.
+
+See phosh_dbus_screenshot_call_flash_area_sync() for the synchronous, blocking version of this method.
+
+
+
+
+
+
+ A #PhoshDBusScreenshotProxy.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+ A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+
+
+
+ User data to pass to @callback.
+
+
+
+
+
+ Finishes an operation started with phosh_dbus_screenshot_call_flash_area().
+
+
+ %TRUE if the call succeeded, %FALSE if @error is set.
+
+
+
+
+ A #PhoshDBusScreenshotProxy.
+
+
+
+ The #GAsyncResult obtained from the #GAsyncReadyCallback passed to phosh_dbus_screenshot_call_flash_area().
+
+
+
+
+
+ Synchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.FlashArea">FlashArea()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+
+See phosh_dbus_screenshot_call_flash_area() for the asynchronous version of this method.
+
+
+ %TRUE if the call succeeded, %FALSE if @error is set.
+
+
+
+
+ A #PhoshDBusScreenshotProxy.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+
+
+ Asynchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.PickColor">PickColor()</link> D-Bus method on @proxy.
+When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
+You can then call phosh_dbus_screenshot_call_pick_color_finish() to get the result of the operation.
+
+See phosh_dbus_screenshot_call_pick_color_sync() for the synchronous, blocking version of this method.
+
+
+
+
+
+
+ A #PhoshDBusScreenshotProxy.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+ A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+
+
+
+ User data to pass to @callback.
+
+
+
+
+
+ Finishes an operation started with phosh_dbus_screenshot_call_pick_color().
+
+
+ %TRUE if the call succeeded, %FALSE if @error is set.
+
+
+
+
+ A #PhoshDBusScreenshotProxy.
+
+
+
+ Return location for return parameter or %NULL to ignore.
+
+
+
+ The #GAsyncResult obtained from the #GAsyncReadyCallback passed to phosh_dbus_screenshot_call_pick_color().
+
+
+
+
+
+ Synchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.PickColor">PickColor()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+
+See phosh_dbus_screenshot_call_pick_color() for the asynchronous version of this method.
+
+
+ %TRUE if the call succeeded, %FALSE if @error is set.
+
+
+
+
+ A #PhoshDBusScreenshotProxy.
+
+
+
+ Return location for return parameter or %NULL to ignore.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+
+
+ Asynchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.Screenshot">Screenshot()</link> D-Bus method on @proxy.
+When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
+You can then call phosh_dbus_screenshot_call_screenshot_finish() to get the result of the operation.
+
+See phosh_dbus_screenshot_call_screenshot_sync() for the synchronous, blocking version of this method.
+
+
+
+
+
+
+ A #PhoshDBusScreenshotProxy.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+ A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+
+
+
+ User data to pass to @callback.
+
+
+
+
+
+ Asynchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.ScreenshotArea">ScreenshotArea()</link> D-Bus method on @proxy.
+When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
+You can then call phosh_dbus_screenshot_call_screenshot_area_finish() to get the result of the operation.
+
+See phosh_dbus_screenshot_call_screenshot_area_sync() for the synchronous, blocking version of this method.
+
+
+
+
+
+
+ A #PhoshDBusScreenshotProxy.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+ A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+
+
+
+ User data to pass to @callback.
+
+
+
+
+
+ Finishes an operation started with phosh_dbus_screenshot_call_screenshot_area().
+
+
+ %TRUE if the call succeeded, %FALSE if @error is set.
+
+
+
+
+ A #PhoshDBusScreenshotProxy.
+
+
+
+ Return location for return parameter or %NULL to ignore.
+
+
+
+ Return location for return parameter or %NULL to ignore.
+
+
+
+ The #GAsyncResult obtained from the #GAsyncReadyCallback passed to phosh_dbus_screenshot_call_screenshot_area().
+
+
+
+
+
+ Synchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.ScreenshotArea">ScreenshotArea()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+
+See phosh_dbus_screenshot_call_screenshot_area() for the asynchronous version of this method.
+
+
+ %TRUE if the call succeeded, %FALSE if @error is set.
+
+
+
+
+ A #PhoshDBusScreenshotProxy.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ Return location for return parameter or %NULL to ignore.
+
+
+
+ Return location for return parameter or %NULL to ignore.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+
+
+ Finishes an operation started with phosh_dbus_screenshot_call_screenshot().
+
+
+ %TRUE if the call succeeded, %FALSE if @error is set.
+
+
+
+
+ A #PhoshDBusScreenshotProxy.
+
+
+
+ Return location for return parameter or %NULL to ignore.
+
+
+
+ Return location for return parameter or %NULL to ignore.
+
+
+
+ The #GAsyncResult obtained from the #GAsyncReadyCallback passed to phosh_dbus_screenshot_call_screenshot().
+
+
+
+
+
+ Synchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.Screenshot">Screenshot()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+
+See phosh_dbus_screenshot_call_screenshot() for the asynchronous version of this method.
+
+
+ %TRUE if the call succeeded, %FALSE if @error is set.
+
+
+
+
+ A #PhoshDBusScreenshotProxy.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ Return location for return parameter or %NULL to ignore.
+
+
+
+ Return location for return parameter or %NULL to ignore.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+
+
+ Asynchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.ScreenshotWindow">ScreenshotWindow()</link> D-Bus method on @proxy.
+When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
+You can then call phosh_dbus_screenshot_call_screenshot_window_finish() to get the result of the operation.
+
+See phosh_dbus_screenshot_call_screenshot_window_sync() for the synchronous, blocking version of this method.
+
+
+
+
+
+
+ A #PhoshDBusScreenshotProxy.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+ A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+
+
+
+ User data to pass to @callback.
+
+
+
+
+
+ Finishes an operation started with phosh_dbus_screenshot_call_screenshot_window().
+
+
+ %TRUE if the call succeeded, %FALSE if @error is set.
+
+
+
+
+ A #PhoshDBusScreenshotProxy.
+
+
+
+ Return location for return parameter or %NULL to ignore.
+
+
+
+ Return location for return parameter or %NULL to ignore.
+
+
+
+ The #GAsyncResult obtained from the #GAsyncReadyCallback passed to phosh_dbus_screenshot_call_screenshot_window().
+
+
+
+
+
+ Synchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.ScreenshotWindow">ScreenshotWindow()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+
+See phosh_dbus_screenshot_call_screenshot_window() for the asynchronous version of this method.
+
+
+ %TRUE if the call succeeded, %FALSE if @error is set.
+
+
+
+
+ A #PhoshDBusScreenshotProxy.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ Argument to pass with the method invocation.
+
+
+
+ Return location for return parameter or %NULL to ignore.
+
+
+
+ Return location for return parameter or %NULL to ignore.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+
+
+ Asynchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.SelectArea">SelectArea()</link> D-Bus method on @proxy.
+When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
+You can then call phosh_dbus_screenshot_call_select_area_finish() to get the result of the operation.
+
+See phosh_dbus_screenshot_call_select_area_sync() for the synchronous, blocking version of this method.
+
+
+
+
+
+
+ A #PhoshDBusScreenshotProxy.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+ A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
+
+
+
+ User data to pass to @callback.
+
+
+
+
+
+ Finishes an operation started with phosh_dbus_screenshot_call_select_area().
+
+
+ %TRUE if the call succeeded, %FALSE if @error is set.
+
+
+
+
+ A #PhoshDBusScreenshotProxy.
+
+
+
+ Return location for return parameter or %NULL to ignore.
+
+
+
+ Return location for return parameter or %NULL to ignore.
+
+
+
+ Return location for return parameter or %NULL to ignore.
+
+
+
+ Return location for return parameter or %NULL to ignore.
+
+
+
+ The #GAsyncResult obtained from the #GAsyncReadyCallback passed to phosh_dbus_screenshot_call_select_area().
+
+
+
+
+
+ Synchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.SelectArea">SelectArea()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
+
+See phosh_dbus_screenshot_call_select_area() for the asynchronous version of this method.
+
+
+ %TRUE if the call succeeded, %FALSE if @error is set.
+
+
+
+
+ A #PhoshDBusScreenshotProxy.
+
+
+
+ Return location for return parameter or %NULL to ignore.
+
+
+
+ Return location for return parameter or %NULL to ignore.
+
+
+
+ Return location for return parameter or %NULL to ignore.
+
+
+
+ Return location for return parameter or %NULL to ignore.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+
+
+ Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.FlashArea">FlashArea()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+
+This method will free @invocation, you cannot use it afterwards.
+
+
+
+
+
+
+ A #PhoshDBusScreenshot.
+
+
+
+ A #GDBusMethodInvocation.
+
+
+
+
+
+ Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.PickColor">PickColor()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+
+This method will free @invocation, you cannot use it afterwards.
+
+
+
+
+
+
+ A #PhoshDBusScreenshot.
+
+
+
+ A #GDBusMethodInvocation.
+
+
+
+ Parameter to return.
+
+
+
+
+
+ Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.Screenshot">Screenshot()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+
+This method will free @invocation, you cannot use it afterwards.
+
+
+
+
+
+
+ A #PhoshDBusScreenshot.
+
+
+
+ A #GDBusMethodInvocation.
+
+
+
+ Parameter to return.
+
+
+
+ Parameter to return.
+
+
+
+
+
+ Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.ScreenshotArea">ScreenshotArea()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+
+This method will free @invocation, you cannot use it afterwards.
+
+
+
+
+
+
+ A #PhoshDBusScreenshot.
+
+
+
+ A #GDBusMethodInvocation.
+
+
+
+ Parameter to return.
+
+
+
+ Parameter to return.
+
+
+
+
+
+ Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.ScreenshotWindow">ScreenshotWindow()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+
+This method will free @invocation, you cannot use it afterwards.
+
+
+
+
+
+
+ A #PhoshDBusScreenshot.
+
+
+
+ A #GDBusMethodInvocation.
+
+
+
+ Parameter to return.
+
+
+
+ Parameter to return.
+
+
+
+
+
+ Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.SelectArea">SelectArea()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
+
+This method will free @invocation, you cannot use it afterwards.
+
+
+
+
+
+
+ A #PhoshDBusScreenshot.
+
+
+
+ A #GDBusMethodInvocation.
+
+
+
+ Parameter to return.
+
+
+
+ Parameter to return.
+
+
+
+ Parameter to return.
+
+
+
+ Parameter to return.
+
+
+
+
+
+ Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.FlashArea">FlashArea()</link> D-Bus method.
+
+If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call phosh_dbus_screenshot_complete_flash_area() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+
+ %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
+
+
+
+
+ A #GDBusMethodInvocation.
+
+
+
+ Argument passed by remote caller.
+
+
+
+ Argument passed by remote caller.
+
+
+
+ Argument passed by remote caller.
+
+
+
+ Argument passed by remote caller.
+
+
+
+
+
+ Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.PickColor">PickColor()</link> D-Bus method.
+
+If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call phosh_dbus_screenshot_complete_pick_color() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+
+ %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
+
+
+
+
+ A #GDBusMethodInvocation.
+
+
+
+
+
+ Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.Screenshot">Screenshot()</link> D-Bus method.
+
+If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call phosh_dbus_screenshot_complete_screenshot() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+
+ %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
+
+
+
+
+ A #GDBusMethodInvocation.
+
+
+
+ Argument passed by remote caller.
+
+
+
+ Argument passed by remote caller.
+
+
+
+ Argument passed by remote caller.
+
+
+
+
+
+ Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.ScreenshotArea">ScreenshotArea()</link> D-Bus method.
+
+If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call phosh_dbus_screenshot_complete_screenshot_area() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+
+ %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
+
+
+
+
+ A #GDBusMethodInvocation.
+
+
+
+ Argument passed by remote caller.
+
+
+
+ Argument passed by remote caller.
+
+
+
+ Argument passed by remote caller.
+
+
+
+ Argument passed by remote caller.
+
+
+
+ Argument passed by remote caller.
+
+
+
+ Argument passed by remote caller.
+
+
+
+
+
+ Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.ScreenshotWindow">ScreenshotWindow()</link> D-Bus method.
+
+If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call phosh_dbus_screenshot_complete_screenshot_window() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+
+ %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
+
+
+
+
+ A #GDBusMethodInvocation.
+
+
+
+ Argument passed by remote caller.
+
+
+
+ Argument passed by remote caller.
+
+
+
+ Argument passed by remote caller.
+
+
+
+ Argument passed by remote caller.
+
+
+
+
+
+ Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.SelectArea">SelectArea()</link> D-Bus method.
+
+If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call phosh_dbus_screenshot_complete_select_area() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+
+ %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
+
+
+
+
+ A #GDBusMethodInvocation.
+
+
+
+
+
+
+ Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-gnome-Shell-Screenshot.top_of_page">org.gnome.Shell.Screenshot</link>.
+
+
+ The parent interface.
+
+
+
+ Handler for the #PhoshDBusScreenshot::handle-flash-area signal.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Handler for the #PhoshDBusScreenshot::handle-pick-color signal.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Handler for the #PhoshDBusScreenshot::handle-screenshot signal.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Handler for the #PhoshDBusScreenshot::handle-screenshot-area signal.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Handler for the #PhoshDBusScreenshot::handle-screenshot-window signal.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Handler for the #PhoshDBusScreenshot::handle-select-area signal.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The #PhoshDBusScreenshotProxy structure contains only private data and should only be accessed using the provided API.
+
+
+
+
+
+
+ Finishes an operation started with phosh_dbus_screenshot_proxy_new().
+
+
+ The constructed proxy object or %NULL if @error is set.
+
+
+
+
+ The #GAsyncResult obtained from the #GAsyncReadyCallback passed to phosh_dbus_screenshot_proxy_new().
+
+
+
+
+
+ Finishes an operation started with phosh_dbus_screenshot_proxy_new_for_bus().
+
+
+ The constructed proxy object or %NULL if @error is set.
+
+
+
+
+ The #GAsyncResult obtained from the #GAsyncReadyCallback passed to phosh_dbus_screenshot_proxy_new_for_bus().
+
+
+
+
+
+ Like phosh_dbus_screenshot_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
+
+The calling thread is blocked until a reply is received.
+
+See phosh_dbus_screenshot_proxy_new_for_bus() for the asynchronous version of this constructor.
+
+
+ The constructed proxy object or %NULL if @error is set.
+
+
+
+
+ A #GBusType.
+
+
+
+ Flags from the #GDBusProxyFlags enumeration.
+
+
+
+ A bus name (well-known or unique).
+
+
+
+ An object path.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+
+
+ Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-gnome-Shell-Screenshot.top_of_page">org.gnome.Shell.Screenshot</link>. See g_dbus_proxy_new_sync() for more details.
+
+The calling thread is blocked until a reply is received.
+
+See phosh_dbus_screenshot_proxy_new() for the asynchronous version of this constructor.
+
+
+ The constructed proxy object or %NULL if @error is set.
+
+
+
+
+ A #GDBusConnection.
+
+
+
+ Flags from the #GDBusProxyFlags enumeration.
+
+
+
+ A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
+
+
+
+ An object path.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+
+
+ Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-gnome-Shell-Screenshot.top_of_page">org.gnome.Shell.Screenshot</link>. See g_dbus_proxy_new() for more details.
+
+When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
+You can then call phosh_dbus_screenshot_proxy_new_finish() to get the result of the operation.
+
+See phosh_dbus_screenshot_proxy_new_sync() for the synchronous, blocking version of this constructor.
+
+
+
+
+
+
+ A #GDBusConnection.
+
+
+
+ Flags from the #GDBusProxyFlags enumeration.
+
+
+
+ A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
+
+
+
+ An object path.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+ A #GAsyncReadyCallback to call when the request is satisfied.
+
+
+
+ User data to pass to @callback.
+
+
+
+
+
+ Like phosh_dbus_screenshot_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
+
+When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
+You can then call phosh_dbus_screenshot_proxy_new_for_bus_finish() to get the result of the operation.
+
+See phosh_dbus_screenshot_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
+
+
+
+
+
+
+ A #GBusType.
+
+
+
+ Flags from the #GDBusProxyFlags enumeration.
+
+
+
+ A bus name (well-known or unique).
+
+
+
+ An object path.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+ A #GAsyncReadyCallback to call when the request is satisfied.
+
+
+
+ User data to pass to @callback.
+
+
+
+
+
+
+
+
+
+
+
+
+ Class structure for #PhoshDBusScreenshotProxy.
+
+
+ The parent class.
+
+
+
+
+
+
+
+ The #PhoshDBusScreenshotSkeleton structure contains only private data and should only be accessed using the provided API.
+
+
+
+
+ Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-gnome-Shell-Screenshot.top_of_page">org.gnome.Shell.Screenshot</link>.
+
+
+ The skeleton object.
+
+
+
+
+
+
+
+
+
+
+
+ Class structure for #PhoshDBusScreenshotSkeleton.
+
+
+ The parent class.
+
+
+
+
+
+
+
+ A #GtkWindow rendered as a LayerSurface by the compositor
+
+#PhoshLayerSurface allows to use a Wayland surface backed by the
+layer-shell protocol as #GtkWindow. This allows to render e.g. panels and
+backgrounds using GTK.
+
+
+
+
+ invoked when layer surface is configured
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This signal is emitted once we received the configure event from the
+compositor.
+
+
+
+
+
+
+
+
+ The parent class
+
+
+
+ invoked when layer surface is configured
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The main lock screen
+
+The lock screen displayed on the primary output featuring the clock
+and unlock keypad. It handles displaying ongoing calls when the
+shell is locked and can be extended via plugins.
+
+Other outputs are locked via PhoshLockshields.
+
+# CSS nodes
+
+`PhoshLockscreen` has a CSS name with the name `phosh-lockscreen`.
+
+
+
+
+ This function is invoked when a PIN or password is submitted from the lockscreen
+ keypad. It allows to implement a custom authentication mechanism. To indicate success the
+ `lockscreen-unlock` signal should be emitted.
+
+
+
+
+
+
+
+
+
+
+
+ Inserts a custom widget into the "extra" page of the lockscreen. This page sits in-between the
+info page and the keypad page. By default, this page does not exist and is not used. Once an
+extra page is added, it can be navigated to by swiping and also via calls to
+[method@Lockscreen.set_default_page].
+
+
+
+
+
+
+ The `PhoshLockscreen`
+
+
+
+ The extra #GtkWidget to insert into the lockscreen carousel
+
+
+
+
+
+ Clears the current contents of the keypad PIN entry buffer
+
+
+
+
+
+
+ The `PhoshLockscreen`
+
+
+
+
+
+
+
+ The #PhoshLockscreenPage that is currently shown
+
+
+
+
+ The `PhoshLockscreen`
+
+
+
+
+
+ Get the current contents of the keypad PIN entry buffer
+
+
+ the contents of the entry buffer
+
+
+
+
+ The `PhoshLockscreen`
+
+
+
+
+
+ Specifies which page should be shown by default when the lockscreen is made visible. This will
+also be the page that is shown when the keypad idle timer is reached.
+
+
+
+
+
+
+ The `PhoshLockscreen`
+page: the page to show by default
+
+
+
+
+
+
+
+
+ Scrolls to a specific page in the carousel. The state of the deck
+isn't changed.
+
+
+
+
+
+
+ The `PhoshLockscreen`
+page: The page to scroll to
+
+
+
+
+
+
+
+
+ Sets the text displayed in the unlock status label.
+
+
+
+
+
+
+ The `PhoshLockscreen`
+
+
+
+ The status text
+
+
+
+
+
+ Triggers an animation that shakes the PIN entry left and right for a brief period.
+After the animation is complete, the PIN entry buffer is cleared. Used to visually indicate
+authentication errors.
+
+
+
+
+
+
+ The `PhoshLockscreen`
+
+
+
+
+
+ The calls manager handling incoming and active calls.
+
+
+
+ The currently active carousel page
+
+
+
+ Require entering PIN or password to unlock. If false, unlock by swiping up.
+
+
+
+
+
+
+ This signal is emitted when authentication was successful and the
+session should be unlocked.
+
+
+
+
+
+ Emitted when the output showing the lock screen should be woken
+up.
+
+
+
+
+
+
+
+
+ The parent class
+
+
+
+ This function is invoked when a PIN or password is submitted from the lockscreen
+ keypad. It allows to implement a custom authentication mechanism. To indicate success the
+ `lockscreen-unlock` signal should be emitted.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The singleton that manages screen locking
+
+The #PhoshLockscreenManager is responsible for putting the #PhoshLockscreen
+on the primary output and a #PhoshLockshield on other outputs when the session
+becomes idle or when invoked explicitly via phosh_lockscreen_manager_set_locked().
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the current [type@Lockscreen], if one exists (NULL otherwise).
+
+
+ The lockscreen
+
+
+
+
+ The lockscreen manager
+
+
+
+
+
+
+
+ The currently shown #PhoshLockscreenPage in the #PhoshLockscreen
+
+
+
+
+ The #PhoshLockscreenManager
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Whether the screen is locked
+
+
+
+ Emitted when the outputs should be woken up.
+
+
+
+
+
+
+
+
+
+
+
+
+ Indicates which page is currently shown on the lockscreen.
+
+This helps `PhoshGnomeShellManager` to decide when to emit
+AcceleratorActivated events over DBus
+
+ The info page (clock, notifications, MPRIS, etc)
+
+
+ The extra page (an extension point used by Lockscreen subclasses)
+
+
+ The unlock page (where PIN is entered)
+
+
+
+ This section contains code for working with the <link linkend="gdbus-interface-org-gnome-Shell-Screenshot.top_of_page">org.gnome.Shell.Screenshot</link> D-Bus interface in C.
+
+
+ A `PhoshQuickSetting` represents a state of an entity (like Wi-Fi, Bluetooth) using an icon
+and label. It should be added to a PhoshQuickSettingsBox for better integration.
+
+A quick-setting displays the state using an icon and label. The state is set by
+[class@Phosh.StatusIcon], which must be set as a [property@Phosh.QuickSetting:status-icon]. It
+can also have a status-page, which can be used to expose additional features. For example, a
+Wi-Fi quick-setting can show available Wi-Fi hotspots as an extra option. When a status widget is
+set, the quick-setting displays an arrow at the right end.
+
+A quick-setting itself does not have any provision to display its status-page. It is
+completely upto the user to display and hide the status-pages as required. However the
+quick-setting can aid in the task with its [property@Phosh.QuickSetting:showing-status] property.
+When `showing-status` is false, clicking the arrow will cause the quick-setting to emit
+[signal@Phosh.QuickSetting::show-status]. If `showing-status` is true, then it will emit
+[signal@Phosh.QuickSetting::hide-status]. The user of the quick-setting is expected to follow
+this convention and set `showing-status` based on whether they are displaying the status-page
+or not.
+
+A quick-setting might be temporarily prevented from showing its status-page using
+[property@Phosh.QuickSetting:can-show-status]. Again, `PhoshQuickSettingsBox` can take care of
+this property, such that once you tell the box if showing status-page is allowed, it will ensure
+that the children's `can-show-status` are synchronized with it.
+
+A quick-setting can be in an active or inactive state. However clicking the quick-setting does
+not toggle its state. The user must set the state using [property@Phosh.QuickSetting:active]. If
+the status-icon [class@StatusIcon] has an `enabled` property it will be automatically bound to
+the [property@Phosh.QuickSetting:active] property.
+
+When a quick-setting is clicked, [signal@Phosh.QuickSetting::clicked] is emitted. When it is
+long-pressed or right-clicked, [signal@PhoshQuickSetting::long-pressed] is emitted.
+
+The common usecase of `long-pressed` is to launch an action (like `settings.launch-panel`). So to
+avoid duplicating this process for each quick-setting, the user can set
+[property@Phosh.QuickSetting:long-press-action-name] and
+[property@Phosh.QuickSetting:long-press-action-target]. The quick-setting then launches that
+appropriate action.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Get the current status-icon of the quick-setting.
+
+
+ The status-icon or `NULL`.
+
+
+
+
+ A quick-setting
+
+
+
+
+
+ Get the current status widget of the quick-setting.
+
+
+ The status-page or `NULL`.
+
+
+
+
+ A quick-setting
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Set the status-icon of the quick-setting. Use `NULL` to remove existing icon.
+
+
+
+
+
+
+ A quick-setting
+
+
+
+ A status-icon or `NULL`
+
+
+
+
+
+ Set the status-page of the quick-setting.
+
+
+
+
+
+
+ A quick-setting
+
+
+
+ A status-page or `NULL`
+
+
+
+
+
+ The active state of the child.
+
+
+
+ If the child can display its status.
+
+
+
+ Action name to trigger on long-press.
+
+
+
+ Action target for `long-press-action-name`.
+
+
+
+ If the child is displaying its status.
+
+
+
+ The status-icon.
+
+
+
+ The status-page.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Screenshot interaction
+
+The #PhoshScreenshotManager is responsible for
+taking screenshots.
+
+
+
+
+
+
+
+
+
+
+ Initiate a screenshot of all outputs or the given area. If `copy_to_clipboard` is
+`TRUE` the screenshot is also copied to the clipboard.
+
+
+ `FALSE` on failure, otherwise `TRUE`
+
+
+
+
+ The screenshot manager
+
+
+
+ The area to capture or %NULL to capture all outputs
+
+
+
+ The output filename or %NULL to autogenerate a filename
+
+
+
+ Whether to use the clipboard
+
+
+
+ Whether to include the cursor
+
+
+
+
+
+
+
+
+
+
+
+
+ The shell singleton
+
+#PhoshShell is responsible for instantiating the GUI
+parts of the shell#PhoshTopPanel, #PhoshHome,… and the managers that
+interface with DBus #PhoshMonitorManager, #PhoshFeedbackManager, …
+and coordinates between them.
+
+
+
+
+
+
+
+
+
+
+ Get the shell singleton
+
+
+ The shell singleton
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ %TRUE if the shell is currently locked, otherwise %FALSE.
+
+
+
+
+ The #PhoshShell singleton
+
+
+
+
+
+ Get the lockscreen manager
+
+
+ The lockscreen manager
+
+
+
+
+ The shell singleton
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Get the screenshot manager
+
+
+ The screenshot manager
+
+
+
+
+ The shell singleton
+
+
+
+
+
+ Gives the usable area in pixels usable by a client on the primary
+display.
+
+
+
+
+
+
+ The shell
+
+
+
+ The x coordinate where client usable area starts
+
+
+
+ The y coordinate where client usable area starts
+
+
+
+ The width of the client usable area
+
+
+
+ The height of the client usable area
+
+
+
+
+
+ Set the PhoshShell singleton that is returned by `phosh_shell_get_default()`
+
+
+
+
+
+
+ The shell to use
+
+
+
+
+
+ The built in monitor. This is a hardware property and hence can
+only be read. It can be %NULL when not present or disabled.
+
+
+
+ Whether the device is currently docked. This mirrors the property
+from #PhoshDockedManager for easier access.
+
+
+
+ Whether the screen is currently locked. This mirrors the property
+from #PhoshLockscreenManager for easier access.
+
+
+
+ Whether to display the `PhoshHome` (overview and home bar)
+
+
+
+ The primary monitor that has the panels, lock screen etc.
+
+
+
+ The state of the shell (locked, modal dialog shown, …)
+
+
+
+
+
+
+ The ready signal is emitted once when the shell finished starting
+up.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base class for status icons used in the Phosh's top-bar or in
+[type@QuickSetting]s. It's very common to have the same status icon
+class used for both places.
+
+If the widget will be used in a [type@QuickSetting] it is
+recommended (but not required) that derived classes implement a
+`enabled` property.
+
+
+
+
+
+
+
+
+
+
+ a callback to be invoked once on idle
+
+
+
+
+
+
+
+
+
+
+
+ Get the extra widget or %NULL if there's no extra widget
+
+
+ The extra widget
+
+
+
+
+ A status icon
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Return the size of status-icon.
+ Use [method@Phosh.StatusIcon.get_pixel_size].
+
+
+ The size of status-icon.
+
+
+
+
+ The status-icon
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Set the size of status-icon.
+ Use [method@Phosh.StatusIcon.set_pixel_size].
+
+
+
+
+
+
+ The status-icon
+
+
+
+ The size of icon
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An extra widget to display. This is used for extra information when
+used in PhoshTopPanel. When used in [type@QuickSetting] this
+is not needed.
+
+
+
+ The name of the icon to display in the widget
+
+
+
+ The size of the icon to display in the widget
+
+
+
+ Textual information to display. Think of it as the [type@StatusIcon]'s
+label.
+
+
+
+ The size of the icon to display in the widget
+
+
+
+
+
+
+
+
+
+ The parent class
+
+
+
+ a callback to be invoked once on idle
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Additional status information associated with a [class@QuickSetting].
+
+This is displayed when the quick setting needs to show status.
+
+
+
+
+
+
+
+
+
+
+ Get the content widget of the status page
+
+
+ The status page content
+
+
+
+
+ A quick setting status page
+
+
+
+
+
+ Get the footer of the status page
+
+
+ The status page footer
+
+
+
+
+ A quick setting status page
+
+
+
+
+
+ Get the header widget of the status page
+
+
+ The status page header
+
+
+
+
+ A quick setting status page
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Set the content widget of the status page. See [property@StatusPage:content]. Use `NULL` to
+remove existing content.
+
+
+
+
+
+
+ A quick setting status page
+
+
+
+
+
+
+
+
+ Set the footer widget shown at the bottom of a status page
+
+
+
+
+
+
+ A quick setting status page
+
+
+
+
+
+
+
+
+ Set the header widget of the status page. See
+[property@StatusPage:header].
+
+
+
+
+
+
+ A quick setting status page
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The content of status page.
+
+
+
+ Widget displayed at the very bottom - usually a button.
+
+
+
+ An extra widget to add to end of the status page's header
+
+
+
+ The status page title
+
+
+
+
+
+
+ The status page should be closed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Wall clock used for fetching date and time
+
+
+
+
+
+
+
+
+ Get the wall clock singleton
+
+
+ The wall clock singleton
+
+
+
+
+ Gets the current clock string, if time_only is true this will be just the
+current time, otherwise the date + time.
+
+
+ the clock time string
+
+
+
+
+ The wall clock
+
+
+
+ whether to return full clock string or just the time
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the current clock string, if time_only is true this will be just the
+current time, otherwise the date + time.
+
+
+ the clock time string
+
+
+
+
+ The wall clock
+
+
+
+ whether to return full clock string or just the time
+
+
+
+
+
+ Get the local date as string
+We honor LC_MESSAGES so we e.g. don't get a translated date when
+the user has LC_MESSAGES=en_US.UTF-8 but LC_TIME to their local
+time zone.
+
+
+ The local date as string
+
+
+
+
+ The wall clock
+
+
+
+
+
+ Set the wall clock singleton. This sets the singleton returned by
+`phosh_wall_clock_get_default()`.
+
+
+
+
+
+
+ The clock to use
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ the clock time string
+
+
+
+
+ The wall clock
+
+
+
+ whether to return full clock string or just the time
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets a machine-readable description of the <link linkend="gdbus-interface-org-gnome-Shell-Screenshot.top_of_page">org.gnome.Shell.Screenshot</link> D-Bus interface.
+
+
+ A #GDBusInterfaceInfo. Do not free.
+
+
+
+
+ Overrides all #GObject properties in the #PhoshDBusScreenshot interface for a concrete class.
+The properties are overridden in the order they are defined.
+
+
+ The last property id.
+
+
+
+
+ The class structure for a #GObject derived class.
+
+
+
+ The property id to assign to the first overridden property.
+
+
+
+
+
+
diff --git a/libphosh-rs/Polkit-1.0.gir b/libphosh-rs/Polkit-1.0.gir
new file mode 100644
index 000000000..a7b79aa73
--- /dev/null
+++ b/libphosh-rs/Polkit-1.0.gir
@@ -0,0 +1,5657 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Object used to encapsulate a registered action.
+
+
+ Gets the action id for @action_description.
+
+
+ A string owned by @action_description. Do not free.
+
+
+
+
+ A #PolkitActionDescription.
+
+
+
+
+
+ Get the value of the annotation with @key.
+
+
+ %NULL if there is no annoation with @key,
+otherwise the annotation value owned by @action_description. Do not
+free.
+
+
+
+
+ A #PolkitActionDescription.
+
+
+
+ An annotation key.
+
+
+
+
+
+ Gets the keys of annotations defined in @action_description.
+
+
+ The annotation keys owned by @action_description. Do not free.
+
+
+
+
+
+
+ A #PolkitActionDescription.
+
+
+
+
+
+ Gets the description used for @action_description.
+
+
+ A string owned by @action_description. Do not free.
+
+
+
+
+ A #PolkitActionDescription.
+
+
+
+
+
+ Gets the icon name for @action_description, if any.
+
+
+ A string owned by @action_description. Do not free.
+
+
+
+
+ A #PolkitActionDescription.
+
+
+
+
+
+ Gets the implicit authorization for @action_description used for
+subjects in active sessions on a local console.
+
+
+ A value from the #PolkitImplicitAuthorization enumeration.
+
+
+
+
+ A #PolkitActionDescription.
+
+
+
+
+
+ Gets the implicit authorization for @action_description used for
+any subject.
+
+
+ A value from the #PolkitImplicitAuthorization enumeration.
+
+
+
+
+ A #PolkitActionDescription.
+
+
+
+
+
+ Gets the implicit authorization for @action_description used for
+subjects in inactive sessions on a local console.
+
+
+ A value from the #PolkitImplicitAuthorization enumeration.
+
+
+
+
+ A #PolkitActionDescription.
+
+
+
+
+
+ Gets the message used for @action_description.
+
+
+ A string owned by @action_description. Do not free.
+
+
+
+
+ A #PolkitActionDescription.
+
+
+
+
+
+ Gets the vendor name for @action_description, if any.
+
+
+ A string owned by @action_description. Do not free.
+
+
+
+
+ A #PolkitActionDescription.
+
+
+
+
+
+ Gets the vendor URL for @action_description, if any.
+
+
+ A string owned by @action_description. Do not free.
+
+
+
+
+ A #PolkitActionDescription.
+
+
+
+
+
+
+
+
+
+ #PolkitAuthority is used for checking whether a given subject is
+authorized to perform a given action. Typically privileged system
+daemons or suid helpers will use this when handling requests from
+untrusted clients.
+
+User sessions can register an authentication agent with the
+authority. This is used for requests from untrusted clients where
+system policy requires that the user needs to acknowledge (through
+proving he is the user or the administrator) a given action. See
+#PolkitAgentListener and #PolkitAgentSession for details.
+
+
+
+
+ (deprecated)
+
+
+ value
+
+
+
+
+ Asynchronously gets a reference to the authority.
+
+This is an asynchronous failable function. When the result is
+ready, @callback will be invoked in the <link
+linkend="g-main-context-push-thread-default">thread-default main
+loop</link> of the thread you are calling this method from and you
+can use polkit_authority_get_finish() to get the result. See
+polkit_authority_get_sync() for the synchronous version.
+
+
+
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+ A #GAsyncReadyCallback to call when the request is satisfied.
+
+
+
+ The data to pass to @callback.
+
+
+
+
+
+ Finishes an operation started with polkit_authority_get_async().
+
+
+ A #PolkitAuthority. Free it with
+g_object_unref() when done with it.
+
+
+
+
+ A #GAsyncResult obtained from the #GAsyncReadyCallback passed to polkit_authority_get_async().
+
+
+
+
+
+ Synchronously gets a reference to the authority.
+
+This is a synchronous failable function - the calling thread is
+blocked until a reply is received. See polkit_authority_get_async()
+for the asynchronous version.
+
+
+ A #PolkitAuthority. Free it with
+g_object_unref() when done with it.
+
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+
+
+ Asynchronously provide response that @identity successfully authenticated
+for the authentication request identified by @cookie.
+
+This function is only used by the privileged bits of an authentication agent.
+It will fail if the caller is not sufficiently privileged (typically uid 0).
+
+When the operation is finished, @callback will be invoked in the
+<link linkend="g-main-context-push-thread-default">thread-default
+main loop</link> of the thread you are calling this method
+from. You can then call
+polkit_authority_authentication_agent_response_finish() to get the
+result of the operation.
+
+
+
+
+
+
+ A #PolkitAuthority.
+
+
+
+ The cookie passed to the authentication agent from the authority.
+
+
+
+ The identity that was authenticated.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+ A #GAsyncReadyCallback to call when the request is satisfied.
+
+
+
+ The data to pass to @callback.
+
+
+
+
+
+ Finishes providing response from an authentication agent.
+
+
+ %TRUE if @authority acknowledged the call, %FALSE if @error is set.
+
+
+
+
+ A #PolkitAuthority.
+
+
+
+ A #GAsyncResult obtained from the callback.
+
+
+
+
+
+ Provide response that @identity successfully authenticated for the
+authentication request identified by @cookie. See polkit_authority_authentication_agent_response()
+for limitations on who is allowed is to call this method.
+
+The calling thread is blocked until a reply is received. See
+polkit_authority_authentication_agent_response() for the
+asynchronous version.
+
+
+ %TRUE if @authority acknowledged the call, %FALSE if @error is set.
+
+
+
+
+ A #PolkitAuthority.
+
+
+
+ The cookie passed to the authentication agent from the authority.
+
+
+
+ The identity that was authenticated.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+
+
+ Asynchronously checks if @subject is authorized to perform the action represented
+by @action_id.
+
+Note that %POLKIT_CHECK_AUTHORIZATION_FLAGS_ALLOW_USER_INTERACTION
+<emphasis>SHOULD</emphasis> be passed <emphasis>ONLY</emphasis> if
+the event that triggered the authorization check is stemming from
+an user action, e.g. the user pressing a button or attaching a
+device.
+
+When the operation is finished, @callback will be invoked in the
+<link linkend="g-main-context-push-thread-default">thread-default
+main loop</link> of the thread you are calling this method
+from. You can then call
+polkit_authority_check_authorization_finish() to get the result of
+the operation.
+
+Known keys in @details include <literal>polkit.message</literal>
+and <literal>polkit.gettext_domain</literal> that can be used to
+override the message shown to the user. See the documentation for
+the <link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.CheckAuthorization">D-Bus method</link> for more details.
+
+If @details is non-empty then the request will fail with
+#POLKIT_ERROR_FAILED unless the process doing the check itsef is
+sufficiently authorized (e.g. running as uid 0).
+
+
+
+
+
+
+ A #PolkitAuthority.
+
+
+
+ A #PolkitSubject.
+
+
+
+ The action to check for.
+
+
+
+ Details about the action or %NULL.
+
+
+
+ A set of #PolkitCheckAuthorizationFlags.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+ A #GAsyncReadyCallback to call when the request is satisfied.
+
+
+
+ The data to pass to @callback.
+
+
+
+
+
+ Finishes checking if a subject is authorized for an action.
+
+
+ A #PolkitAuthorizationResult or %NULL if
+@error is set. Free with g_object_unref().
+
+
+
+
+ A #PolkitAuthority.
+
+
+
+ A #GAsyncResult obtained from the callback.
+
+
+
+
+
+ Checks if @subject is authorized to perform the action represented
+by @action_id.
+
+Note that %POLKIT_CHECK_AUTHORIZATION_FLAGS_ALLOW_USER_INTERACTION
+<emphasis>SHOULD</emphasis> be passed <emphasis>ONLY</emphasis> if
+the event that triggered the authorization check is stemming from
+an user action, e.g. the user pressing a button or attaching a
+device.
+
+Note the calling thread is blocked until a reply is received. You
+should therefore <emphasis>NEVER</emphasis> do this from a GUI
+thread or a daemon service thread when using the
+%POLKIT_CHECK_AUTHORIZATION_FLAGS_ALLOW_USER_INTERACTION flag. This
+is because it may potentially take minutes (or even hours) for the
+operation to complete because it involves waiting for the user to
+authenticate.
+
+Known keys in @details include <literal>polkit.message</literal>
+and <literal>polkit.gettext_domain</literal> that can be used to
+override the message shown to the user. See the documentation for
+the <link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.CheckAuthorization">D-Bus method</link> for more details.
+
+
+ A #PolkitAuthorizationResult or %NULL if @error is set. Free with g_object_unref().
+
+
+
+
+ A #PolkitAuthority.
+
+
+
+ A #PolkitSubject.
+
+
+
+ The action to check for.
+
+
+
+ Details about the action or %NULL.
+
+
+
+ A set of #PolkitCheckAuthorizationFlags.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+
+
+ Asynchronously retrieves all registered actions.
+
+When the operation is finished, @callback will be invoked in the
+<link linkend="g-main-context-push-thread-default">thread-default
+main loop</link> of the thread you are calling this method
+from. You can then call polkit_authority_enumerate_actions_finish()
+to get the result of the operation.
+
+
+
+
+
+
+ A #PolkitAuthority.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+ A #GAsyncReadyCallback to call when the request is satisfied.
+
+
+
+ The data to pass to @callback.
+
+
+
+
+
+ Finishes retrieving all registered actions.
+
+
+ A list of
+#PolkitActionDescription objects or %NULL if @error is set. The returned
+list should be freed with g_list_free() after each element have been freed
+with g_object_unref().
+
+
+
+
+
+
+ A #PolkitAuthority.
+
+
+
+ A #GAsyncResult obtained from the callback.
+
+
+
+
+
+ Synchronously retrieves all registered actions - the calling thread
+is blocked until a reply is received. See
+polkit_authority_enumerate_actions() for the asynchronous version.
+
+
+ A list of
+#PolkitActionDescription or %NULL if @error is set. The returned list should
+be freed with g_list_free() after each element have been freed with
+g_object_unref().
+
+
+
+
+
+
+ A #PolkitAuthority.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+
+
+ Asynchronously gets all temporary authorizations for @subject.
+
+When the operation is finished, @callback will be invoked in the
+<link linkend="g-main-context-push-thread-default">thread-default
+main loop</link> of the thread you are calling this method
+from. You can then call
+polkit_authority_enumerate_temporary_authorizations_finish() to get
+the result of the operation.
+
+
+
+
+
+
+ A #PolkitAuthority.
+
+
+
+ A #PolkitSubject, typically a #PolkitUnixSession.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+ A #GAsyncReadyCallback to call when the request is satisfied.
+
+
+
+ The data to pass to @callback.
+
+
+
+
+
+ Finishes retrieving all registered actions.
+
+
+ A
+list of #PolkitTemporaryAuthorization objects or %NULL if @error is set. The
+returned list should be freed with g_list_free() after each element have
+been freed with g_object_unref().
+
+
+
+
+
+
+ A #PolkitAuthority.
+
+
+
+ A #GAsyncResult obtained from the callback.
+
+
+
+
+
+ Synchronousky gets all temporary authorizations for @subject.
+
+The calling thread is blocked until a reply is received. See
+polkit_authority_enumerate_temporary_authorizations() for the
+asynchronous version.
+
+
+ A
+list of #PolkitTemporaryAuthorization objects or %NULL if @error is set. The
+returned list should be freed with g_list_free() after each element have
+been freed with g_object_unref().
+
+
+
+
+
+
+ A #PolkitAuthority.
+
+
+
+ A #PolkitSubject, typically a #PolkitUnixSession.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+
+
+ Gets the features supported by the authority backend.
+
+
+ Flags from #PolkitAuthorityFeatures.
+
+
+
+
+ A #PolkitAuthority.
+
+
+
+
+
+ Gets the name of the authority backend.
+
+
+ The name of the backend.
+
+
+
+
+ A #PolkitAuthority.
+
+
+
+
+
+ Gets the version of the authority backend.
+
+
+ The version string for the backend.
+
+
+
+
+ A #PolkitAuthority.
+
+
+
+
+
+ The unique name on the system message bus of the owner of the name
+<literal>org.freedesktop.PolicyKit1</literal> or %NULL if no-one
+currently owns the name. You may connect to the #GObject::notify
+signal to track changes to the #PolkitAuthority:owner property.
+
+
+ %NULL or a string that should be freed with g_free().
+
+
+
+
+ A #PolkitAuthority.
+
+
+
+
+
+ Asynchronously registers an authentication agent.
+
+Note that this should be called by the same effective UID which will be
+the real UID using the #PolkitAgentSession API or otherwise calling
+polkit_authority_authentication_agent_response().
+
+When the operation is finished, @callback will be invoked in the
+<link linkend="g-main-context-push-thread-default">thread-default
+main loop</link> of the thread you are calling this method
+from. You can then call
+polkit_authority_register_authentication_agent_finish() to get the
+result of the operation.
+
+
+
+
+
+
+ A #PolkitAuthority.
+
+
+
+ The subject the authentication agent is for, typically a #PolkitUnixSession object.
+
+
+
+ The locale of the authentication agent.
+
+
+
+ The object path for the authentication agent.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+ A #GAsyncReadyCallback to call when the request is satisfied.
+
+
+
+ The data to pass to @callback.
+
+
+
+
+
+ Finishes registering an authentication agent.
+
+
+ %TRUE if the authentication agent was successfully registered, %FALSE if @error is set.
+
+
+
+
+ A #PolkitAuthority.
+
+
+
+ A #GAsyncResult obtained from the callback.
+
+
+
+
+
+ Registers an authentication agent.
+
+Note that this should be called by the same effective UID which will be
+the real UID using the #PolkitAgentSession API or otherwise calling
+polkit_authority_authentication_agent_response().
+
+The calling thread is blocked
+until a reply is received. See
+polkit_authority_register_authentication_agent() for the
+asynchronous version.
+
+
+ %TRUE if the authentication agent was successfully registered, %FALSE if @error is set.
+
+
+
+
+ A #PolkitAuthority.
+
+
+
+ The subject the authentication agent is for, typically a #PolkitUnixSession object.
+
+
+
+ The locale of the authentication agent.
+
+
+
+ The object path for the authentication agent.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+
+
+ Asynchronously registers an authentication agent.
+
+Note that this should be called by the same effective UID which will be
+the real UID using the #PolkitAgentSession API or otherwise calling
+polkit_authority_authentication_agent_response().
+
+When the operation is finished, @callback will be invoked in the
+<link linkend="g-main-context-push-thread-default">thread-default
+main loop</link> of the thread you are calling this method
+from. You can then call
+polkit_authority_register_authentication_agent_with_options_finish() to get the
+result of the operation.
+
+
+
+
+
+
+ A #PolkitAuthority.
+
+
+
+ The subject the authentication agent is for, typically a #PolkitUnixSession object.
+
+
+
+ The locale of the authentication agent.
+
+
+
+ The object path for the authentication agent.
+
+
+
+ A #GVariant with options or %NULL.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+ A #GAsyncReadyCallback to call when the request is satisfied.
+
+
+
+ The data to pass to @callback.
+
+
+
+
+
+ Finishes registering an authentication agent.
+
+
+ %TRUE if the authentication agent was successfully registered, %FALSE if @error is set.
+
+
+
+
+ A #PolkitAuthority.
+
+
+
+ A #GAsyncResult obtained from the callback.
+
+
+
+
+
+ Registers an authentication agent.
+
+Note that this should be called by the same effective UID which will be
+the real UID using the #PolkitAgentSession API or otherwise calling
+polkit_authority_authentication_agent_response().
+
+The calling thread is blocked
+until a reply is received. See
+polkit_authority_register_authentication_agent_with_options() for the
+asynchronous version.
+
+
+ %TRUE if the authentication agent was successfully registered, %FALSE if @error is set.
+
+
+
+
+ A #PolkitAuthority.
+
+
+
+ The subject the authentication agent is for, typically a #PolkitUnixSession object.
+
+
+
+ The locale of the authentication agent.
+
+
+
+ The object path for the authentication agent.
+
+
+
+ A #GVariant with options or %NULL.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+
+
+ Asynchronously revoke a temporary authorization.
+
+When the operation is finished, @callback will be invoked in the
+<link linkend="g-main-context-push-thread-default">thread-default
+main loop</link> of the thread you are calling this method
+from. You can then call
+polkit_authority_revoke_temporary_authorization_by_id_finish() to
+get the result of the operation.
+
+
+
+
+
+
+ A #PolkitAuthority.
+
+
+
+ The opaque identifier for the temporary authorization.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+ A #GAsyncReadyCallback to call when the request is satisfied.
+
+
+
+ The data to pass to @callback.
+
+
+
+
+
+ Finishes revoking a temporary authorization by id.
+
+
+ %TRUE if the temporary authorization was revoked, %FALSE if error is set.
+
+
+
+
+ A #PolkitAuthority.
+
+
+
+ A #GAsyncResult obtained from the callback.
+
+
+
+
+
+ Synchronously revokes a temporary authorization.
+
+The calling thread is blocked until a reply is received. See
+polkit_authority_revoke_temporary_authorization_by_id() for the
+asynchronous version.
+
+
+ %TRUE if the temporary authorization was revoked, %FALSE if error is set.
+
+
+
+
+ A #PolkitAuthority.
+
+
+
+ The opaque identifier for the temporary authorization.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+
+
+ Asynchronously revokes all temporary authorizations for @subject.
+
+When the operation is finished, @callback will be invoked in the
+<link linkend="g-main-context-push-thread-default">thread-default
+main loop</link> of the thread you are calling this method
+from. You can then call
+polkit_authority_revoke_temporary_authorizations_finish() to get
+the result of the operation.
+
+
+
+
+
+
+ A #PolkitAuthority.
+
+
+
+ The subject to revoke authorizations from, typically a #PolkitUnixSession.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+ A #GAsyncReadyCallback to call when the request is satisfied.
+
+
+
+ The data to pass to @callback.
+
+
+
+
+
+ Finishes revoking temporary authorizations.
+
+
+ %TRUE if all the temporary authorizations was revoked, %FALSE if error is set.
+
+
+
+
+ A #PolkitAuthority.
+
+
+
+ A #GAsyncResult obtained from the callback.
+
+
+
+
+
+ Synchronously revokes all temporary authorization from @subject.
+
+The calling thread is blocked until a reply is received. See
+polkit_authority_revoke_temporary_authorizations() for the
+asynchronous version.
+
+
+ %TRUE if the temporary authorization was revoked, %FALSE if error is set.
+
+
+
+
+ A #PolkitAuthority.
+
+
+
+ The subject to revoke authorizations from, typically a #PolkitUnixSession.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+
+
+ Asynchronously unregisters an authentication agent.
+
+When the operation is finished, @callback will be invoked in the
+<link linkend="g-main-context-push-thread-default">thread-default
+main loop</link> of the thread you are calling this method
+from. You can then call
+polkit_authority_unregister_authentication_agent_finish() to get
+the result of the operation.
+
+
+
+
+
+
+ A #PolkitAuthority.
+
+
+
+ The subject the authentication agent is for, typically a #PolkitUnixSession object.
+
+
+
+ The object path for the authentication agent.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+ A #GAsyncReadyCallback to call when the request is satisfied.
+
+
+
+ The data to pass to @callback.
+
+
+
+
+
+ Finishes unregistering an authentication agent.
+
+
+ %TRUE if the authentication agent was successfully unregistered, %FALSE if @error is set.
+
+
+
+
+ A #PolkitAuthority.
+
+
+
+ A #GAsyncResult obtained from the callback.
+
+
+
+
+
+ Unregisters an authentication agent. The calling thread is blocked
+until a reply is received. See
+polkit_authority_unregister_authentication_agent() for the
+asynchronous version.
+
+
+ %TRUE if the authentication agent was successfully unregistered, %FALSE if @error is set.
+
+
+
+
+ A #PolkitAuthority.
+
+
+
+ The subject the authentication agent is for, typically a #PolkitUnixSession object.
+
+
+
+ The object path for the authentication agent.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+
+
+ The features of the currently used Authority backend.
+
+
+
+ The name of the currently used Authority backend.
+
+
+
+
+
+
+ The unique name of the owner of the org.freedesktop.PolicyKit1
+D-Bus service or %NULL if there is no owner. Connect to the
+#GObject::notify signal to track changes to this property.
+
+
+
+ Emitted when actions and/or authorizations change
+
+
+
+
+
+
+
+
+
+ Flags describing features supported by the Authority implementation.
+
+ No flags set.
+
+
+ The authority supports temporary authorizations
+that can be obtained through authentication.
+
+
+
+ This class represents the result you get when checking for an authorization.
+
+
+ Creates a new #PolkitAuthorizationResult object.
+
+
+ A #PolkitAuthorizationResult object. Free with g_object_unref().
+
+
+
+
+ Whether the subject is authorized.
+
+
+
+ Whether the subject is authorized if more
+information is provided. Must be %FALSE unless @is_authorized is
+%TRUE.
+
+
+
+ Must be %NULL unless @is_authorized is %TRUE
+
+
+
+
+
+ Gets the details about the result.
+
+
+ A #PolkitDetails object or
+%NULL if there are no details. This object is owned by @result and
+should not be freed by the caller.
+
+
+
+
+ A #PolkitAuthorizationResult.
+
+
+
+
+
+ Gets whether the authentication request was dismissed / canceled by the user.
+
+This method simply reads the value of the key/value pair in @details with the
+key <literal>polkit.dismissed</literal>.
+
+
+ %TRUE if the authentication request was dismissed, %FALSE otherwise.
+
+
+
+
+ A #PolkitAuthorizationResult.
+
+
+
+
+
+ Gets whether the subject is authorized.
+
+If the authorization is temporary, use polkit_authorization_result_get_temporary_authorization_id()
+to get the opaque identifier for the temporary authorization.
+
+
+ Whether the subject is authorized.
+
+
+
+
+ A #PolkitAuthorizationResult.
+
+
+
+
+
+ Gets whether the subject is authorized if more information is provided.
+
+
+ Whether the subject is authorized if more information is provided.
+
+
+
+
+ A #PolkitAuthorizationResult.
+
+
+
+
+
+ Gets whether authorization is retained if obtained via authentication. This can only be the case
+if @result indicates that the subject can obtain authorization after challenge (cf.
+polkit_authorization_result_get_is_challenge()), e.g. when the subject is not already authorized (cf.
+polkit_authorization_result_get_is_authorized()).
+
+If the subject is already authorized, use polkit_authorization_result_get_temporary_authorization_id()
+to check if the authorization is temporary.
+
+This method simply reads the value of the key/value pair in @details with the
+key <literal>polkit.retains_authorization_after_challenge</literal>.
+
+
+ %TRUE if the authorization is or will be temporary.
+
+
+
+
+ A #PolkitAuthorizationResult.
+
+
+
+
+
+ Gets the opaque temporary authorization id for @result if @result indicates the
+subject is authorized and the authorization is temporary rather than one-shot or
+permanent.
+
+You can use this string together with the result from
+polkit_authority_enumerate_temporary_authorizations() to get more details
+about the temporary authorization or polkit_authority_revoke_temporary_authorization_by_id()
+to revoke the temporary authorization.
+
+If the subject is not authorized, use polkit_authorization_result_get_retains_authorization()
+to check if the authorization will be retained if obtained via authentication.
+
+This method simply reads the value of the key/value pair in @details with the
+key <literal>polkit.temporary_authorization_id</literal>.
+
+
+ The opaque temporary authorization id for
+ @result or %NULL if not available. Do not free this string, it
+ is owned by @result.
+
+
+
+
+ A #PolkitAuthorizationResult.
+
+
+
+
+
+
+
+
+
+ Possible flags when checking authorizations.
+
+ No flags set.
+
+
+ If the subject can obtain the authorization
+through authentication, and an authentication agent is available, then attempt to do so. Note, this
+means that the method used for checking authorization is likely to block for a long time.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An object used for passing details around.
+
+
+ Creates a new #PolkitDetails object.
+
+
+ A #PolkitDetails object. Free with g_object_unref().
+
+
+
+
+ Gets a list of all keys on @details.
+
+
+ %NULL if there are no keys
+otherwise an array of strings that should be freed with
+g_strfreev().
+
+
+
+
+
+
+ A #PolkitDetails.
+
+
+
+
+
+ Inserts a copy of @key and @value on @details.
+
+If @value is %NULL, the key will be removed.
+
+
+
+
+
+
+ A #PolkitDetails.
+
+
+
+ A key.
+
+
+
+ A value.
+
+
+
+
+
+ Gets the value for @key on @details.
+
+
+ %NULL if there is no value for @key, otherwise a string owned by @details.
+
+
+
+
+ A #PolkitDetails.
+
+
+
+ A key.
+
+
+
+
+
+
+
+
+
+ Possible error when using PolicyKit.
+
+ The operation failed.
+
+
+ The operation was cancelled.
+
+
+ Operation is not supported.
+
+
+ Not authorized to perform operation.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #PolkitIdentity is an abstract type for representing one or more
+identities.
+
+
+ Creates an object from @str that implements the #PolkitIdentity
+interface.
+
+
+ A #PolkitIdentity or %NULL
+if @error is set. Free with g_object_unref().
+
+
+
+
+ A string obtained from polkit_identity_to_string().
+
+
+
+
+
+ Checks if @a and @b are equal, ie. represent the same identity.
+
+This function can be used in e.g. g_hash_table_new().
+
+
+ %TRUE if @a and @b are equal, %FALSE otherwise.
+
+
+
+
+ A #PolkitIdentity.
+
+
+
+ A #PolkitIdentity.
+
+
+
+
+
+ Gets a hash code for @identity that can be used with e.g. g_hash_table_new().
+
+
+ A hash code.
+
+
+
+
+ A #PolkitIdentity.
+
+
+
+
+
+ Serializes @identity to a string that can be used in
+polkit_identity_from_string().
+
+
+ A string representing @identity. Free with g_free().
+
+
+
+
+ A #PolkitIdentity.
+
+
+
+
+
+ Checks if @a and @b are equal, ie. represent the same identity.
+
+This function can be used in e.g. g_hash_table_new().
+
+
+ %TRUE if @a and @b are equal, %FALSE otherwise.
+
+
+
+
+ A #PolkitIdentity.
+
+
+
+ A #PolkitIdentity.
+
+
+
+
+
+ Gets a hash code for @identity that can be used with e.g. g_hash_table_new().
+
+
+ A hash code.
+
+
+
+
+ A #PolkitIdentity.
+
+
+
+
+
+ Serializes @identity to a string that can be used in
+polkit_identity_from_string().
+
+
+ A string representing @identity. Free with g_free().
+
+
+
+
+ A #PolkitIdentity.
+
+
+
+
+
+
+ An interface for identities.
+
+
+ The parent interface.
+
+
+
+
+
+
+ A hash code.
+
+
+
+
+ A #PolkitIdentity.
+
+
+
+
+
+
+
+
+
+ %TRUE if @a and @b are equal, %FALSE otherwise.
+
+
+
+
+ A #PolkitIdentity.
+
+
+
+ A #PolkitIdentity.
+
+
+
+
+
+
+
+
+
+ A string representing @identity. Free with g_free().
+
+
+
+
+ A #PolkitIdentity.
+
+
+
+
+
+
+
+ Possible implicit authorizations.
+
+ Unknown whether the subject is authorized, never returned in any public API.
+
+
+ Subject is not authorized.
+
+
+ Authentication is required.
+
+
+ Authentication as an administrator is required.
+
+
+ Authentication is required. If the authorization is obtained, it is retained.
+
+
+ Authentication as an administrator is required. If the authorization is obtained, it is retained.
+
+
+ The subject is authorized
+
+
+
+
+
+
+
+
+ A string
+
+
+
+ The location of the resulting deserialization
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #PolkitPermission is a #GPermission implementation. It can be used
+with e.g. #GtkLockButton. See the #GPermission documentation for
+more information.
+
+
+
+ Finishes an operation started with polkit_permission_new().
+
+
+ A #GPermission or %NULL if @error is set.
+
+
+
+
+ A #GAsyncResult obtained from the #GAsyncReadyCallback passed to polkit_permission_new().
+
+
+
+
+
+ Creates a #GPermission instance for the PolicyKit action
+@action_id.
+
+This is a synchronous failable constructor. See
+polkit_permission_new() for the asynchronous version.
+
+
+ A #GPermission or %NULL if @error is set.
+
+
+
+
+ The PolicyKit action identifier.
+
+
+
+ A #PolkitSubject or %NULL for the current process.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+
+
+ Creates a #GPermission instance for the PolicyKit action
+@action_id.
+
+When the operation is finished, @callback will be invoked. You can
+then call polkit_permission_new_finish() to get the result of the
+operation.
+
+This is a asynchronous failable constructor. See
+polkit_permission_new_sync() for the synchronous version.
+
+
+
+
+
+
+ The PolicyKit action identifier.
+
+
+
+ A #PolkitSubject or %NULL for the current process.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+ A #GAsyncReadyCallback to call when the request is satisfied.
+
+
+
+ The data to pass to @callback.
+
+
+
+
+
+ Gets the PolicyKit action identifier used for @permission.
+
+
+ A string owned by @permission. Do not free.
+
+
+
+
+ A #PolkitPermission.
+
+
+
+
+
+ Gets the subject used for @permission.
+
+
+ An object owned by @permission. Do not free.
+
+
+
+
+ A #PolkitPermission.
+
+
+
+
+
+ The action identifier to use for the permission.
+
+
+
+ The #PolkitSubject to use for the permission. If not set during
+construction, it will be set to match the current process.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #PolkitSubject is an abstract type for representing one or more
+processes.
+
+
+ Creates an object from @str that implements the #PolkitSubject
+interface.
+
+
+ A #PolkitSubject or %NULL if @error is
+set. Free with g_object_unref().
+
+
+
+
+ A string obtained from polkit_subject_to_string().
+
+
+
+
+
+ Checks if @a and @b are equal, ie. represent the same subject.
+However, avoid calling polkit_subject_equal() to compare two processes;
+for more information see the `PolkitUnixProcess` documentation.
+
+This function can be used in e.g. g_hash_table_new().
+
+
+ %TRUE if @a and @b are equal, %FALSE otherwise.
+
+
+
+
+ A #PolkitSubject.
+
+
+
+ A #PolkitSubject.
+
+
+
+
+
+ Asynchronously checks if @subject exists.
+
+When the operation is finished, @callback will be invoked in the
+<link linkend="g-main-context-push-thread-default">thread-default
+main loop</link> of the thread you are calling this method
+from. You can then call polkit_subject_exists_finish() to get the
+result of the operation.
+
+
+
+
+
+
+ A #PolkitSubject.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+ A #GAsyncReadyCallback to call when the request is satisfied
+
+
+
+ The data to pass to @callback.
+
+
+
+
+
+ Finishes checking whether a subject exists.
+
+
+ %TRUE if the subject exists, %FALSE if not or @error is set.
+
+
+
+
+ A #PolkitSubject.
+
+
+
+ A #GAsyncResult obtained from the #GAsyncReadyCallback passed to polkit_subject_exists().
+
+
+
+
+
+ Checks if @subject exists.
+
+This is a synchronous blocking call - the calling thread is blocked
+until a reply is received. See polkit_subject_exists() for the
+asynchronous version.
+
+
+ %TRUE if the subject exists, %FALSE if not or @error is set.
+
+
+
+
+ A #PolkitSubject.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+
+
+ Gets a hash code for @subject that can be used with e.g. g_hash_table_new().
+
+
+ A hash code.
+
+
+
+
+ A #PolkitSubject.
+
+
+
+
+
+ Serializes @subject to a string that can be used in
+polkit_subject_from_string().
+
+
+ A string representing @subject. Free with g_free().
+
+
+
+
+ A #PolkitSubject.
+
+
+
+
+
+ Checks if @a and @b are equal, ie. represent the same subject.
+However, avoid calling polkit_subject_equal() to compare two processes;
+for more information see the `PolkitUnixProcess` documentation.
+
+This function can be used in e.g. g_hash_table_new().
+
+
+ %TRUE if @a and @b are equal, %FALSE otherwise.
+
+
+
+
+ A #PolkitSubject.
+
+
+
+ A #PolkitSubject.
+
+
+
+
+
+ Asynchronously checks if @subject exists.
+
+When the operation is finished, @callback will be invoked in the
+<link linkend="g-main-context-push-thread-default">thread-default
+main loop</link> of the thread you are calling this method
+from. You can then call polkit_subject_exists_finish() to get the
+result of the operation.
+
+
+
+
+
+
+ A #PolkitSubject.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+ A #GAsyncReadyCallback to call when the request is satisfied
+
+
+
+ The data to pass to @callback.
+
+
+
+
+
+ Finishes checking whether a subject exists.
+
+
+ %TRUE if the subject exists, %FALSE if not or @error is set.
+
+
+
+
+ A #PolkitSubject.
+
+
+
+ A #GAsyncResult obtained from the #GAsyncReadyCallback passed to polkit_subject_exists().
+
+
+
+
+
+ Checks if @subject exists.
+
+This is a synchronous blocking call - the calling thread is blocked
+until a reply is received. See polkit_subject_exists() for the
+asynchronous version.
+
+
+ %TRUE if the subject exists, %FALSE if not or @error is set.
+
+
+
+
+ A #PolkitSubject.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+
+
+ Gets a hash code for @subject that can be used with e.g. g_hash_table_new().
+
+
+ A hash code.
+
+
+
+
+ A #PolkitSubject.
+
+
+
+
+
+ Serializes @subject to a string that can be used in
+polkit_subject_from_string().
+
+
+ A string representing @subject. Free with g_free().
+
+
+
+
+ A #PolkitSubject.
+
+
+
+
+
+
+ An interface for subjects.
+
+
+ The parent interface.
+
+
+
+
+
+
+ A hash code.
+
+
+
+
+ A #PolkitSubject.
+
+
+
+
+
+
+
+
+
+ %TRUE if @a and @b are equal, %FALSE otherwise.
+
+
+
+
+ A #PolkitSubject.
+
+
+
+ A #PolkitSubject.
+
+
+
+
+
+
+
+
+
+ A string representing @subject. Free with g_free().
+
+
+
+
+ A #PolkitSubject.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A #PolkitSubject.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+ A #GAsyncReadyCallback to call when the request is satisfied
+
+
+
+ The data to pass to @callback.
+
+
+
+
+
+
+
+
+
+ %TRUE if the subject exists, %FALSE if not or @error is set.
+
+
+
+
+ A #PolkitSubject.
+
+
+
+ A #GAsyncResult obtained from the #GAsyncReadyCallback passed to polkit_subject_exists().
+
+
+
+
+
+
+
+
+
+ %TRUE if the subject exists, %FALSE if not or @error is set.
+
+
+
+
+ A #PolkitSubject.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+
+
+
+
+ An object that represents a process owning a unique name on the system bus.
+
+
+
+ Creates a new #PolkitSystemBusName for @name.
+
+
+ A #PolkitSystemBusName. Free with g_object_unref().
+
+
+
+
+ A unique system bus name.
+
+
+
+
+
+ Gets the unique system bus name for @system_bus_name.
+
+
+ The unique system bus name for @system_bus_name. Do not
+free, this string is owned by @system_bus_name.
+
+
+
+
+ A #PolkitSystemBusName.
+
+
+
+
+
+ Synchronously gets a #PolkitUnixProcess object for @system_bus_name
+- the calling thread is blocked until a reply is received.
+
+
+ A #PolkitUnixProcess object or %NULL if @error is set.
+
+
+
+
+ A #PolkitSystemBusName.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+
+
+ Synchronously gets a #PolkitUnixUser object for @system_bus_name;
+the calling thread is blocked until a reply is received.
+
+
+ A #PolkitUnixUser object or %NULL if @error is set.
+
+
+
+
+ A #PolkitSystemBusName.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+
+
+ Sets the unique system bus name for @system_bus_name.
+
+
+
+
+
+
+ A #PolkitSystemBusName.
+
+
+
+ A unique system bus name.
+
+
+
+
+
+ The unique name on the system message bus.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Object used to describe a temporary authorization.
+
+
+ Gets the action that @authorization is for.
+
+
+ A string owned by @authorization. Do not free.
+
+
+
+
+ A #PolkitTemporaryAuthorization.
+
+
+
+
+
+ Gets the opaque identifier for @authorization.
+
+
+ A string owned by @authorization. Do not free.
+
+
+
+
+ A #PolkitTemporaryAuthorization.
+
+
+
+
+
+ Gets the subject that @authorization is for.
+
+
+ A #PolkitSubject, free with g_object_unref().
+
+
+
+
+ A #PolkitTemporaryAuthorization.
+
+
+
+
+
+ Gets the time when @authorization will expire.
+
+(Note that the PolicyKit daemon is using monotonic time internally
+so the returned value may change if system time changes.)
+
+
+ Seconds since the Epoch Jan 1. 1970, 0:00 UTC.
+
+
+
+
+ A #PolkitTemporaryAuthorization.
+
+
+
+
+
+ Gets the time when @authorization was obtained.
+
+(Note that the PolicyKit daemon is using monotonic time internally
+so the returned value may change if system time changes.)
+
+
+ Seconds since the Epoch Jan 1. 1970, 0:00 UTC.
+
+
+
+
+ A #PolkitTemporaryAuthorization.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An object representing a group identity on a UNIX system.
+
+
+
+ Creates a new #PolkitUnixGroup object for @gid.
+
+
+ A #PolkitUnixGroup object. Free with g_object_unref().
+
+
+
+
+ A UNIX group id.
+
+
+
+
+
+ Creates a new #PolkitUnixGroup object for a group with the group name
+@name.
+
+
+ A #PolkitUnixGroup object or %NULL if @error
+is set.
+
+
+
+
+ A UNIX group name.
+
+
+
+
+
+ Gets the UNIX group id for @group.
+
+
+ A UNIX group id.
+
+
+
+
+ A #PolkitUnixGroup.
+
+
+
+
+
+ Sets @gid for @group.
+
+
+
+
+
+
+ A #PolkitUnixGroup.
+
+
+
+ A UNIX group id.
+
+
+
+
+
+ The UNIX group id.
+
+
+
+
+
+
+
+ An object representing a netgroup identity on a UNIX system.
+
+
+
+ Creates a new #PolkitUnixNetgroup object for @name.
+
+
+ A #PolkitUnixNetgroup object. Free with g_object_unref().
+
+
+
+
+ A netgroup name.
+
+
+
+
+
+ Gets the netgroup name for @group.
+
+
+ A netgroup name string.
+
+
+
+
+ A #PolkitUnixNetgroup.
+
+
+
+
+
+ Sets @name for @group.
+
+
+
+
+
+
+ A #PolkitUnixNetgroup.
+
+
+
+ A netgroup name.
+
+
+
+
+
+ The NIS netgroup name.
+
+
+
+
+
+
+
+ An object for representing a UNIX process. In order to be reliable and
+race-free, this requires support for PID File Descriptors in the kernel,
+dbus-daemon/broker and systemd. With this functionality, we can reliably
+track processes without risking PID reuse and race conditions, and compare
+them.
+
+NOTE: If PID FDs are not available, this object will fall back to using
+PIDs, and this designed is now known broken; a mechanism to exploit a delay
+in start time in the Linux kernel was identified. Avoid
+calling polkit_subject_equal() to compare two processes.
+
+To uniquely identify processes, both the process id and the start
+time of the process (a monotonic increasing value representing the
+time since the kernel was started) is used.
+
+NOTE: This object stores, and provides access to, the real UID of the
+process. That value can change over time (with set*uid*(2) and exec*(2)).
+Checks whether an operation is allowed need to take care to use the UID
+value as of the time when the operation was made (or, following the open()
+privilege check model, when the connection making the operation possible
+was initiated). That is usually done by initializing this with
+polkit_unix_process_new_for_owner() with trusted data.
+
+
+
+ Creates a new #PolkitUnixProcess for @pid.
+
+The uid and start time of the process will be looked up in using
+e.g. the <filename>/proc</filename> filesystem depending on the
+platform in use.
+
+
+ A #PolkitSubject. Free with g_object_unref().
+
+
+
+
+ The process id.
+
+
+
+
+
+ Creates a new #PolkitUnixProcess object for @pid, @start_time and @uid.
+
+
+ A #PolkitSubject. Free with g_object_unref().
+
+
+
+
+ The process id.
+
+
+
+ The start time for @pid or 0 to look it up in e.g. <filename>/proc</filename>.
+
+
+
+ The (real, not effective) uid of the owner of @pid or -1 to look it up in e.g. <filename>/proc</filename>.
+
+
+
+
+
+ Creates a new #PolkitUnixProcess object for @pid and @start_time.
+
+The uid of the process will be looked up in using e.g. the
+<filename>/proc</filename> filesystem depending on the platform in
+use.
+
+
+ A #PolkitSubject. Free with g_object_unref().
+
+
+
+
+ The process id.
+
+
+
+ The start time for @pid.
+
+
+
+
+
+ Creates a new #PolkitUnixProcess object for @pidfd and @uid.
+
+
+ A #PolkitSubject. Free with g_object_unref().
+
+
+
+
+ The process id file descriptor.
+
+
+
+ The (real, not effective) uid of the owner of @pid or -1 to look it up in e.g. <filename>/proc</filename>.
+
+
+
+ The (real, not effective) gids of the owner of @pid or %NULL.
+
+
+
+
+
+
+
+ Gets the group ids for @process. Note that this is the real group-ids,
+not the effective group-ids.
+
+
+ a #GArray
+ of #gid_t containing the group ids for @process or NULL if unknown,
+ as a new reference to the array, caller must deref it when done.
+
+
+
+
+
+
+
+
+ A #PolkitUnixProcess.
+
+
+
+
+
+ (deprecated)
+
+
+
+
+
+
+ A #PolkitUnixProcess.
+
+
+
+
+
+ Gets the process id for @process.
+
+
+ The process id for @process.
+
+
+
+
+ A #PolkitUnixProcess.
+
+
+
+
+
+ Gets the process id file descriptor for @process.
+
+
+ The process id file descriptor for @process.
+
+
+
+
+ A #PolkitUnixProcess.
+
+
+
+
+
+ Checks if the process id file descriptor for @process is safe
+or if it was opened locally and thus vulnerable to reuse.
+
+
+ TRUE or FALSE.
+
+
+
+
+ A #PolkitUnixProcess.
+
+
+
+
+
+ Gets the start time of @process.
+
+
+ The start time of @process.
+
+
+
+
+ A #PolkitUnixProcess.
+
+
+
+
+
+ Gets the user id for @process. Note that this is the real user-id,
+not the effective user-id.
+
+NOTE: The UID may change over time, so the returned value may not match the
+current state of the underlying process; or the UID may have been set by
+polkit_unix_process_new_for_owner() or polkit_unix_process_set_uid(),
+in which case it may not correspond to the actual UID of the referenced
+process at all (at any point in time).
+
+
+ The user id for @process or -1 if unknown.
+
+
+
+
+ A #PolkitUnixProcess.
+
+
+
+
+
+ Sets the (real, not effective) group ids for @process.
+
+
+
+
+
+
+ A #PolkitUnixProcess.
+
+
+
+ A #GList of #gid_t containing the group
+ ids to set for @process or NULL to unset them.
+ A reference to @gids is taken.
+
+
+
+
+
+
+
+
+
+ Sets @pid for @process.
+
+
+
+
+
+
+ A #PolkitUnixProcess.
+
+
+
+ A process id.
+
+
+
+
+
+ Sets @pidfd for @process.
+
+
+
+
+
+
+ A #PolkitUnixProcess.
+
+
+
+ A process id file descriptor.
+
+
+
+
+
+ Set the start time of @process.
+
+
+
+
+
+
+ A #PolkitUnixProcess.
+
+
+
+ The start time for @pid.
+
+
+
+
+
+ Sets the (real, not effective) user id for @process.
+
+
+
+
+
+
+ A #PolkitUnixProcess.
+
+
+
+ The user id to set for @process or -1 to unset it.
+
+
+
+
+
+ The UNIX group ids of the process.
+
+
+
+
+
+ The UNIX process id.
+
+
+
+ The UNIX process id file descriptor.
+
+
+
+
+
+
+ The start time of the process.
+
+
+
+ The UNIX user id of the process or -1 if unknown.
+
+Note that this is the real user-id, not the effective user-id.
+
+
+
+
+
+
+
+ An object that represents an user session.
+
+The session id is an opaque string obtained from ConsoleKit.
+
+
+
+
+
+ Creates a new #PolkitUnixSession for @session_id.
+
+
+ A #PolkitUnixSession. Free with g_object_unref().
+
+
+
+
+ The session id.
+
+
+
+
+
+ Asynchronously creates a new #PolkitUnixSession object for the
+process with process id @pid.
+
+When the operation is finished, @callback will be invoked in the
+<link linkend="g-main-context-push-thread-default">thread-default
+main loop</link> of the thread you are calling this method
+from. You can then call
+polkit_unix_session_new_for_process_finish() to get the result of
+the operation.
+
+This method constructs the object asynchronously, for the synchronous and blocking version
+use polkit_unix_session_new_for_process_sync().
+
+
+
+
+
+
+ The process id of the process to get the session for.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+ A #GAsyncReadyCallback to call when the request is satisfied
+
+
+
+ The data to pass to @callback.
+
+
+
+
+
+ Finishes constructing a #PolkitSubject for a process id.
+
+
+ A #PolkitUnixSession for the @pid passed to
+ polkit_unix_session_new_for_process() or %NULL if @error is
+ set. Free with g_object_unref().
+
+
+
+
+ A #GAsyncResult obtained from the #GAsyncReadyCallback passed to polkit_unix_session_new_for_process().
+
+
+
+
+
+ Creates a new #PolkitUnixSession for the process with process id @pid.
+
+This is a synchronous call - the calling thread is blocked until a
+reply is received. For the asynchronous version, see
+polkit_unix_session_new_for_process().
+
+
+ A #PolkitUnixSession for
+@pid or %NULL if @error is set. Free with g_object_unref().
+
+
+
+
+ The process id of the process to get the session for.
+
+
+
+ A #GCancellable or %NULL.
+
+
+
+
+
+ Gets the session id for @session.
+
+
+ The session id for @session. Do not free this string, it
+is owned by @session.
+
+
+
+
+ A #PolkitUnixSession.
+
+
+
+
+
+ Sets the session id for @session to @session_id.
+
+
+
+
+
+
+ A #PolkitUnixSession.
+
+
+
+ The session id.
+
+
+
+
+
+ The UNIX process id to look up the session.
+
+
+
+ The UNIX session id.
+
+
+
+
+
+
+
+ An object representing a user identity on a UNIX system.
+
+
+
+ Creates a new #PolkitUnixUser object for @uid.
+
+
+ A #PolkitUnixUser object. Free with g_object_unref().
+
+
+
+
+ A UNIX user id.
+
+
+
+
+
+ Creates a new #PolkitUnixUser object for a user with the user name
+@name.
+
+
+ A #PolkitUnixUser object or %NULL if @error is set.
+
+
+
+
+ A UNIX user name.
+
+
+
+
+
+ Get the user's name.
+
+
+ User name string or %NULL if user uid not found.
+
+
+
+
+ A #PolkitUnixUser.
+
+
+
+
+
+ Gets the UNIX user id for @user.
+
+
+ A UNIX user id.
+
+
+
+
+ A #PolkitUnixUser.
+
+
+
+
+
+ Sets @uid for @user.
+
+
+
+
+
+
+ A #PolkitUnixUser.
+
+
+
+ A UNIX user id.
+
+
+
+
+
+ The UNIX user id.
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates an object from @str that implements the #PolkitIdentity
+interface.
+
+
+ A #PolkitIdentity or %NULL
+if @error is set. Free with g_object_unref().
+
+
+
+
+ A string obtained from polkit_identity_to_string().
+
+
+
+
+
+
+
+
+
+
+
+ A string
+
+
+
+ The location of the resulting deserialization
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Error codes.
+
+
+ Creates an object from @str that implements the #PolkitSubject
+interface.
+
+
+ A #PolkitSubject or %NULL if @error is
+set. Free with g_object_unref().
+
+
+
+
+ A string obtained from polkit_subject_to_string().
+
+
+
+
+
+
diff --git a/libphosh-rs/README.md b/libphosh-rs/README.md
new file mode 100644
index 000000000..e83513120
--- /dev/null
+++ b/libphosh-rs/README.md
@@ -0,0 +1,55 @@
+# libphosh-rs
+
+The Rust bindings of [phosh][phosh]
+
+## Development
+
+You will need the following installed:
+
+ * Rust
+ * `xmlstarlet`
+ * Meson
+ * All [Phosh][phosh-deps] build dependencies
+
+### Updating the introspection XML
+
+If the upstream libphosh introspection `Phosh-0.gir` XML has changed, then run the following:
+
+```
+make Phosh-0.gir
+```
+
+The `main` branch of [Phosh][phosh] will be fetched as a Meson subproject, the introspection XML will be regenerated, and the result will be copied to `./Phosh-0.gir`. You should commit the changes to this repo.
+
+### Updating the bindings
+
+If you've updated the introspection XML, or made changes to the `Gir.toml` files, then run:
+
+```
+make
+```
+
+Note that you should *not* commit the changes that were made to `NM-1.0.gir` or `Phosh-0.gir`.
+
+### Examples
+
+There's two examples demoing the libphosh-rs usage:
+
+- [hello-world.rs](./libphosh/examples/hello-world.rs) has the minimum code to spawn a shell and can be run like
+
+```sh
+ WLR_BACKENDS=wayland phoc -E target/debug/examples/hello-world
+```
+
+- [custom-shell-and-lockscreen.rs](./libphosh/examples/custom-shell-and-lockscreen.rs) shows how to override the shell and lockscreen classes and can be run like
+
+```sh
+ WLR_BACKENDS=wayland phoc -E target/debug/examples/custom-shell-and-lockscreen
+```
+
+### Documentation
+
+API documentation is at
+
+[phosh]: https://gitlab.gnome.org/World/Phosh/phosh
+[phosh-deps]: https://gitlab.gnome.org/World/Phosh/phosh#dependencies
diff --git a/libphosh-rs/build-doc.sh b/libphosh-rs/build-doc.sh
new file mode 100755
index 000000000..f6acf8fe6
--- /dev/null
+++ b/libphosh-rs/build-doc.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+set -ex
+
+git checkout -f *.gir
+./fix.sh
+
+[ -x ~/.cargo/bin/rustdoc-stripper ] || cargo install rustdoc-stripper
+
+# Use downloaded rustdoc-stripper
+export PATH=$HOME/.cargo/bin:$PATH
+
+[ -n "$CI_COMMIT_BRANCH" ] || export CI_COMMIT_BRANCH='main'
+if [ -z "$CI_PROJECT_URL" ]; then
+ echo "Not running in CI, faking project URL"
+ export CI_PROJECT_URL='https://example.com'
+fi
+
+./generator.py --embed-docs
+eval $(./gir-rustdoc.py --branch=$CI_COMMIT_BRANCH pre-docs)
+cargo doc --all-features --no-deps
+./gir-rustdoc.py html-index
diff --git a/libphosh-rs/fix.sh b/libphosh-rs/fix.sh
new file mode 100755
index 000000000..35636e7f1
--- /dev/null
+++ b/libphosh-rs/fix.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+set -x -e
+
+# MM's doc-version trips up ./gir
+xmlstarlet ed -L \
+ -d '///_:doc-version' \
+ NM-1.0.gir
+
+# NM uses uint32 instead of guint32 in one place:
+xmlstarlet ed -L \
+ -i '//_:interface[@name="Connection"]/_:method[@name="diff"]//_:parameter[@name="out_settings"]//_:type[@c:type="uint32"]' -t 'attr' -n 'name' -v 'guint32' \
+ NM-1.0.gir
+
+# Nuke gcr rather than fixing Gck and don't care about GnomeBluetooth
+# Drop doc:format (see https://github.com/gtk-rs/gir/issues/1642)
+xmlstarlet ed -L \
+ -d '///_:include[@name="Gcr"]' \
+ -d '///_:include[@name="GnomeBluetooth"]' \
+ -d '///doc:format[@name="unknown"]' \
+ Phosh-0.gir
diff --git a/libphosh-rs/generator.py b/libphosh-rs/generator.py
new file mode 100755
index 000000000..9a09a6d48
--- /dev/null
+++ b/libphosh-rs/generator.py
@@ -0,0 +1,254 @@
+#!/usr/bin/env python3
+
+from pathlib import Path
+import argparse
+import subprocess
+import sys
+import asyncio
+
+DEFAULT_GIR_FILES_DIRECTORY = Path("./gir-files")
+DEFAULT_GIR_DIRECTORY = Path("./gir/")
+DEFAULT_GIR_PATH = DEFAULT_GIR_DIRECTORY / "target/release/gir"
+
+
+def run_command(command, folder=None):
+ return subprocess.run(command, cwd=folder, check=True)
+
+
+async def spawn_process(exe, args):
+ p = await asyncio.create_subprocess_exec(
+ str(exe),
+ *(str(arg) for arg in args),
+ stdout=asyncio.subprocess.PIPE,
+ stderr=asyncio.subprocess.PIPE,
+ )
+
+ stdout, stderr = await p.communicate()
+ stdout = stdout.decode("utf-8")
+ stderr = stderr.decode("utf-8")
+ assert p.returncode == 0, stderr.strip()
+ return stdout, stderr
+
+
+async def spawn_gir(gir_exe, args):
+ stdout, stderr = await spawn_process(gir_exe, args)
+ # Gir doesn't print anything to stdout. If it does, this is likely out of
+ # order with stderr, unless the printer/logging flushes in between.
+ assert not stdout, "`gir` printed unexpected stdout: {}".format(stdout)
+ if stderr:
+ return "===> stderr:\n\n" + stderr + "\n"
+ return ""
+
+
+def update_workspace():
+ return run_command(["cargo", "build", "--release"], "gir")
+
+
+def ask_yes_no_question(question, conf):
+ question = "{} [y/N] ".format(question)
+ if conf.yes:
+ print(question + "y")
+ return True
+ line = input(question)
+ return line.strip().lower() == "y"
+
+
+def update_submodule(submodule_path, conf):
+ if any(submodule_path.iterdir()):
+ return False
+ print("=> Initializing {} submodule...".format(submodule_path))
+ run_command(["git", "submodule", "update", "--init", "--checkout", submodule_path])
+ print("<= Done!")
+
+ if ask_yes_no_question(
+ "Do you want to update {} submodule?".format(submodule_path), conf
+ ):
+ print("=> Updating submodule...")
+ run_command(["git", "reset", "--hard", "HEAD"], submodule_path)
+ run_command(["git", "pull", "-f", "origin", "master"], submodule_path)
+ print("<= Done!")
+ return True
+ return False
+
+
+def build_gir():
+ print("=> Building gir...")
+ update_workspace()
+ print("<= Done!")
+
+
+async def regenerate_crate_docs(conf, crate_dir, base_gir_args):
+ doc_path = "docs.md"
+ # Generate into docs.md instead of the default vendor.md
+ doc_args = base_gir_args + ["-m", "doc", "--doc-target-path", doc_path]
+
+ # The above `gir -m doc` generates docs.md relative to the directory containing Gir.toml
+ doc_path = crate_dir / doc_path
+ embed_args = ["-m", "-d", crate_dir / "src"]
+
+ logs = ""
+
+ if conf.strip_docs:
+ logs += "==> Stripping documentation from `{}`...\n".format(crate_dir)
+ # -n dumps stripped docs to stdout
+ _, stderr = await spawn_process("rustdoc-stripper", embed_args + ["-s", "-n"])
+ if stderr:
+ logs += "===> stderr:\n\n" + stderr + "\n"
+
+ if conf.embed_docs:
+ logs += "==> Regenerating documentation for `{}` into `{}`...\n".format(
+ crate_dir, doc_path
+ )
+ logs += await spawn_gir(conf.gir_path, doc_args)
+
+ logs += "==> Embedding documentation from `{}` into `{}`...\n".format(
+ doc_path, crate_dir
+ )
+ stdout, stderr = await spawn_process(
+ "rustdoc-stripper", embed_args + ["-g", "-o", doc_path]
+ )
+ if stdout:
+ logs += "===> stdout:\n\n" + stdout + "\n"
+ if stderr:
+ logs += "===> stderr:\n\n" + stderr + "\n"
+
+ return logs
+
+
+def regen_crates(path, conf):
+ processes = []
+ if path.is_dir():
+ for entry in path.rglob("Gir*.toml"):
+ processes += regen_crates(entry, conf)
+ elif path.match("Gir*.toml"):
+ args = ["-c", path, "-o", path.parent] + [
+ d for path in conf.gir_files_paths for d in ("-d", path)
+ ]
+
+ is_sys_crate = path.parent.name.endswith("sys")
+
+ if conf.embed_docs or conf.strip_docs:
+ # Embedding documentation only applies to non-sys crates
+ if is_sys_crate:
+ return processes
+
+ processes.append(regenerate_crate_docs(conf, path.parent, args))
+ else:
+ if is_sys_crate:
+ args.extend(["-m", "sys"])
+
+ async def regenerate_crate(path, args):
+ return "==> Regenerating `{}`...\n".format(path) + await spawn_gir(
+ conf.gir_path, args
+ )
+
+ processes.append(regenerate_crate(path, args))
+
+ else:
+ raise Exception("`{}` is not a valid Gir*.toml file".format(path))
+
+ return processes
+
+
+def valid_path(path):
+ path = Path(path)
+ if not path.exists():
+ raise argparse.ArgumentTypeError("`{}` no such file or directory".format(path))
+ return path
+
+
+def directory_path(path):
+ path = Path(path)
+ if not path.is_dir():
+ raise argparse.ArgumentTypeError("`{}` directory not found".format(path))
+ return path
+
+
+def file_path(path):
+ path = Path(path)
+ if not path.is_file():
+ raise argparse.ArgumentTypeError("`{}` file not found".format(path))
+ return path
+
+
+def parse_args():
+ parser = argparse.ArgumentParser(
+ description="Helper to regenerate gtk-rs crates using gir.",
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter,
+ )
+
+ parser.add_argument(
+ "path",
+ nargs="*",
+ default=[Path(".")],
+ type=valid_path,
+ help="Paths in which to look for Gir.toml files",
+ )
+ parser.add_argument(
+ "--gir-files-directories",
+ nargs="+", # If the option is used, we expect at least one folder!
+ dest="gir_files_paths",
+ default=[],
+ type=directory_path,
+ help="Path of the gir-files folder",
+ )
+ parser.add_argument(
+ "--gir-path",
+ default=DEFAULT_GIR_PATH,
+ type=file_path,
+ help="Path of the gir executable to run",
+ )
+ parser.add_argument(
+ "--yes",
+ action="store_true",
+ help=" Always answer `yes` to any question asked by the script",
+ )
+ parser.add_argument(
+ "--no-fmt",
+ action="store_true",
+ help="If set, this script will not run `cargo fmt`",
+ )
+ parser.add_argument(
+ "--embed-docs",
+ action="store_true",
+ help="Build documentation with `gir -m doc`, and embed it with `rustdoc-stripper -g`",
+ )
+ parser.add_argument(
+ "--strip-docs",
+ action="store_true",
+ help="Remove documentation with `rustdoc-stripper -s -n`. Can be used in conjunction with --embed-docs",
+ )
+
+ return parser.parse_args()
+
+
+async def main():
+ conf = parse_args()
+
+ if not conf.gir_files_paths:
+ update_submodule(DEFAULT_GIR_FILES_DIRECTORY, conf)
+
+ if conf.gir_path == DEFAULT_GIR_PATH:
+ update_submodule(DEFAULT_GIR_DIRECTORY, conf)
+ build_gir()
+
+ print("=> Regenerating crates...")
+ for path in conf.path:
+ print("=> Looking in path `{}`".format(path))
+ # Collect and print the results as soon as they trickle in, one process at a time:
+ for coro in asyncio.as_completed(regen_crates(path, conf)):
+ print(await coro, end="")
+
+ if not conf.no_fmt and not run_command(["cargo", "fmt"]):
+ return 1
+ print("<= Done!")
+ print("Don't forget to check if everything has been correctly generated!")
+ return 0
+
+
+if __name__ == "__main__":
+ try:
+ asyncio.run(main())
+ except Exception as e:
+ print("Error: {}".format(e), file=sys.stderr)
+ sys.exit(1)
diff --git a/libphosh-rs/gir b/libphosh-rs/gir
new file mode 160000
index 000000000..be9aa1452
--- /dev/null
+++ b/libphosh-rs/gir
@@ -0,0 +1 @@
+Subproject commit be9aa145267cb915b3c79c4ae6d896beecc061ee
diff --git a/libphosh-rs/gir-files b/libphosh-rs/gir-files
new file mode 160000
index 000000000..6cd7b656a
--- /dev/null
+++ b/libphosh-rs/gir-files
@@ -0,0 +1 @@
+Subproject commit 6cd7b656acd61172ab7f125a7059e4d0ecfc9637
diff --git a/libphosh-rs/gir-rustdoc.py b/libphosh-rs/gir-rustdoc.py
new file mode 100755
index 000000000..653582b55
--- /dev/null
+++ b/libphosh-rs/gir-rustdoc.py
@@ -0,0 +1,450 @@
+#!/usr/bin/env python3
+
+from glob import iglob
+from itertools import chain
+from os import getenv, getcwd, makedirs, chdir, symlink
+from shlex import quote
+from string import Template
+import argparse
+import datetime
+import gzip
+import json
+import logging as log
+import shutil
+import subprocess
+import urllib.request
+import zipfile
+
+log.basicConfig(level=log.DEBUG)
+
+INDEX_TEMPLATE = Template("""
+
+
+
+ $project_title
+
+
+
+
+
+ $project_title
+
+ $early_section
+ Documentation
+
+
+ Specific versions
+ $version_ul
+
+ Miscellaneous
+
+
+
+
+""")
+
+SECTION_TEMPLATE = Template("""
+ $title
+
+""")
+
+LATEST_STABLE_LI = """Latest stable"""
+
+VERSION_LIST_ITEM_TEMPLATE = Template("""
+ Version $version_name
+""")
+
+VERSION_CHECKER_TEMPLATE = Template("""
+
+""")
+
+BEFORE_CONTENT_FILENAME = f"{getcwd()}/_rustdoc-html-before-content.html"
+
+def pre_docs(args):
+ x = dict()
+ releases = parse_releases(args)
+
+ # write html-content file
+ content = ""
+ with open(BEFORE_CONTENT_FILENAME, "w") as f:
+ if releases:
+ content = VERSION_CHECKER_TEMPLATE.substitute(
+ branch=args.branch,
+ default_branch=args.default_branch,
+ pages_url=args.pages_url.rstrip('/'),
+ )
+ print(content, file=f)
+
+ # generate flags
+ flags = getenv("RUSTDOCFLAGS", "")
+
+ if "unstable-options" not in flags:
+ flags += "\n-Z unstable-options "
+
+ flags += f"""
+ --enable-index-page
+ --html-before-content {BEFORE_CONTENT_FILENAME}
+ """
+
+ # try to determine dependency versions
+
+ metadata = subprocess.run(["cargo", "metadata", "--format-version=1"], capture_output=True, text=True)
+
+ package_version = dict()
+ try:
+ metadata_json = json.loads(metadata.stdout)
+ for package in metadata_json['packages']:
+ name = package['name']
+ version = package['version']
+ if name in ['gtk', 'gtk4', 'glib']:
+ if args.branch == args.default_branch:
+ package_version[name] = "git"
+ else:
+ package_version[name] = "stable/" + '.'.join(version.split('.')[0:2])
+
+ except (KeyError, json.decoder.JSONDecodeError):
+ log.warn("Failed to auto detect package versions")
+ pass
+
+ def get_version(package, selected):
+ if selected == "none":
+ return "none"
+ elif selected == "auto":
+ return package_version.get(package, "none")
+ else:
+ return selected
+
+ version = get_version('glib', args.gtk_rs_core_version)
+ if version != "none":
+ core = f"https://gtk-rs.org/gtk-rs-core/{version}/docs/"
+
+ flags += f"""
+ --extern-html-root-url=cairo={core}
+ --extern-html-root-url=gdk_pixbuf={core}
+ --extern-html-root-url=gio={core}
+ --extern-html-root-url=glib={core}
+ --extern-html-root-url=graphene={core}
+ --extern-html-root-url=pango={core}
+ """
+
+ version = get_version('gtk', args.gtk3_rs_version)
+ if version != 'none':
+ gtk3 = f"https://gtk-rs.org/gtk3-rs/{version}/docs/"
+
+ flags += f"""
+ --extern-html-root-url=gdk={gtk3}
+ --extern-html-root-url=atk={gtk3}
+ --extern-html-root-url=gtk={gtk3}
+ """
+
+ version = get_version('gtk4', args.gtk4_rs_version)
+ if version != 'none':
+ gtk4 = f"https://gtk-rs.org/gtk4-rs/{version}/docs/"
+
+ flags += f"""
+ --extern-html-root-url=gdk4={gtk4}
+ --extern-html-root-url=gsk4={gtk4}
+ --extern-html-root-url=gtk4={gtk4}
+ """
+ if getenv("GITHUB_REF"):
+ print(flags)
+ else:
+ print(f"export RUSTDOCFLAGS={quote(flags)}")
+
+
+def html_index(args):
+ makedirs("public", exist_ok=True)
+
+ releases = parse_releases(args)
+
+ if releases:
+ with open("public/LATEST_RELEASE_BRANCH", "w") as f:
+ print(releases[0].branch, file=f)
+
+ version_ul = ""
+ for release in releases:
+ version_ul += VERSION_LIST_ITEM_TEMPLATE.substitute(
+ version_name=release.name
+ )
+ version_ul += "
"
+
+ latest_stable_li = LATEST_STABLE_LI
+ else:
+ version_ul = "There are no releases yet."
+ latest_stable_li = ""
+
+ early_section = ""
+ for title, content in args.early_section:
+ early_section += SECTION_TEMPLATE.substitute(
+ title=title,
+ content=content,
+ )
+
+ with open("public/index.html", "w") as f:
+ content = INDEX_TEMPLATE.substitute(
+ project_url=args.project_url.rstrip('/'),
+ project_title=args.project_title,
+ version_ul=version_ul,
+ latest_stable_li=latest_stable_li,
+ early_section=early_section,
+ datetime=datetime.datetime.now(datetime.timezone.utc).strftime('%c UTC')
+ )
+ print(content, file=f)
+
+def docs_from_artifacts(args):
+ makedirs("public/stable", exist_ok=True)
+
+ releases = parse_releases(args)
+
+ for n, release in enumerate(releases):
+
+ opener = urllib.request.build_opener()
+ if args.job_token:
+ opener.addheaders = [('JOB-TOKEN', args.job_token)]
+
+ url = f"{args.project_url}/-/jobs/artifacts/{release.branch}/download?job=docs"
+ filename = f"artifacts-{release.branch}.zip"
+
+ log.info(f"Downloading {url}")
+ with open(filename, "bw") as f:
+ with opener.open(url) as data:
+ f.write(data.read())
+
+ with zipfile.ZipFile(filename, "r") as zip:
+ zip.extractall(f"public/stable/{release.name}")
+
+ # most recent release
+ if n == 0:
+ symlink(f"{release.name}", "public/stable/latest")
+
+ if args.compress:
+ chdir('public')
+ for filename in chain(
+ iglob("**/*.html", recursive=True),
+ iglob("**/*.js", recursive=True),
+ iglob("**/*.css", recursive=True),
+ iglob("**/*.txt", recursive=True),
+ ):
+ with open(filename, 'rb') as f_in:
+ with gzip.open(f"{filename}.gz", 'wb') as f_out:
+ shutil.copyfileobj(f_in, f_out)
+
+
+
+def parse_releases(args):
+ releases = []
+ for declaration in args.releases.split():
+ (branch, name) = declaration.split("=")
+ releases.append(Release(branch, name))
+
+ return releases
+
+
+class Release:
+ def __init__(self, branch, name):
+ self.branch = branch
+ self.name = name
+
+def github_project_url():
+ base = getenv("GITHUB_SERVER_URL")
+ path = getenv("GITHUB_REPOSITORY")
+
+ if base and path:
+ return f"{base}/{path}".rstrip('/')
+ else:
+ return None
+
+def github_branch():
+ branch = getenv("GITHUB_REF")
+
+ is_release = getenv("GITHUB_EVENT_NAME", "push") == "release"
+
+ if branch:
+ try:
+ branch = branch.split('/', 3)[2]
+ except IndexError:
+ pass
+
+ if is_release:
+ return ".".join(branch.split('.')[0:2])
+ else:
+ return branch
+ else:
+ return None
+
+def github_title():
+ name = getenv("GITHUB_REPOSITORY")
+ if name:
+ try:
+ return name.split('/', 2)[1]
+ except IndexError:
+ return name
+ else:
+ return None
+
+def parse_args():
+
+ parser = argparse.ArgumentParser(description='Helps to generate docs pages for Rust gir based projects.')
+
+ parser.add_argument("--pages-url", default=getenv("CI_PAGES_URL"), help="Base URL.")
+ parser.add_argument("--branch", default=getenv("CI_COMMIT_BRANCH", github_branch()), help="Current branch.")
+ parser.add_argument("--default-branch", default=getenv("CI_DEFAULT_BRANCH", "main"), help="Default branch.")
+ parser.add_argument("--project-url", default=getenv("CI_PROJECT_URL", github_project_url()), help="Displayed on the index page and used for GitLab CI artifacts.")
+ parser.add_argument("--project-title", default=getenv("CI_PROJECT_TITLE", github_title()), help="Displayed on the index page.")
+ parser.add_argument("--releases", default=getenv("RELEASES", ""),
+ help="List of releases in the format '= ='. The latest release has to be first.")
+ parser.add_argument("--job-token", default=getenv("CI_JOB_TOKEN"), help="GitLab CI only.")
+
+ subparsers = parser.add_subparsers(dest='', required=True)
+
+ info = "Injects JavaScript code via RUSTDOCFLAGS for outdated version warnings."
+ parser_pre_docs = subparsers.add_parser('pre-docs', description=info, help=info)
+ parser_pre_docs.set_defaults(func=pre_docs)
+
+ help = "Version used in this project. Format 'stable/', 'git', 'auto' or 'none'."
+ parser_pre_docs.add_argument("--gtk3-rs-version", default='auto', help=help)
+ parser_pre_docs.add_argument("--gtk4-rs-version", default='auto', help=help)
+ parser_pre_docs.add_argument("--gtk-rs-core-version", default='auto', help=help)
+
+ info = "Creates public/index.html with overview of all versions. Also creates LATEST_RELEASE_BRANCH required by JavaScript version checker."
+ parser_html_index = subparsers.add_parser('html-index', description=info, help=info)
+ parser_html_index.add_argument("--early-section", action='append', nargs=2, default=[],
+ help="Adds additional section early in the document. First argument is the title, second argument is arbitrary HTML code.")
+ parser_html_index.set_defaults(func=html_index)
+
+ info = "GitLab CI only. Pull artifact for each version and embed to public/. Does compression as well."
+ parser_docs_from_artifacts = subparsers.add_parser('docs-from-artifacts', description=info, help=info)
+ parser_docs_from_artifacts.add_argument("--compress", type=bool, default=True)
+ parser_docs_from_artifacts.set_defaults(func=docs_from_artifacts)
+
+ args = parser.parse_args()
+
+ if not args.project_url:
+ parser.error(f"No project URL given")
+
+ if args.func == pre_docs and not args.branch:
+ parser.error(f"Command 'pre-docs' requires a branch to be specified. '{args.branch}' was given.")
+
+ return args
+
+
+def main():
+ args = parse_args()
+ args.func(args)
+
+if __name__ == "__main__":
+ main()
diff --git a/libphosh-rs/libphosh/Cargo.toml b/libphosh-rs/libphosh/Cargo.toml
new file mode 100644
index 000000000..0f412d484
--- /dev/null
+++ b/libphosh-rs/libphosh/Cargo.toml
@@ -0,0 +1,60 @@
+[package]
+name = "libphosh"
+version = "0.0.7"
+authors = ["Guido Günther "]
+edition = "2021"
+readme = "../README.md"
+homepage = "https://gitlab.gnome.org/World/Phosh/libphosh-rs"
+description = "Rust bindings for libphosh"
+license = "MIT"
+repository = "https://gitlab.gnome.org/World/Phosh/libphosh-rs.git"
+categories = ["api-bindings"]
+keywords = ["phosh", "gnome"]
+
+[lib]
+name = "libphosh"
+
+[features]
+default = ["gtk_v3_20"]
+gtk_v2_4 = []
+gtk_v2_6 = ["gtk_v2_4"]
+gtk_v2_10 = ["gtk_v2_6"]
+gtk_v2_12 = ["gtk_v2_10"]
+gtk_v2_18 = ["gtk_v2_12"]
+gtk_v2_20 = ["gtk_v2_18"]
+gtk_v3 = ["gtk_v2_20"]
+gtk_v3_4 = ["gtk_v3"]
+gtk_v3_8 = ["gtk_v3_4"]
+gtk_v3_12 = ["gtk_v3_8"]
+gtk_v3_14 = ["gtk_v3_12"]
+gtk_v3_20 = ["gtk_v3_14"]
+v3_12 = []
+v3_14 = []
+
+[package.metadata.docs.rs]
+all-features = true
+rustc-args = ["--cfg", "docsrs"]
+rustdoc-args = ["--cfg", "docsrs"]
+
+[dependencies]
+libc = '0.2'
+
+[dependencies.gdk]
+version = "0.18"
+
+[dependencies.gio]
+version = "0.18"
+features = [ "v2_70" ]
+
+[dependencies.glib]
+version = "0.18"
+features = [ "v2_66" ]
+
+[dependencies.gtk]
+version = "0.18"
+features = ["v3_24"]
+
+[dependencies.ffi]
+package = "libphosh-sys"
+path = './sys'
+version = "0.0.7"
diff --git a/libphosh-rs/libphosh/Gir.toml b/libphosh-rs/libphosh/Gir.toml
new file mode 100644
index 000000000..3ea876cdc
--- /dev/null
+++ b/libphosh-rs/libphosh/Gir.toml
@@ -0,0 +1,54 @@
+[external_libraries]
+Gio = {min_version = "2.66"}
+[options]
+girs_directories = ["../gir-files", "../"]
+library = "Phosh"
+version = "0"
+min_cfg_version = "1"
+target_path = "."
+use_gi_docgen = true
+work_mode = "normal"
+generate_safety_asserts = true
+deprecate_by_min_version = true
+# with this option enabled, versions for gir and gir-files saved only to one file to minimize noise
+single_version_file = true
+generate_builder = true
+trust_return_value_nullability = true
+
+external_libraries = [
+ "Gdk",
+ "Gio",
+ "GLib",
+ "GObject",
+]
+
+generate = [
+ "Phosh.Lockscreen",
+ "Phosh.LockscreenManager",
+ "Phosh.LockscreenPage",
+ "Phosh.QuickSetting",
+ "Phosh.ScreenshotManager",
+ "Phosh.Shell",
+ "Phosh.StatusIcon",
+ "Phosh.StatusPage",
+ "Phosh.WallClock",
+]
+
+manual = [
+ "Gdk.Rectangle",
+ "Gio.AsyncReadyCallback",
+ "Gio.AsyncResult",
+ "Gio.Cancellable",
+ "GLib.Error",
+ "Gtk.Bin",
+ "Gtk.Button",
+ "Gtk.Container",
+ "Gtk.Widget",
+ "Gtk.Window",
+]
+
+ignore = [
+ "Phosh.DBusScreenshotProxy",
+ "Phosh.DBusScreenshotSkeleton",
+]
+
diff --git a/libphosh-rs/libphosh/LICENSE b/libphosh-rs/libphosh/LICENSE
new file mode 120000
index 000000000..ea5b60640
--- /dev/null
+++ b/libphosh-rs/libphosh/LICENSE
@@ -0,0 +1 @@
+../LICENSE
\ No newline at end of file
diff --git a/libphosh-rs/libphosh/examples/custom-shell-and-lockscreen.rs b/libphosh-rs/libphosh/examples/custom-shell-and-lockscreen.rs
new file mode 100644
index 000000000..13f69aead
--- /dev/null
+++ b/libphosh-rs/libphosh/examples/custom-shell-and-lockscreen.rs
@@ -0,0 +1,137 @@
+use gtk;
+use libphosh as phosh;
+use libphosh::prelude::*;
+
+fn main() {
+ gtk::init().unwrap();
+
+ let clock = phosh::WallClock::new();
+ clock.set_default();
+
+ let shell = custom_shell::CustomShell::new();
+ shell.set_default();
+ shell.set_locked(true);
+
+ shell.connect_ready(|_| {
+ glib::g_message!("example", "Custom Rusty shell ready");
+ });
+
+ gtk::main();
+}
+
+mod custom_shell {
+ use glib::Object;
+ use gtk::glib;
+
+ glib::wrapper! {
+ pub struct CustomShell(ObjectSubclass)
+ @extends libphosh::Shell;
+ }
+
+ impl CustomShell {
+ pub fn new() -> Self {
+ Object::builder().build()
+ }
+ }
+
+ impl Default for CustomShell {
+ fn default() -> Self {
+ Self::new()
+ }
+ }
+
+ mod imp {
+ use gtk::glib;
+ use gtk::glib::Type;
+ use gtk::prelude::StaticType;
+ use gtk::subclass::prelude::{ObjectImpl, ObjectSubclass};
+ use libphosh::subclass::shell::ShellImpl;
+ use crate::custom_lockscreen::CustomLockscreen;
+
+ #[derive(Default)]
+ pub struct CustomShell;
+
+ #[glib::object_subclass]
+ impl ObjectSubclass for CustomShell {
+ const NAME: &'static str = "CustomShell";
+ type Type = super::CustomShell;
+ type ParentType = libphosh::Shell;
+ }
+
+ impl ObjectImpl for CustomShell {}
+
+ impl ShellImpl for CustomShell {
+ fn get_lockscreen_type(&self) -> Type {
+ CustomLockscreen::static_type()
+ }
+ }
+ }
+}
+
+mod custom_lockscreen {
+ use glib::Object;
+
+ glib::wrapper! {
+ pub struct CustomLockscreen(ObjectSubclass)
+ @extends libphosh::Lockscreen;
+ }
+
+ impl CustomLockscreen {
+ pub fn new() -> Self {
+ Object::builder().build()
+ }
+ }
+
+ impl Default for CustomLockscreen {
+ fn default() -> Self {
+ Self::new()
+ }
+ }
+
+ mod imp {
+ use gtk::subclass::prelude::*;
+ use gtk::{glib, Image};
+ use gtk::prelude::WidgetExt;
+ use libphosh::Lockscreen;
+ use libphosh::prelude::LockscreenExt;
+ use libphosh::subclass::lockscreen::LockscreenImpl;
+
+ #[derive(Default)]
+ pub struct CustomLockscreen {}
+
+ #[glib::object_subclass]
+ impl ObjectSubclass for CustomLockscreen {
+ const NAME: &'static str = "CustomLockscreen";
+ type Type = super::CustomLockscreen;
+ type ParentType = Lockscreen;
+ }
+
+ impl ObjectImpl for CustomLockscreen {
+ fn constructed(&self) {
+ self.parent_constructed();
+ glib::g_message!("example", "Constructed custom Lockscreen");
+
+ let hi = Image::builder()
+ .icon_name("face-kiss")
+ .pixel_size(100)
+ .build();
+ self.obj().add_extra_page(&hi);
+ hi.set_visible(true);
+
+ self.obj().connect_lockscreen_unlock(|_| {
+ glib::g_message!("example", "Custom Lockscreen was unlocked.");
+ });
+
+ self.obj().connect_page_notify(|me| {
+ glib::g_message!("example", "Lockscreen page changed to {:?}", me.page());
+ });
+ }
+ }
+
+ impl WidgetImpl for CustomLockscreen {}
+ impl ContainerImpl for CustomLockscreen {}
+ impl BinImpl for CustomLockscreen {}
+ impl WindowImpl for CustomLockscreen {}
+ impl LockscreenImpl for CustomLockscreen {}
+ }
+}
diff --git a/libphosh-rs/libphosh/examples/hello-world.rs b/libphosh-rs/libphosh/examples/hello-world.rs
new file mode 100644
index 000000000..439d9b096
--- /dev/null
+++ b/libphosh-rs/libphosh/examples/hello-world.rs
@@ -0,0 +1,27 @@
+use glib;
+use gtk;
+use libphosh as phosh;
+use libphosh::prelude::*;
+
+fn main() {
+ gtk::init().unwrap();
+
+ let clock = phosh::WallClock::new();
+ clock.set_default();
+
+ let shell = phosh::Shell::new();
+ shell.set_default();
+
+ shell.connect_ready(move |s| {
+ glib::g_message!("example", "Rusty shell ready");
+ let screenshot_manager = s.screenshot_manager();
+
+ let take_screenshot = glib::clone!(@weak screenshot_manager as sm => move || {
+ sm.take_screenshot(None, Some("hello-world"), false, false);
+ });
+
+ glib::timeout_add_seconds_local_once(2, take_screenshot);
+ });
+
+ gtk::main();
+}
diff --git a/libphosh-rs/libphosh/src/auto/enums.rs b/libphosh-rs/libphosh/src/auto/enums.rs
new file mode 100644
index 000000000..50376d373
--- /dev/null
+++ b/libphosh-rs/libphosh/src/auto/enums.rs
@@ -0,0 +1,109 @@
+// This file was generated by gir (https://github.com/gtk-rs/gir)
+// from ..
+// from ../gir-files
+// DO NOT EDIT
+
+use crate::{ffi};
+use glib::{prelude::*,translate::*};
+
+#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
+#[derive(Clone, Copy)]
+#[non_exhaustive]
+#[doc(alias = "PhoshLockscreenPage")]
+pub enum LockscreenPage {
+ #[doc(alias = "PHOSH_LOCKSCREEN_PAGE_INFO")]
+ Info,
+ #[doc(alias = "PHOSH_LOCKSCREEN_PAGE_EXTRA")]
+ Extra,
+ #[doc(alias = "PHOSH_LOCKSCREEN_PAGE_UNLOCK")]
+ Unlock,
+#[doc(hidden)]
+ __Unknown(i32),
+}
+
+#[doc(hidden)]
+impl IntoGlib for LockscreenPage {
+ type GlibType = ffi::PhoshLockscreenPage;
+
+ #[inline]
+fn into_glib(self) -> ffi::PhoshLockscreenPage {
+match self {
+ Self::Info => ffi::PHOSH_LOCKSCREEN_PAGE_INFO,
+ Self::Extra => ffi::PHOSH_LOCKSCREEN_PAGE_EXTRA,
+ Self::Unlock => ffi::PHOSH_LOCKSCREEN_PAGE_UNLOCK,
+ Self::__Unknown(value) => value,
+}
+}
+}
+
+#[doc(hidden)]
+impl FromGlib for LockscreenPage {
+ #[inline]
+unsafe fn from_glib(value: ffi::PhoshLockscreenPage) -> Self {
+ skip_assert_initialized!();
+
+match value {
+ ffi::PHOSH_LOCKSCREEN_PAGE_INFO => Self::Info,
+ ffi::PHOSH_LOCKSCREEN_PAGE_EXTRA => Self::Extra,
+ ffi::PHOSH_LOCKSCREEN_PAGE_UNLOCK => Self::Unlock,
+ value => Self::__Unknown(value),
+}
+}
+}
+
+impl StaticType for LockscreenPage {
+ #[inline]
+ #[doc(alias = "phosh_lockscreen_page_get_type")]
+ fn static_type() -> glib::Type {
+ unsafe { from_glib(ffi::phosh_lockscreen_page_get_type()) }
+ }
+ }
+
+impl glib::HasParamSpec for LockscreenPage {
+ type ParamSpec = glib::ParamSpecEnum;
+ type SetValue = Self;
+ type BuilderFn = fn(&str, Self) -> glib::ParamSpecEnumBuilder;
+
+ fn param_spec_builder() -> Self::BuilderFn {
+ Self::ParamSpec::builder_with_default
+ }
+}
+
+impl glib::value::ValueType for LockscreenPage {
+ type Type = Self;
+}
+
+unsafe impl<'a> glib::value::FromValue<'a> for LockscreenPage {
+ type Checker = glib::value::GenericValueTypeChecker;
+
+ #[inline]
+ unsafe fn from_value(value: &'a glib::Value) -> Self {
+ skip_assert_initialized!();
+ from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
+ }
+}
+
+impl ToValue for LockscreenPage {
+ #[inline]
+ fn to_value(&self) -> glib::Value {
+ let mut value = glib::Value::for_value_type::();
+ unsafe {
+ glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
+ }
+ value
+ }
+
+ #[inline]
+ fn value_type(&self) -> glib::Type {
+ Self::static_type()
+ }
+}
+
+impl From for glib::Value {
+ #[inline]
+ fn from(v: LockscreenPage) -> Self {
+ skip_assert_initialized!();
+ ToValue::to_value(&v)
+ }
+}
+
diff --git a/libphosh-rs/libphosh/src/auto/lockscreen.rs b/libphosh-rs/libphosh/src/auto/lockscreen.rs
new file mode 100644
index 000000000..cb82e882d
--- /dev/null
+++ b/libphosh-rs/libphosh/src/auto/lockscreen.rs
@@ -0,0 +1,525 @@
+// This file was generated by gir (https://github.com/gtk-rs/gir)
+// from ..
+// from ../gir-files
+// DO NOT EDIT
+
+use crate::{ffi,LockscreenPage};
+use glib::{object::ObjectType as _,prelude::*,signal::{connect_raw, SignalHandlerId},translate::*};
+use std::{boxed::Box as Box_};
+
+glib::wrapper! {
+ #[doc(alias = "PhoshLockscreen")]
+ pub struct Lockscreen(Object) @extends gtk::Window, gtk::Bin, gtk::Container, gtk::Widget;
+
+ match fn {
+ type_ => || ffi::phosh_lockscreen_get_type(),
+ }
+}
+
+impl Lockscreen {
+ pub const NONE: Option<&'static Lockscreen> = None;
+
+
+ // rustdoc-stripper-ignore-next
+ /// Creates a new builder-pattern struct instance to construct [`Lockscreen`] objects.
+ ///
+ /// This method returns an instance of [`LockscreenBuilder`](crate::builders::LockscreenBuilder) which can be used to create [`Lockscreen`] objects.
+ pub fn builder() -> LockscreenBuilder {
+ LockscreenBuilder::new()
+ }
+
+}
+
+// rustdoc-stripper-ignore-next
+ /// A [builder-pattern] type to construct [`Lockscreen`] objects.
+ ///
+ /// [builder-pattern]: https://doc.rust-lang.org/1.0.0/style/ownership/builders.html
+#[must_use = "The builder must be built to be used"]
+pub struct LockscreenBuilder {
+ builder: glib::object::ObjectBuilder<'static, Lockscreen>,
+ }
+
+ impl LockscreenBuilder {
+ fn new() -> Self {
+ Self { builder: glib::object::Object::builder() }
+ }
+
+ pub fn require_unlock(self, require_unlock: bool) -> Self {
+ Self { builder: self.builder.property("require-unlock", require_unlock), }
+ }
+
+ #[cfg(feature = "gtk_v2_4")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_4")))]
+ pub fn accept_focus(self, accept_focus: bool) -> Self {
+ Self { builder: self.builder.property("accept-focus", accept_focus), }
+ }
+
+ // #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ //pub fn application(self, application: &impl IsA*Ignored*/gtk::Application>) -> Self {
+ // Self { builder: self.builder.property("application", application.clone().upcast()), }
+ //}
+
+ #[cfg(feature = "gtk_v3_4")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_4")))]
+ pub fn attached_to(self, attached_to: &impl IsA) -> Self {
+ Self { builder: self.builder.property("attached-to", attached_to.clone().upcast()), }
+ }
+
+ #[cfg(feature = "gtk_v2_4")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_4")))]
+ pub fn decorated(self, decorated: bool) -> Self {
+ Self { builder: self.builder.property("decorated", decorated), }
+ }
+
+ pub fn default_height(self, default_height: i32) -> Self {
+ Self { builder: self.builder.property("default-height", default_height), }
+ }
+
+ pub fn default_width(self, default_width: i32) -> Self {
+ Self { builder: self.builder.property("default-width", default_width), }
+ }
+
+ #[cfg(feature = "gtk_v2_10")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_10")))]
+ pub fn deletable(self, deletable: bool) -> Self {
+ Self { builder: self.builder.property("deletable", deletable), }
+ }
+
+ pub fn destroy_with_parent(self, destroy_with_parent: bool) -> Self {
+ Self { builder: self.builder.property("destroy-with-parent", destroy_with_parent), }
+ }
+
+ #[cfg(feature = "gtk_v2_6")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_6")))]
+ pub fn focus_on_map(self, focus_on_map: bool) -> Self {
+ Self { builder: self.builder.property("focus-on-map", focus_on_map), }
+ }
+
+ #[cfg(feature = "gtk_v2_20")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_20")))]
+ pub fn focus_visible(self, focus_visible: bool) -> Self {
+ Self { builder: self.builder.property("focus-visible", focus_visible), }
+ }
+
+ // #[cfg(feature = "gtk_v2_4")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_4")))]
+ //pub fn gravity(self, gravity: /*Ignored*/gdk::Gravity) -> Self {
+ // Self { builder: self.builder.property("gravity", gravity), }
+ //}
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ #[cfg_attr(feature = "v3_14", deprecated = "Since 3.14")]
+ pub fn has_resize_grip(self, has_resize_grip: bool) -> Self {
+ Self { builder: self.builder.property("has-resize-grip", has_resize_grip), }
+ }
+
+ #[cfg(feature = "gtk_v3_4")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_4")))]
+ pub fn hide_titlebar_when_maximized(self, hide_titlebar_when_maximized: bool) -> Self {
+ Self { builder: self.builder.property("hide-titlebar-when-maximized", hide_titlebar_when_maximized), }
+ }
+
+ //pub fn icon(self, icon: /*Ignored*/&gdk_pixbuf::Pixbuf) -> Self {
+ // Self { builder: self.builder.property("icon", icon), }
+ //}
+
+ #[cfg(feature = "gtk_v2_6")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_6")))]
+ pub fn icon_name(self, icon_name: impl Into) -> Self {
+ Self { builder: self.builder.property("icon-name", icon_name.into()), }
+ }
+
+ #[cfg(feature = "gtk_v2_20")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_20")))]
+ pub fn mnemonics_visible(self, mnemonics_visible: bool) -> Self {
+ Self { builder: self.builder.property("mnemonics-visible", mnemonics_visible), }
+ }
+
+ pub fn modal(self, modal: bool) -> Self {
+ Self { builder: self.builder.property("modal", modal), }
+ }
+
+ pub fn resizable(self, resizable: bool) -> Self {
+ Self { builder: self.builder.property("resizable", resizable), }
+ }
+
+ pub fn role(self, role: impl Into) -> Self {
+ Self { builder: self.builder.property("role", role.into()), }
+ }
+
+ //pub fn screen(self, screen: /*Ignored*/&gdk::Screen) -> Self {
+ // Self { builder: self.builder.property("screen", screen), }
+ //}
+
+ pub fn skip_pager_hint(self, skip_pager_hint: bool) -> Self {
+ Self { builder: self.builder.property("skip-pager-hint", skip_pager_hint), }
+ }
+
+ pub fn skip_taskbar_hint(self, skip_taskbar_hint: bool) -> Self {
+ Self { builder: self.builder.property("skip-taskbar-hint", skip_taskbar_hint), }
+ }
+
+ #[cfg(feature = "gtk_v2_12")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_12")))]
+ pub fn startup_id(self, startup_id: impl Into) -> Self {
+ Self { builder: self.builder.property("startup-id", startup_id.into()), }
+ }
+
+ pub fn title(self, title: impl Into) -> Self {
+ Self { builder: self.builder.property("title", title.into()), }
+ }
+
+ #[cfg(feature = "gtk_v2_10")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_10")))]
+ pub fn transient_for(self, transient_for: &impl IsA) -> Self {
+ Self { builder: self.builder.property("transient-for", transient_for.clone().upcast()), }
+ }
+
+ //pub fn type_(self, type_: /*Ignored*/gtk::WindowType) -> Self {
+ // Self { builder: self.builder.property("type", type_), }
+ //}
+
+ //pub fn type_hint(self, type_hint: /*Ignored*/gdk::WindowTypeHint) -> Self {
+ // Self { builder: self.builder.property("type-hint", type_hint), }
+ //}
+
+ pub fn urgency_hint(self, urgency_hint: bool) -> Self {
+ Self { builder: self.builder.property("urgency-hint", urgency_hint), }
+ }
+
+ //pub fn window_position(self, window_position: /*Ignored*/gtk::WindowPosition) -> Self {
+ // Self { builder: self.builder.property("window-position", window_position), }
+ //}
+
+ pub fn border_width(self, border_width: u32) -> Self {
+ Self { builder: self.builder.property("border-width", border_width), }
+ }
+
+ pub fn child(self, child: &impl IsA) -> Self {
+ Self { builder: self.builder.property("child", child.clone().upcast()), }
+ }
+
+ //pub fn resize_mode(self, resize_mode: /*Ignored*/gtk::ResizeMode) -> Self {
+ // Self { builder: self.builder.property("resize-mode", resize_mode), }
+ //}
+
+ pub fn app_paintable(self, app_paintable: bool) -> Self {
+ Self { builder: self.builder.property("app-paintable", app_paintable), }
+ }
+
+ pub fn can_default(self, can_default: bool) -> Self {
+ Self { builder: self.builder.property("can-default", can_default), }
+ }
+
+ pub fn can_focus(self, can_focus: bool) -> Self {
+ Self { builder: self.builder.property("can-focus", can_focus), }
+ }
+
+ #[cfg(feature = "gtk_v2_18")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_18")))]
+ #[cfg_attr(feature = "v3_14", deprecated = "Since 3.14")]
+ pub fn double_buffered(self, double_buffered: bool) -> Self {
+ Self { builder: self.builder.property("double-buffered", double_buffered), }
+ }
+
+ //pub fn events(self, events: /*Ignored*/gdk::EventMask) -> Self {
+ // Self { builder: self.builder.property("events", events), }
+ //}
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn expand(self, expand: bool) -> Self {
+ Self { builder: self.builder.property("expand", expand), }
+ }
+
+ #[cfg(feature = "gtk_v3_20")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_20")))]
+ pub fn focus_on_click(self, focus_on_click: bool) -> Self {
+ Self { builder: self.builder.property("focus-on-click", focus_on_click), }
+ }
+
+ // #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ //pub fn halign(self, halign: /*Ignored*/gtk::Align) -> Self {
+ // Self { builder: self.builder.property("halign", halign), }
+ //}
+
+ pub fn has_default(self, has_default: bool) -> Self {
+ Self { builder: self.builder.property("has-default", has_default), }
+ }
+
+ pub fn has_focus(self, has_focus: bool) -> Self {
+ Self { builder: self.builder.property("has-focus", has_focus), }
+ }
+
+ #[cfg(feature = "gtk_v2_12")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_12")))]
+ pub fn has_tooltip(self, has_tooltip: bool) -> Self {
+ Self { builder: self.builder.property("has-tooltip", has_tooltip), }
+ }
+
+ pub fn height_request(self, height_request: i32) -> Self {
+ Self { builder: self.builder.property("height-request", height_request), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn hexpand(self, hexpand: bool) -> Self {
+ Self { builder: self.builder.property("hexpand", hexpand), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn hexpand_set(self, hexpand_set: bool) -> Self {
+ Self { builder: self.builder.property("hexpand-set", hexpand_set), }
+ }
+
+ pub fn is_focus(self, is_focus: bool) -> Self {
+ Self { builder: self.builder.property("is-focus", is_focus), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn margin(self, margin: i32) -> Self {
+ Self { builder: self.builder.property("margin", margin), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn margin_bottom(self, margin_bottom: i32) -> Self {
+ Self { builder: self.builder.property("margin-bottom", margin_bottom), }
+ }
+
+ #[cfg(feature = "gtk_v3_12")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_12")))]
+ pub fn margin_end(self, margin_end: i32) -> Self {
+ Self { builder: self.builder.property("margin-end", margin_end), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ #[cfg_attr(feature = "v3_12", deprecated = "Since 3.12")]
+ pub fn margin_left(self, margin_left: i32) -> Self {
+ Self { builder: self.builder.property("margin-left", margin_left), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ #[cfg_attr(feature = "v3_12", deprecated = "Since 3.12")]
+ pub fn margin_right(self, margin_right: i32) -> Self {
+ Self { builder: self.builder.property("margin-right", margin_right), }
+ }
+
+ #[cfg(feature = "gtk_v3_12")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_12")))]
+ pub fn margin_start(self, margin_start: i32) -> Self {
+ Self { builder: self.builder.property("margin-start", margin_start), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn margin_top(self, margin_top: i32) -> Self {
+ Self { builder: self.builder.property("margin-top", margin_top), }
+ }
+
+ pub fn name(self, name: impl Into) -> Self {
+ Self { builder: self.builder.property("name", name.into()), }
+ }
+
+ pub fn no_show_all(self, no_show_all: bool) -> Self {
+ Self { builder: self.builder.property("no-show-all", no_show_all), }
+ }
+
+ #[cfg(feature = "gtk_v3_8")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_8")))]
+ pub fn opacity(self, opacity: f64) -> Self {
+ Self { builder: self.builder.property("opacity", opacity), }
+ }
+
+ pub fn parent(self, parent: &impl IsA) -> Self {
+ Self { builder: self.builder.property("parent", parent.clone().upcast()), }
+ }
+
+ pub fn receives_default(self, receives_default: bool) -> Self {
+ Self { builder: self.builder.property("receives-default", receives_default), }
+ }
+
+ pub fn sensitive(self, sensitive: bool) -> Self {
+ Self { builder: self.builder.property("sensitive", sensitive), }
+ }
+
+ //pub fn style(self, style: &impl IsA*Ignored*/gtk::Style>) -> Self {
+ // Self { builder: self.builder.property("style", style.clone().upcast()), }
+ //}
+
+ #[cfg(feature = "gtk_v2_12")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_12")))]
+ pub fn tooltip_markup(self, tooltip_markup: impl Into) -> Self {
+ Self { builder: self.builder.property("tooltip-markup", tooltip_markup.into()), }
+ }
+
+ #[cfg(feature = "gtk_v2_12")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_12")))]
+ pub fn tooltip_text(self, tooltip_text: impl Into) -> Self {
+ Self { builder: self.builder.property("tooltip-text", tooltip_text.into()), }
+ }
+
+ // #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ //pub fn valign(self, valign: /*Ignored*/gtk::Align) -> Self {
+ // Self { builder: self.builder.property("valign", valign), }
+ //}
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn vexpand(self, vexpand: bool) -> Self {
+ Self { builder: self.builder.property("vexpand", vexpand), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn vexpand_set(self, vexpand_set: bool) -> Self {
+ Self { builder: self.builder.property("vexpand-set", vexpand_set), }
+ }
+
+ pub fn visible(self, visible: bool) -> Self {
+ Self { builder: self.builder.property("visible", visible), }
+ }
+
+ pub fn width_request(self, width_request: i32) -> Self {
+ Self { builder: self.builder.property("width-request", width_request), }
+ }
+
+ // rustdoc-stripper-ignore-next
+ /// Build the [`Lockscreen`].
+ #[must_use = "Building the object from the builder is usually expensive and is not expected to have side effects"]
+ pub fn build(self) -> Lockscreen {
+assert_initialized_main_thread!();
+ self.builder.build() }
+}
+
+pub trait LockscreenExt: IsA + 'static {
+ #[doc(alias = "phosh_lockscreen_add_extra_page")]
+ fn add_extra_page(&self, widget: &impl IsA) {
+ unsafe {
+ ffi::phosh_lockscreen_add_extra_page(self.as_ref().to_glib_none().0, widget.as_ref().to_glib_none().0);
+ }
+ }
+
+ #[doc(alias = "phosh_lockscreen_clear_pin_entry")]
+ fn clear_pin_entry(&self) {
+ unsafe {
+ ffi::phosh_lockscreen_clear_pin_entry(self.as_ref().to_glib_none().0);
+ }
+ }
+
+ #[doc(alias = "phosh_lockscreen_get_page")]
+ #[doc(alias = "get_page")]
+ fn page(&self) -> LockscreenPage {
+ unsafe {
+ from_glib(ffi::phosh_lockscreen_get_page(self.as_ref().to_glib_none().0))
+ }
+ }
+
+ #[doc(alias = "phosh_lockscreen_get_pin_entry")]
+ #[doc(alias = "get_pin_entry")]
+ fn pin_entry(&self) -> glib::GString {
+ unsafe {
+ from_glib_none(ffi::phosh_lockscreen_get_pin_entry(self.as_ref().to_glib_none().0))
+ }
+ }
+
+ #[doc(alias = "phosh_lockscreen_set_default_page")]
+ fn set_default_page(&self, page: LockscreenPage) {
+ unsafe {
+ ffi::phosh_lockscreen_set_default_page(self.as_ref().to_glib_none().0, page.into_glib());
+ }
+ }
+
+ #[doc(alias = "phosh_lockscreen_set_page")]
+ fn set_page(&self, page: LockscreenPage) {
+ unsafe {
+ ffi::phosh_lockscreen_set_page(self.as_ref().to_glib_none().0, page.into_glib());
+ }
+ }
+
+ #[doc(alias = "phosh_lockscreen_set_unlock_status")]
+ fn set_unlock_status(&self, status: &str) {
+ unsafe {
+ ffi::phosh_lockscreen_set_unlock_status(self.as_ref().to_glib_none().0, status.to_glib_none().0);
+ }
+ }
+
+ #[doc(alias = "phosh_lockscreen_shake_pin_entry")]
+ fn shake_pin_entry(&self) {
+ unsafe {
+ ffi::phosh_lockscreen_shake_pin_entry(self.as_ref().to_glib_none().0);
+ }
+ }
+
+ #[doc(alias = "require-unlock")]
+ fn requires_unlock(&self) -> bool {
+ ObjectExt::property(self.as_ref(), "require-unlock")
+ }
+
+ #[doc(alias = "require-unlock")]
+ fn set_require_unlock(&self, require_unlock: bool) {
+ ObjectExt::set_property(self.as_ref(),"require-unlock", require_unlock)
+ }
+
+ #[doc(alias = "lockscreen-unlock")]
+ fn connect_lockscreen_unlock(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn lockscreen_unlock_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshLockscreen, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(Lockscreen::from_glib_borrow(this).unsafe_cast_ref())
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"lockscreen-unlock".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(lockscreen_unlock_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+
+ #[doc(alias = "wakeup-output")]
+ fn connect_wakeup_output(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn wakeup_output_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshLockscreen, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(Lockscreen::from_glib_borrow(this).unsafe_cast_ref())
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"wakeup-output".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(wakeup_output_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+
+ #[doc(alias = "page")]
+ fn connect_page_notify(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn notify_page_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshLockscreen, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(Lockscreen::from_glib_borrow(this).unsafe_cast_ref())
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"notify::page".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(notify_page_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+
+ #[doc(alias = "require-unlock")]
+ fn connect_require_unlock_notify(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn notify_require_unlock_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshLockscreen, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(Lockscreen::from_glib_borrow(this).unsafe_cast_ref())
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"notify::require-unlock".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(notify_require_unlock_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+}
+
+impl> LockscreenExt for O {}
diff --git a/libphosh-rs/libphosh/src/auto/lockscreen_manager.rs b/libphosh-rs/libphosh/src/auto/lockscreen_manager.rs
new file mode 100644
index 000000000..1140bbb3d
--- /dev/null
+++ b/libphosh-rs/libphosh/src/auto/lockscreen_manager.rs
@@ -0,0 +1,128 @@
+// This file was generated by gir (https://github.com/gtk-rs/gir)
+// from ..
+// from ../gir-files
+// DO NOT EDIT
+
+use crate::{ffi,Lockscreen,LockscreenPage};
+use glib::{object::ObjectType as _,prelude::*,signal::{connect_raw, SignalHandlerId},translate::*};
+use std::{boxed::Box as Box_};
+
+glib::wrapper! {
+ #[doc(alias = "PhoshLockscreenManager")]
+ pub struct LockscreenManager(Object);
+
+ match fn {
+ type_ => || ffi::phosh_lockscreen_manager_get_type(),
+ }
+}
+
+impl LockscreenManager {
+ // rustdoc-stripper-ignore-next
+ /// Creates a new builder-pattern struct instance to construct [`LockscreenManager`] objects.
+ ///
+ /// This method returns an instance of [`LockscreenManagerBuilder`](crate::builders::LockscreenManagerBuilder) which can be used to create [`LockscreenManager`] objects.
+ pub fn builder() -> LockscreenManagerBuilder {
+ LockscreenManagerBuilder::new()
+ }
+
+
+ #[doc(alias = "phosh_lockscreen_manager_get_active_time")]
+ #[doc(alias = "get_active_time")]
+ pub fn active_time(&self) -> i64 {
+ unsafe {
+ ffi::phosh_lockscreen_manager_get_active_time(self.to_glib_none().0)
+ }
+ }
+
+ #[doc(alias = "phosh_lockscreen_manager_get_locked")]
+ #[doc(alias = "get_locked")]
+ #[doc(alias = "locked")]
+ pub fn is_locked(&self) -> bool {
+ unsafe {
+ from_glib(ffi::phosh_lockscreen_manager_get_locked(self.to_glib_none().0))
+ }
+ }
+
+ #[doc(alias = "phosh_lockscreen_manager_get_lockscreen")]
+ #[doc(alias = "get_lockscreen")]
+ pub fn lockscreen(&self) -> Option {
+ unsafe {
+ from_glib_none(ffi::phosh_lockscreen_manager_get_lockscreen(self.to_glib_none().0))
+ }
+ }
+
+ #[doc(alias = "phosh_lockscreen_manager_get_page")]
+ #[doc(alias = "get_page")]
+ pub fn page(&self) -> LockscreenPage {
+ unsafe {
+ from_glib(ffi::phosh_lockscreen_manager_get_page(self.to_glib_none().0))
+ }
+ }
+
+ #[doc(alias = "phosh_lockscreen_manager_set_locked")]
+ #[doc(alias = "locked")]
+ pub fn set_locked(&self, state: bool) {
+ unsafe {
+ ffi::phosh_lockscreen_manager_set_locked(self.to_glib_none().0, state.into_glib());
+ }
+ }
+
+ #[doc(alias = "phosh_lockscreen_manager_set_page")]
+ pub fn set_page(&self, page: LockscreenPage) -> bool {
+ unsafe {
+ from_glib(ffi::phosh_lockscreen_manager_set_page(self.to_glib_none().0, page.into_glib()))
+ }
+ }
+
+ #[doc(alias = "wakeup-outputs")]
+ pub fn connect_wakeup_outputs(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn wakeup_outputs_trampoline(this: *mut ffi::PhoshLockscreenManager, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(&from_glib_borrow(this))
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"wakeup-outputs".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(wakeup_outputs_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+
+ #[doc(alias = "locked")]
+ pub fn connect_locked_notify(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn notify_locked_trampoline(this: *mut ffi::PhoshLockscreenManager, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(&from_glib_borrow(this))
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"notify::locked".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(notify_locked_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+}
+
+// rustdoc-stripper-ignore-next
+ /// A [builder-pattern] type to construct [`LockscreenManager`] objects.
+ ///
+ /// [builder-pattern]: https://doc.rust-lang.org/1.0.0/style/ownership/builders.html
+#[must_use = "The builder must be built to be used"]
+pub struct LockscreenManagerBuilder {
+ builder: glib::object::ObjectBuilder<'static, LockscreenManager>,
+ }
+
+ impl LockscreenManagerBuilder {
+ fn new() -> Self {
+ Self { builder: glib::object::Object::builder() }
+ }
+
+ pub fn locked(self, locked: bool) -> Self {
+ Self { builder: self.builder.property("locked", locked), }
+ }
+
+ // rustdoc-stripper-ignore-next
+ /// Build the [`LockscreenManager`].
+ #[must_use = "Building the object from the builder is usually expensive and is not expected to have side effects"]
+ pub fn build(self) -> LockscreenManager {
+assert_initialized_main_thread!();
+ self.builder.build() }
+}
diff --git a/libphosh-rs/libphosh/src/auto/mod.rs b/libphosh-rs/libphosh/src/auto/mod.rs
new file mode 100644
index 000000000..4641f3dfd
--- /dev/null
+++ b/libphosh-rs/libphosh/src/auto/mod.rs
@@ -0,0 +1,48 @@
+// This file was generated by gir (https://github.com/gtk-rs/gir)
+// from ..
+// from ../gir-files
+// DO NOT EDIT
+
+mod lockscreen;
+pub use self::lockscreen::Lockscreen;
+
+mod lockscreen_manager;
+pub use self::lockscreen_manager::LockscreenManager;
+
+mod quick_setting;
+pub use self::quick_setting::QuickSetting;
+
+mod screenshot_manager;
+pub use self::screenshot_manager::ScreenshotManager;
+
+mod shell;
+pub use self::shell::Shell;
+
+mod status_icon;
+pub use self::status_icon::StatusIcon;
+
+mod status_page;
+pub use self::status_page::StatusPage;
+
+mod wall_clock;
+pub use self::wall_clock::WallClock;
+
+mod enums;
+pub use self::enums::LockscreenPage;
+
+pub(crate) mod traits {
+ pub use super::lockscreen::LockscreenExt;
+ pub use super::quick_setting::QuickSettingExt;
+ pub use super::shell::ShellExt;
+ pub use super::status_icon::StatusIconExt;
+ pub use super::status_page::StatusPageExt;
+ pub use super::wall_clock::WallClockExt;
+}
+pub(crate) mod builders {
+ pub use super::lockscreen::LockscreenBuilder;
+ pub use super::lockscreen_manager::LockscreenManagerBuilder;
+ pub use super::quick_setting::QuickSettingBuilder;
+ pub use super::shell::ShellBuilder;
+ pub use super::status_icon::StatusIconBuilder;
+ pub use super::status_page::StatusPageBuilder;
+}
diff --git a/libphosh-rs/libphosh/src/auto/quick_setting.rs b/libphosh-rs/libphosh/src/auto/quick_setting.rs
new file mode 100644
index 000000000..db28d08cc
--- /dev/null
+++ b/libphosh-rs/libphosh/src/auto/quick_setting.rs
@@ -0,0 +1,560 @@
+// This file was generated by gir (https://github.com/gtk-rs/gir)
+// from ..
+// from ../gir-files
+// DO NOT EDIT
+
+use crate::{ffi,StatusIcon,StatusPage};
+use glib::{object::ObjectType as _,prelude::*,signal::{connect_raw, SignalHandlerId},translate::*};
+use std::{boxed::Box as Box_};
+
+glib::wrapper! {
+ #[doc(alias = "PhoshQuickSetting")]
+ pub struct QuickSetting(Object) @extends gtk::Container, gtk::Widget;
+
+ match fn {
+ type_ => || ffi::phosh_quick_setting_get_type(),
+ }
+}
+
+impl QuickSetting {
+ pub const NONE: Option<&'static QuickSetting> = None;
+
+
+ #[doc(alias = "phosh_quick_setting_new")]
+ pub fn new(status_page: &impl IsA) -> QuickSetting {
+ skip_assert_initialized!();
+ unsafe {
+ gtk::Widget::from_glib_none(ffi::phosh_quick_setting_new(status_page.as_ref().to_glib_none().0)).unsafe_cast()
+ }
+ }
+
+ // rustdoc-stripper-ignore-next
+ /// Creates a new builder-pattern struct instance to construct [`QuickSetting`] objects.
+ ///
+ /// This method returns an instance of [`QuickSettingBuilder`](crate::builders::QuickSettingBuilder) which can be used to create [`QuickSetting`] objects.
+ pub fn builder() -> QuickSettingBuilder {
+ QuickSettingBuilder::new()
+ }
+
+}
+
+impl Default for QuickSetting {
+ fn default() -> Self {
+ glib::object::Object::new::()
+ }
+ }
+
+// rustdoc-stripper-ignore-next
+ /// A [builder-pattern] type to construct [`QuickSetting`] objects.
+ ///
+ /// [builder-pattern]: https://doc.rust-lang.org/1.0.0/style/ownership/builders.html
+#[must_use = "The builder must be built to be used"]
+pub struct QuickSettingBuilder {
+ builder: glib::object::ObjectBuilder<'static, QuickSetting>,
+ }
+
+ impl QuickSettingBuilder {
+ fn new() -> Self {
+ Self { builder: glib::object::Object::builder() }
+ }
+
+ pub fn active(self, active: bool) -> Self {
+ Self { builder: self.builder.property("active", active), }
+ }
+
+ pub fn can_show_status(self, can_show_status: bool) -> Self {
+ Self { builder: self.builder.property("can-show-status", can_show_status), }
+ }
+
+ pub fn long_press_action_name(self, long_press_action_name: impl Into) -> Self {
+ Self { builder: self.builder.property("long-press-action-name", long_press_action_name.into()), }
+ }
+
+ pub fn long_press_action_target(self, long_press_action_target: impl Into) -> Self {
+ Self { builder: self.builder.property("long-press-action-target", long_press_action_target.into()), }
+ }
+
+ pub fn showing_status(self, showing_status: bool) -> Self {
+ Self { builder: self.builder.property("showing-status", showing_status), }
+ }
+
+ pub fn status_icon(self, status_icon: &impl IsA) -> Self {
+ Self { builder: self.builder.property("status-icon", status_icon.clone().upcast()), }
+ }
+
+ pub fn status_page(self, status_page: &impl IsA) -> Self {
+ Self { builder: self.builder.property("status-page", status_page.clone().upcast()), }
+ }
+
+ pub fn border_width(self, border_width: u32) -> Self {
+ Self { builder: self.builder.property("border-width", border_width), }
+ }
+
+ pub fn child(self, child: &impl IsA) -> Self {
+ Self { builder: self.builder.property("child", child.clone().upcast()), }
+ }
+
+ //pub fn resize_mode(self, resize_mode: /*Ignored*/gtk::ResizeMode) -> Self {
+ // Self { builder: self.builder.property("resize-mode", resize_mode), }
+ //}
+
+ pub fn app_paintable(self, app_paintable: bool) -> Self {
+ Self { builder: self.builder.property("app-paintable", app_paintable), }
+ }
+
+ pub fn can_default(self, can_default: bool) -> Self {
+ Self { builder: self.builder.property("can-default", can_default), }
+ }
+
+ pub fn can_focus(self, can_focus: bool) -> Self {
+ Self { builder: self.builder.property("can-focus", can_focus), }
+ }
+
+ #[cfg(feature = "gtk_v2_18")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_18")))]
+ #[cfg_attr(feature = "v3_14", deprecated = "Since 3.14")]
+ pub fn double_buffered(self, double_buffered: bool) -> Self {
+ Self { builder: self.builder.property("double-buffered", double_buffered), }
+ }
+
+ //pub fn events(self, events: /*Ignored*/gdk::EventMask) -> Self {
+ // Self { builder: self.builder.property("events", events), }
+ //}
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn expand(self, expand: bool) -> Self {
+ Self { builder: self.builder.property("expand", expand), }
+ }
+
+ #[cfg(feature = "gtk_v3_20")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_20")))]
+ pub fn focus_on_click(self, focus_on_click: bool) -> Self {
+ Self { builder: self.builder.property("focus-on-click", focus_on_click), }
+ }
+
+ // #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ //pub fn halign(self, halign: /*Ignored*/gtk::Align) -> Self {
+ // Self { builder: self.builder.property("halign", halign), }
+ //}
+
+ pub fn has_default(self, has_default: bool) -> Self {
+ Self { builder: self.builder.property("has-default", has_default), }
+ }
+
+ pub fn has_focus(self, has_focus: bool) -> Self {
+ Self { builder: self.builder.property("has-focus", has_focus), }
+ }
+
+ #[cfg(feature = "gtk_v2_12")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_12")))]
+ pub fn has_tooltip(self, has_tooltip: bool) -> Self {
+ Self { builder: self.builder.property("has-tooltip", has_tooltip), }
+ }
+
+ pub fn height_request(self, height_request: i32) -> Self {
+ Self { builder: self.builder.property("height-request", height_request), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn hexpand(self, hexpand: bool) -> Self {
+ Self { builder: self.builder.property("hexpand", hexpand), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn hexpand_set(self, hexpand_set: bool) -> Self {
+ Self { builder: self.builder.property("hexpand-set", hexpand_set), }
+ }
+
+ pub fn is_focus(self, is_focus: bool) -> Self {
+ Self { builder: self.builder.property("is-focus", is_focus), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn margin(self, margin: i32) -> Self {
+ Self { builder: self.builder.property("margin", margin), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn margin_bottom(self, margin_bottom: i32) -> Self {
+ Self { builder: self.builder.property("margin-bottom", margin_bottom), }
+ }
+
+ #[cfg(feature = "gtk_v3_12")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_12")))]
+ pub fn margin_end(self, margin_end: i32) -> Self {
+ Self { builder: self.builder.property("margin-end", margin_end), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ #[cfg_attr(feature = "v3_12", deprecated = "Since 3.12")]
+ pub fn margin_left(self, margin_left: i32) -> Self {
+ Self { builder: self.builder.property("margin-left", margin_left), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ #[cfg_attr(feature = "v3_12", deprecated = "Since 3.12")]
+ pub fn margin_right(self, margin_right: i32) -> Self {
+ Self { builder: self.builder.property("margin-right", margin_right), }
+ }
+
+ #[cfg(feature = "gtk_v3_12")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_12")))]
+ pub fn margin_start(self, margin_start: i32) -> Self {
+ Self { builder: self.builder.property("margin-start", margin_start), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn margin_top(self, margin_top: i32) -> Self {
+ Self { builder: self.builder.property("margin-top", margin_top), }
+ }
+
+ pub fn name(self, name: impl Into) -> Self {
+ Self { builder: self.builder.property("name", name.into()), }
+ }
+
+ pub fn no_show_all(self, no_show_all: bool) -> Self {
+ Self { builder: self.builder.property("no-show-all", no_show_all), }
+ }
+
+ #[cfg(feature = "gtk_v3_8")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_8")))]
+ pub fn opacity(self, opacity: f64) -> Self {
+ Self { builder: self.builder.property("opacity", opacity), }
+ }
+
+ pub fn parent(self, parent: &impl IsA) -> Self {
+ Self { builder: self.builder.property("parent", parent.clone().upcast()), }
+ }
+
+ pub fn receives_default(self, receives_default: bool) -> Self {
+ Self { builder: self.builder.property("receives-default", receives_default), }
+ }
+
+ pub fn sensitive(self, sensitive: bool) -> Self {
+ Self { builder: self.builder.property("sensitive", sensitive), }
+ }
+
+ //pub fn style(self, style: &impl IsA*Ignored*/gtk::Style>) -> Self {
+ // Self { builder: self.builder.property("style", style.clone().upcast()), }
+ //}
+
+ #[cfg(feature = "gtk_v2_12")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_12")))]
+ pub fn tooltip_markup(self, tooltip_markup: impl Into) -> Self {
+ Self { builder: self.builder.property("tooltip-markup", tooltip_markup.into()), }
+ }
+
+ #[cfg(feature = "gtk_v2_12")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_12")))]
+ pub fn tooltip_text(self, tooltip_text: impl Into) -> Self {
+ Self { builder: self.builder.property("tooltip-text", tooltip_text.into()), }
+ }
+
+ // #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ //pub fn valign(self, valign: /*Ignored*/gtk::Align) -> Self {
+ // Self { builder: self.builder.property("valign", valign), }
+ //}
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn vexpand(self, vexpand: bool) -> Self {
+ Self { builder: self.builder.property("vexpand", vexpand), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn vexpand_set(self, vexpand_set: bool) -> Self {
+ Self { builder: self.builder.property("vexpand-set", vexpand_set), }
+ }
+
+ pub fn visible(self, visible: bool) -> Self {
+ Self { builder: self.builder.property("visible", visible), }
+ }
+
+ pub fn width_request(self, width_request: i32) -> Self {
+ Self { builder: self.builder.property("width-request", width_request), }
+ }
+
+ // rustdoc-stripper-ignore-next
+ /// Build the [`QuickSetting`].
+ #[must_use = "Building the object from the builder is usually expensive and is not expected to have side effects"]
+ pub fn build(self) -> QuickSetting {
+assert_initialized_main_thread!();
+ self.builder.build() }
+}
+
+pub trait QuickSettingExt: IsA + 'static {
+ #[doc(alias = "phosh_quick_setting_get_active")]
+ #[doc(alias = "get_active")]
+ #[doc(alias = "active")]
+ fn is_active(&self) -> bool {
+ unsafe {
+ from_glib(ffi::phosh_quick_setting_get_active(self.as_ref().to_glib_none().0))
+ }
+ }
+
+ #[doc(alias = "phosh_quick_setting_get_can_show_status")]
+ #[doc(alias = "get_can_show_status")]
+ #[doc(alias = "can-show-status")]
+ fn can_show_status(&self) -> bool {
+ unsafe {
+ from_glib(ffi::phosh_quick_setting_get_can_show_status(self.as_ref().to_glib_none().0))
+ }
+ }
+
+ #[doc(alias = "phosh_quick_setting_get_long_press_action_name")]
+ #[doc(alias = "get_long_press_action_name")]
+ #[doc(alias = "long-press-action-name")]
+ fn long_press_action_name(&self) -> glib::GString {
+ unsafe {
+ from_glib_none(ffi::phosh_quick_setting_get_long_press_action_name(self.as_ref().to_glib_none().0))
+ }
+ }
+
+ #[doc(alias = "phosh_quick_setting_get_long_press_action_target")]
+ #[doc(alias = "get_long_press_action_target")]
+ #[doc(alias = "long-press-action-target")]
+ fn long_press_action_target(&self) -> glib::GString {
+ unsafe {
+ from_glib_none(ffi::phosh_quick_setting_get_long_press_action_target(self.as_ref().to_glib_none().0))
+ }
+ }
+
+ #[doc(alias = "phosh_quick_setting_get_showing_status")]
+ #[doc(alias = "get_showing_status")]
+ #[doc(alias = "showing-status")]
+ fn is_showing_status(&self) -> bool {
+ unsafe {
+ from_glib(ffi::phosh_quick_setting_get_showing_status(self.as_ref().to_glib_none().0))
+ }
+ }
+
+ #[doc(alias = "phosh_quick_setting_get_status_icon")]
+ #[doc(alias = "get_status_icon")]
+ #[doc(alias = "status-icon")]
+ fn status_icon(&self) -> StatusIcon {
+ unsafe {
+ from_glib_none(ffi::phosh_quick_setting_get_status_icon(self.as_ref().to_glib_none().0))
+ }
+ }
+
+ #[doc(alias = "phosh_quick_setting_get_status_page")]
+ #[doc(alias = "get_status_page")]
+ #[doc(alias = "status-page")]
+ fn status_page(&self) -> StatusPage {
+ unsafe {
+ from_glib_none(ffi::phosh_quick_setting_get_status_page(self.as_ref().to_glib_none().0))
+ }
+ }
+
+ #[doc(alias = "phosh_quick_setting_set_active")]
+ #[doc(alias = "active")]
+ fn set_active(&self, active: bool) {
+ unsafe {
+ ffi::phosh_quick_setting_set_active(self.as_ref().to_glib_none().0, active.into_glib());
+ }
+ }
+
+ #[doc(alias = "phosh_quick_setting_set_can_show_status")]
+ #[doc(alias = "can-show-status")]
+ fn set_can_show_status(&self, can_show_status: bool) {
+ unsafe {
+ ffi::phosh_quick_setting_set_can_show_status(self.as_ref().to_glib_none().0, can_show_status.into_glib());
+ }
+ }
+
+ #[doc(alias = "phosh_quick_setting_set_long_press_action_name")]
+ #[doc(alias = "long-press-action-name")]
+ fn set_long_press_action_name(&self, action_name: &str) {
+ unsafe {
+ ffi::phosh_quick_setting_set_long_press_action_name(self.as_ref().to_glib_none().0, action_name.to_glib_none().0);
+ }
+ }
+
+ #[doc(alias = "phosh_quick_setting_set_long_press_action_target")]
+ #[doc(alias = "long-press-action-target")]
+ fn set_long_press_action_target(&self, action_target: &str) {
+ unsafe {
+ ffi::phosh_quick_setting_set_long_press_action_target(self.as_ref().to_glib_none().0, action_target.to_glib_none().0);
+ }
+ }
+
+ #[doc(alias = "phosh_quick_setting_set_showing_status")]
+ #[doc(alias = "showing-status")]
+ fn set_showing_status(&self, showing_status: bool) {
+ unsafe {
+ ffi::phosh_quick_setting_set_showing_status(self.as_ref().to_glib_none().0, showing_status.into_glib());
+ }
+ }
+
+ #[doc(alias = "phosh_quick_setting_set_status_icon")]
+ #[doc(alias = "status-icon")]
+ fn set_status_icon(&self, status_icon: &impl IsA) {
+ unsafe {
+ ffi::phosh_quick_setting_set_status_icon(self.as_ref().to_glib_none().0, status_icon.as_ref().to_glib_none().0);
+ }
+ }
+
+ #[doc(alias = "phosh_quick_setting_set_status_page")]
+ #[doc(alias = "status-page")]
+ fn set_status_page(&self, status_page: &impl IsA) {
+ unsafe {
+ ffi::phosh_quick_setting_set_status_page(self.as_ref().to_glib_none().0, status_page.as_ref().to_glib_none().0);
+ }
+ }
+
+ #[doc(alias = "clicked")]
+ fn connect_clicked(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn clicked_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshQuickSetting, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(QuickSetting::from_glib_borrow(this).unsafe_cast_ref())
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"clicked".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(clicked_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+
+ #[doc(alias = "hide-status")]
+ fn connect_hide_status(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn hide_status_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshQuickSetting, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(QuickSetting::from_glib_borrow(this).unsafe_cast_ref())
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"hide-status".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(hide_status_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+
+ #[doc(alias = "long-pressed")]
+ fn connect_long_pressed(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn long_pressed_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshQuickSetting, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(QuickSetting::from_glib_borrow(this).unsafe_cast_ref())
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"long-pressed".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(long_pressed_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+
+ #[doc(alias = "show-status")]
+ fn connect_show_status(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn show_status_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshQuickSetting, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(QuickSetting::from_glib_borrow(this).unsafe_cast_ref())
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"show-status".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(show_status_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+
+ #[doc(alias = "active")]
+ fn connect_active_notify(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn notify_active_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshQuickSetting, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(QuickSetting::from_glib_borrow(this).unsafe_cast_ref())
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"notify::active".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(notify_active_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+
+ #[doc(alias = "can-show-status")]
+ fn connect_can_show_status_notify(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn notify_can_show_status_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshQuickSetting, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(QuickSetting::from_glib_borrow(this).unsafe_cast_ref())
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"notify::can-show-status".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(notify_can_show_status_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+
+ #[doc(alias = "long-press-action-name")]
+ fn connect_long_press_action_name_notify(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn notify_long_press_action_name_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshQuickSetting, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(QuickSetting::from_glib_borrow(this).unsafe_cast_ref())
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"notify::long-press-action-name".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(notify_long_press_action_name_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+
+ #[doc(alias = "long-press-action-target")]
+ fn connect_long_press_action_target_notify(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn notify_long_press_action_target_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshQuickSetting, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(QuickSetting::from_glib_borrow(this).unsafe_cast_ref())
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"notify::long-press-action-target".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(notify_long_press_action_target_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+
+ #[doc(alias = "showing-status")]
+ fn connect_showing_status_notify(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn notify_showing_status_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshQuickSetting, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(QuickSetting::from_glib_borrow(this).unsafe_cast_ref())
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"notify::showing-status".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(notify_showing_status_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+
+ #[doc(alias = "status-icon")]
+ fn connect_status_icon_notify(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn notify_status_icon_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshQuickSetting, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(QuickSetting::from_glib_borrow(this).unsafe_cast_ref())
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"notify::status-icon".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(notify_status_icon_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+
+ #[doc(alias = "status-page")]
+ fn connect_status_page_notify(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn notify_status_page_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshQuickSetting, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(QuickSetting::from_glib_borrow(this).unsafe_cast_ref())
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"notify::status-page".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(notify_status_page_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+}
+
+impl> QuickSettingExt for O {}
diff --git a/libphosh-rs/libphosh/src/auto/screenshot_manager.rs b/libphosh-rs/libphosh/src/auto/screenshot_manager.rs
new file mode 100644
index 000000000..1820e9ab6
--- /dev/null
+++ b/libphosh-rs/libphosh/src/auto/screenshot_manager.rs
@@ -0,0 +1,39 @@
+// This file was generated by gir (https://github.com/gtk-rs/gir)
+// from ..
+// from ../gir-files
+// DO NOT EDIT
+
+use crate::{ffi};
+use glib::{translate::*};
+
+glib::wrapper! {
+ #[doc(alias = "PhoshScreenshotManager")]
+ pub struct ScreenshotManager(Object);
+
+ match fn {
+ type_ => || ffi::phosh_screenshot_manager_get_type(),
+ }
+}
+
+impl ScreenshotManager {
+ #[doc(alias = "phosh_screenshot_manager_new")]
+ pub fn new() -> ScreenshotManager {
+ assert_initialized_main_thread!();
+ unsafe {
+ from_glib_full(ffi::phosh_screenshot_manager_new())
+ }
+ }
+
+ #[doc(alias = "phosh_screenshot_manager_take_screenshot")]
+ pub fn take_screenshot(&self, area: Option<&gdk::Rectangle>, filename: Option<&str>, copy_to_clipboard: bool, include_cursor: bool) -> bool {
+ unsafe {
+ from_glib(ffi::phosh_screenshot_manager_take_screenshot(self.to_glib_none().0, area.to_glib_none().0, filename.to_glib_none().0, copy_to_clipboard.into_glib(), include_cursor.into_glib()))
+ }
+ }
+}
+
+impl Default for ScreenshotManager {
+ fn default() -> Self {
+ Self::new()
+ }
+ }
diff --git a/libphosh-rs/libphosh/src/auto/shell.rs b/libphosh-rs/libphosh/src/auto/shell.rs
new file mode 100644
index 000000000..fed862c84
--- /dev/null
+++ b/libphosh-rs/libphosh/src/auto/shell.rs
@@ -0,0 +1,226 @@
+// This file was generated by gir (https://github.com/gtk-rs/gir)
+// from ..
+// from ../gir-files
+// DO NOT EDIT
+
+use crate::{ffi,LockscreenManager,ScreenshotManager};
+use glib::{object::ObjectType as _,prelude::*,signal::{connect_raw, SignalHandlerId},translate::*};
+use std::{boxed::Box as Box_};
+
+glib::wrapper! {
+ #[doc(alias = "PhoshShell")]
+ pub struct Shell(Object);
+
+ match fn {
+ type_ => || ffi::phosh_shell_get_type(),
+ }
+}
+
+impl Shell {
+ pub const NONE: Option<&'static Shell> = None;
+
+
+ #[doc(alias = "phosh_shell_new")]
+ pub fn new() -> Shell {
+ assert_initialized_main_thread!();
+ unsafe {
+ from_glib_full(ffi::phosh_shell_new())
+ }
+ }
+
+ // rustdoc-stripper-ignore-next
+ /// Creates a new builder-pattern struct instance to construct [`Shell`] objects.
+ ///
+ /// This method returns an instance of [`ShellBuilder`](crate::builders::ShellBuilder) which can be used to create [`Shell`] objects.
+ pub fn builder() -> ShellBuilder {
+ ShellBuilder::new()
+ }
+
+
+ #[doc(alias = "phosh_shell_get_default")]
+ #[doc(alias = "get_default")]
+ #[allow(clippy::should_implement_trait)] pub fn default() -> Shell {
+ assert_initialized_main_thread!();
+ unsafe {
+ from_glib_none(ffi::phosh_shell_get_default())
+ }
+ }
+}
+
+impl Default for Shell {
+ fn default() -> Self {
+ Self::new()
+ }
+ }
+
+// rustdoc-stripper-ignore-next
+ /// A [builder-pattern] type to construct [`Shell`] objects.
+ ///
+ /// [builder-pattern]: https://doc.rust-lang.org/1.0.0/style/ownership/builders.html
+#[must_use = "The builder must be built to be used"]
+pub struct ShellBuilder {
+ builder: glib::object::ObjectBuilder<'static, Shell>,
+ }
+
+ impl ShellBuilder {
+ fn new() -> Self {
+ Self { builder: glib::object::Object::builder() }
+ }
+
+ pub fn docked(self, docked: bool) -> Self {
+ Self { builder: self.builder.property("docked", docked), }
+ }
+
+ pub fn locked(self, locked: bool) -> Self {
+ Self { builder: self.builder.property("locked", locked), }
+ }
+
+ pub fn overview_visible(self, overview_visible: bool) -> Self {
+ Self { builder: self.builder.property("overview-visible", overview_visible), }
+ }
+
+ // rustdoc-stripper-ignore-next
+ /// Build the [`Shell`].
+ #[must_use = "Building the object from the builder is usually expensive and is not expected to have side effects"]
+ pub fn build(self) -> Shell {
+assert_initialized_main_thread!();
+ self.builder.build() }
+}
+
+pub trait ShellExt: IsA + 'static {
+ #[doc(alias = "phosh_shell_fade_out")]
+ fn fade_out(&self, timeout: u32) {
+ unsafe {
+ ffi::phosh_shell_fade_out(self.as_ref().to_glib_none().0, timeout);
+ }
+ }
+
+ #[doc(alias = "phosh_shell_get_locked")]
+ #[doc(alias = "get_locked")]
+ #[doc(alias = "locked")]
+ fn is_locked(&self) -> bool {
+ unsafe {
+ from_glib(ffi::phosh_shell_get_locked(self.as_ref().to_glib_none().0))
+ }
+ }
+
+ #[doc(alias = "phosh_shell_get_lockscreen_manager")]
+ #[doc(alias = "get_lockscreen_manager")]
+ fn lockscreen_manager(&self) -> LockscreenManager {
+ unsafe {
+ from_glib_none(ffi::phosh_shell_get_lockscreen_manager(self.as_ref().to_glib_none().0))
+ }
+ }
+
+ #[doc(alias = "phosh_shell_get_lockscreen_type")]
+ #[doc(alias = "get_lockscreen_type")]
+ fn lockscreen_type(&self) -> glib::types::Type {
+ unsafe {
+ from_glib(ffi::phosh_shell_get_lockscreen_type(self.as_ref().to_glib_none().0))
+ }
+ }
+
+ #[doc(alias = "phosh_shell_get_screenshot_manager")]
+ #[doc(alias = "get_screenshot_manager")]
+ fn screenshot_manager(&self) -> ScreenshotManager {
+ unsafe {
+ from_glib_none(ffi::phosh_shell_get_screenshot_manager(self.as_ref().to_glib_none().0))
+ }
+ }
+
+ #[doc(alias = "phosh_shell_get_usable_area")]
+ #[doc(alias = "get_usable_area")]
+ fn usable_area(&self) -> (i32, i32, i32, i32) {
+ unsafe {
+ let mut x = std::mem::MaybeUninit::uninit();
+ let mut y = std::mem::MaybeUninit::uninit();
+ let mut width = std::mem::MaybeUninit::uninit();
+ let mut height = std::mem::MaybeUninit::uninit();
+ ffi::phosh_shell_get_usable_area(self.as_ref().to_glib_none().0, x.as_mut_ptr(), y.as_mut_ptr(), width.as_mut_ptr(), height.as_mut_ptr());
+ (x.assume_init(), y.assume_init(), width.assume_init(), height.assume_init())
+ }
+ }
+
+ #[doc(alias = "phosh_shell_set_default")]
+ fn set_default(&self) {
+ unsafe {
+ ffi::phosh_shell_set_default(self.as_ref().to_glib_none().0);
+ }
+ }
+
+ fn is_docked(&self) -> bool {
+ ObjectExt::property(self.as_ref(), "docked")
+ }
+
+ fn set_docked(&self, docked: bool) {
+ ObjectExt::set_property(self.as_ref(),"docked", docked)
+ }
+
+ fn set_locked(&self, locked: bool) {
+ ObjectExt::set_property(self.as_ref(),"locked", locked)
+ }
+
+ #[doc(alias = "overview-visible")]
+ fn is_overview_visible(&self) -> bool {
+ ObjectExt::property(self.as_ref(), "overview-visible")
+ }
+
+ #[doc(alias = "overview-visible")]
+ fn set_overview_visible(&self, overview_visible: bool) {
+ ObjectExt::set_property(self.as_ref(),"overview-visible", overview_visible)
+ }
+
+ #[doc(alias = "ready")]
+ fn connect_ready(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn ready_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshShell, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(Shell::from_glib_borrow(this).unsafe_cast_ref())
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"ready".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(ready_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+
+ #[doc(alias = "docked")]
+ fn connect_docked_notify(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn notify_docked_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshShell, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(Shell::from_glib_borrow(this).unsafe_cast_ref())
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"notify::docked".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(notify_docked_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+
+ #[doc(alias = "locked")]
+ fn connect_locked_notify(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn notify_locked_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshShell, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(Shell::from_glib_borrow(this).unsafe_cast_ref())
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"notify::locked".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(notify_locked_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+
+ #[doc(alias = "overview-visible")]
+ fn connect_overview_visible_notify(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn notify_overview_visible_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshShell, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(Shell::from_glib_borrow(this).unsafe_cast_ref())
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"notify::overview-visible".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(notify_overview_visible_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+}
+
+impl> ShellExt for O {}
diff --git a/libphosh-rs/libphosh/src/auto/status_icon.rs b/libphosh-rs/libphosh/src/auto/status_icon.rs
new file mode 100644
index 000000000..840210fbd
--- /dev/null
+++ b/libphosh-rs/libphosh/src/auto/status_icon.rs
@@ -0,0 +1,432 @@
+// This file was generated by gir (https://github.com/gtk-rs/gir)
+// from ..
+// from ../gir-files
+// DO NOT EDIT
+
+use crate::{ffi};
+use glib::{prelude::*,signal::{connect_raw, SignalHandlerId},translate::*};
+use std::{boxed::Box as Box_};
+
+glib::wrapper! {
+ #[doc(alias = "PhoshStatusIcon")]
+ pub struct StatusIcon(Object) @extends gtk::Bin, gtk::Container, gtk::Widget;
+
+ match fn {
+ type_ => || ffi::phosh_status_icon_get_type(),
+ }
+}
+
+impl StatusIcon {
+ pub const NONE: Option<&'static StatusIcon> = None;
+
+
+ #[doc(alias = "phosh_status_icon_new")]
+ pub fn new() -> StatusIcon {
+ assert_initialized_main_thread!();
+ unsafe {
+ gtk::Widget::from_glib_none(ffi::phosh_status_icon_new()).unsafe_cast()
+ }
+ }
+
+ // rustdoc-stripper-ignore-next
+ /// Creates a new builder-pattern struct instance to construct [`StatusIcon`] objects.
+ ///
+ /// This method returns an instance of [`StatusIconBuilder`](crate::builders::StatusIconBuilder) which can be used to create [`StatusIcon`] objects.
+ pub fn builder() -> StatusIconBuilder {
+ StatusIconBuilder::new()
+ }
+
+}
+
+impl Default for StatusIcon {
+ fn default() -> Self {
+ Self::new()
+ }
+ }
+
+// rustdoc-stripper-ignore-next
+ /// A [builder-pattern] type to construct [`StatusIcon`] objects.
+ ///
+ /// [builder-pattern]: https://doc.rust-lang.org/1.0.0/style/ownership/builders.html
+#[must_use = "The builder must be built to be used"]
+pub struct StatusIconBuilder {
+ builder: glib::object::ObjectBuilder<'static, StatusIcon>,
+ }
+
+ impl StatusIconBuilder {
+ fn new() -> Self {
+ Self { builder: glib::object::Object::builder() }
+ }
+
+ pub fn extra_widget(self, extra_widget: &impl IsA) -> Self {
+ Self { builder: self.builder.property("extra-widget", extra_widget.clone().upcast()), }
+ }
+
+ pub fn icon_name(self, icon_name: impl Into) -> Self {
+ Self { builder: self.builder.property("icon-name", icon_name.into()), }
+ }
+
+ //pub fn icon_size(self, icon_size: /*Ignored*/gtk::IconSize) -> Self {
+ // Self { builder: self.builder.property("icon-size", icon_size), }
+ //}
+
+ pub fn info(self, info: impl Into) -> Self {
+ Self { builder: self.builder.property("info", info.into()), }
+ }
+
+ pub fn pixel_size(self, pixel_size: u32) -> Self {
+ Self { builder: self.builder.property("pixel-size", pixel_size), }
+ }
+
+ pub fn border_width(self, border_width: u32) -> Self {
+ Self { builder: self.builder.property("border-width", border_width), }
+ }
+
+ pub fn child(self, child: &impl IsA) -> Self {
+ Self { builder: self.builder.property("child", child.clone().upcast()), }
+ }
+
+ //pub fn resize_mode(self, resize_mode: /*Ignored*/gtk::ResizeMode) -> Self {
+ // Self { builder: self.builder.property("resize-mode", resize_mode), }
+ //}
+
+ pub fn app_paintable(self, app_paintable: bool) -> Self {
+ Self { builder: self.builder.property("app-paintable", app_paintable), }
+ }
+
+ pub fn can_default(self, can_default: bool) -> Self {
+ Self { builder: self.builder.property("can-default", can_default), }
+ }
+
+ pub fn can_focus(self, can_focus: bool) -> Self {
+ Self { builder: self.builder.property("can-focus", can_focus), }
+ }
+
+ #[cfg(feature = "gtk_v2_18")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_18")))]
+ #[cfg_attr(feature = "v3_14", deprecated = "Since 3.14")]
+ pub fn double_buffered(self, double_buffered: bool) -> Self {
+ Self { builder: self.builder.property("double-buffered", double_buffered), }
+ }
+
+ //pub fn events(self, events: /*Ignored*/gdk::EventMask) -> Self {
+ // Self { builder: self.builder.property("events", events), }
+ //}
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn expand(self, expand: bool) -> Self {
+ Self { builder: self.builder.property("expand", expand), }
+ }
+
+ #[cfg(feature = "gtk_v3_20")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_20")))]
+ pub fn focus_on_click(self, focus_on_click: bool) -> Self {
+ Self { builder: self.builder.property("focus-on-click", focus_on_click), }
+ }
+
+ // #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ //pub fn halign(self, halign: /*Ignored*/gtk::Align) -> Self {
+ // Self { builder: self.builder.property("halign", halign), }
+ //}
+
+ pub fn has_default(self, has_default: bool) -> Self {
+ Self { builder: self.builder.property("has-default", has_default), }
+ }
+
+ pub fn has_focus(self, has_focus: bool) -> Self {
+ Self { builder: self.builder.property("has-focus", has_focus), }
+ }
+
+ #[cfg(feature = "gtk_v2_12")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_12")))]
+ pub fn has_tooltip(self, has_tooltip: bool) -> Self {
+ Self { builder: self.builder.property("has-tooltip", has_tooltip), }
+ }
+
+ pub fn height_request(self, height_request: i32) -> Self {
+ Self { builder: self.builder.property("height-request", height_request), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn hexpand(self, hexpand: bool) -> Self {
+ Self { builder: self.builder.property("hexpand", hexpand), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn hexpand_set(self, hexpand_set: bool) -> Self {
+ Self { builder: self.builder.property("hexpand-set", hexpand_set), }
+ }
+
+ pub fn is_focus(self, is_focus: bool) -> Self {
+ Self { builder: self.builder.property("is-focus", is_focus), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn margin(self, margin: i32) -> Self {
+ Self { builder: self.builder.property("margin", margin), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn margin_bottom(self, margin_bottom: i32) -> Self {
+ Self { builder: self.builder.property("margin-bottom", margin_bottom), }
+ }
+
+ #[cfg(feature = "gtk_v3_12")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_12")))]
+ pub fn margin_end(self, margin_end: i32) -> Self {
+ Self { builder: self.builder.property("margin-end", margin_end), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ #[cfg_attr(feature = "v3_12", deprecated = "Since 3.12")]
+ pub fn margin_left(self, margin_left: i32) -> Self {
+ Self { builder: self.builder.property("margin-left", margin_left), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ #[cfg_attr(feature = "v3_12", deprecated = "Since 3.12")]
+ pub fn margin_right(self, margin_right: i32) -> Self {
+ Self { builder: self.builder.property("margin-right", margin_right), }
+ }
+
+ #[cfg(feature = "gtk_v3_12")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_12")))]
+ pub fn margin_start(self, margin_start: i32) -> Self {
+ Self { builder: self.builder.property("margin-start", margin_start), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn margin_top(self, margin_top: i32) -> Self {
+ Self { builder: self.builder.property("margin-top", margin_top), }
+ }
+
+ pub fn name(self, name: impl Into) -> Self {
+ Self { builder: self.builder.property("name", name.into()), }
+ }
+
+ pub fn no_show_all(self, no_show_all: bool) -> Self {
+ Self { builder: self.builder.property("no-show-all", no_show_all), }
+ }
+
+ #[cfg(feature = "gtk_v3_8")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_8")))]
+ pub fn opacity(self, opacity: f64) -> Self {
+ Self { builder: self.builder.property("opacity", opacity), }
+ }
+
+ pub fn parent(self, parent: &impl IsA) -> Self {
+ Self { builder: self.builder.property("parent", parent.clone().upcast()), }
+ }
+
+ pub fn receives_default(self, receives_default: bool) -> Self {
+ Self { builder: self.builder.property("receives-default", receives_default), }
+ }
+
+ pub fn sensitive(self, sensitive: bool) -> Self {
+ Self { builder: self.builder.property("sensitive", sensitive), }
+ }
+
+ //pub fn style(self, style: &impl IsA*Ignored*/gtk::Style>) -> Self {
+ // Self { builder: self.builder.property("style", style.clone().upcast()), }
+ //}
+
+ #[cfg(feature = "gtk_v2_12")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_12")))]
+ pub fn tooltip_markup(self, tooltip_markup: impl Into) -> Self {
+ Self { builder: self.builder.property("tooltip-markup", tooltip_markup.into()), }
+ }
+
+ #[cfg(feature = "gtk_v2_12")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_12")))]
+ pub fn tooltip_text(self, tooltip_text: impl Into) -> Self {
+ Self { builder: self.builder.property("tooltip-text", tooltip_text.into()), }
+ }
+
+ // #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ //pub fn valign(self, valign: /*Ignored*/gtk::Align) -> Self {
+ // Self { builder: self.builder.property("valign", valign), }
+ //}
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn vexpand(self, vexpand: bool) -> Self {
+ Self { builder: self.builder.property("vexpand", vexpand), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn vexpand_set(self, vexpand_set: bool) -> Self {
+ Self { builder: self.builder.property("vexpand-set", vexpand_set), }
+ }
+
+ pub fn visible(self, visible: bool) -> Self {
+ Self { builder: self.builder.property("visible", visible), }
+ }
+
+ pub fn width_request(self, width_request: i32) -> Self {
+ Self { builder: self.builder.property("width-request", width_request), }
+ }
+
+ // rustdoc-stripper-ignore-next
+ /// Build the [`StatusIcon`].
+ #[must_use = "Building the object from the builder is usually expensive and is not expected to have side effects"]
+ pub fn build(self) -> StatusIcon {
+assert_initialized_main_thread!();
+ self.builder.build() }
+}
+
+pub trait StatusIconExt: IsA + 'static {
+ #[doc(alias = "phosh_status_icon_get_extra_widget")]
+ #[doc(alias = "get_extra_widget")]
+ #[doc(alias = "extra-widget")]
+ fn extra_widget(&self) -> Option {
+ unsafe {
+ from_glib_none(ffi::phosh_status_icon_get_extra_widget(self.as_ref().to_glib_none().0))
+ }
+ }
+
+ #[doc(alias = "phosh_status_icon_get_icon_name")]
+ #[doc(alias = "get_icon_name")]
+ #[doc(alias = "icon-name")]
+ fn icon_name(&self) -> glib::GString {
+ unsafe {
+ from_glib_full(ffi::phosh_status_icon_get_icon_name(self.as_ref().to_glib_none().0))
+ }
+ }
+
+ #[doc(alias = "phosh_status_icon_get_info")]
+ #[doc(alias = "get_info")]
+ fn info(&self) -> glib::GString {
+ unsafe {
+ from_glib_full(ffi::phosh_status_icon_get_info(self.as_ref().to_glib_none().0))
+ }
+ }
+
+ #[doc(alias = "phosh_status_icon_get_pixel_size")]
+ #[doc(alias = "get_pixel_size")]
+ #[doc(alias = "pixel-size")]
+ fn pixel_size(&self) -> u32 {
+ unsafe {
+ ffi::phosh_status_icon_get_pixel_size(self.as_ref().to_glib_none().0)
+ }
+ }
+
+ #[doc(alias = "phosh_status_icon_set_extra_widget")]
+ #[doc(alias = "extra-widget")]
+ fn set_extra_widget(&self, widget: &impl IsA) {
+ unsafe {
+ ffi::phosh_status_icon_set_extra_widget(self.as_ref().to_glib_none().0, widget.as_ref().to_glib_none().0);
+ }
+ }
+
+ #[doc(alias = "phosh_status_icon_set_icon_name")]
+ #[doc(alias = "icon-name")]
+ fn set_icon_name(&self, icon_name: &str) {
+ unsafe {
+ ffi::phosh_status_icon_set_icon_name(self.as_ref().to_glib_none().0, icon_name.to_glib_none().0);
+ }
+ }
+
+ #[doc(alias = "phosh_status_icon_set_info")]
+ #[doc(alias = "info")]
+ fn set_info(&self, info: &str) {
+ unsafe {
+ ffi::phosh_status_icon_set_info(self.as_ref().to_glib_none().0, info.to_glib_none().0);
+ }
+ }
+
+ #[doc(alias = "phosh_status_icon_set_pixel_size")]
+ #[doc(alias = "pixel-size")]
+ fn set_pixel_size(&self, size: u32) {
+ unsafe {
+ ffi::phosh_status_icon_set_pixel_size(self.as_ref().to_glib_none().0, size);
+ }
+ }
+
+ //#[doc(alias = "icon-size")]
+ //fn icon_size(&self) -> /*Ignored*/gtk::IconSize {
+ // ObjectExt::property(self.as_ref(), "icon-size")
+ //}
+
+ //#[doc(alias = "icon-size")]
+ //fn set_icon_size(&self, icon_size: /*Ignored*/gtk::IconSize) {
+ // ObjectExt::set_property(self.as_ref(),"icon-size", icon_size)
+ //}
+
+ #[doc(alias = "extra-widget")]
+ fn connect_extra_widget_notify(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn notify_extra_widget_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshStatusIcon, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(StatusIcon::from_glib_borrow(this).unsafe_cast_ref())
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"notify::extra-widget".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(notify_extra_widget_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+
+ #[doc(alias = "icon-name")]
+ fn connect_icon_name_notify(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn notify_icon_name_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshStatusIcon, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(StatusIcon::from_glib_borrow(this).unsafe_cast_ref())
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"notify::icon-name".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(notify_icon_name_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+
+ #[doc(alias = "icon-size")]
+ fn connect_icon_size_notify(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn notify_icon_size_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshStatusIcon, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(StatusIcon::from_glib_borrow(this).unsafe_cast_ref())
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"notify::icon-size".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(notify_icon_size_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+
+ #[doc(alias = "info")]
+ fn connect_info_notify(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn notify_info_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshStatusIcon, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(StatusIcon::from_glib_borrow(this).unsafe_cast_ref())
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"notify::info".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(notify_info_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+
+ #[doc(alias = "pixel-size")]
+ fn connect_pixel_size_notify(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn notify_pixel_size_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshStatusIcon, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(StatusIcon::from_glib_borrow(this).unsafe_cast_ref())
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"notify::pixel-size".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(notify_pixel_size_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+}
+
+impl> StatusIconExt for O {}
diff --git a/libphosh-rs/libphosh/src/auto/status_page.rs b/libphosh-rs/libphosh/src/auto/status_page.rs
new file mode 100644
index 000000000..593f9d6b3
--- /dev/null
+++ b/libphosh-rs/libphosh/src/auto/status_page.rs
@@ -0,0 +1,415 @@
+// This file was generated by gir (https://github.com/gtk-rs/gir)
+// from ..
+// from ../gir-files
+// DO NOT EDIT
+
+use crate::{ffi};
+use glib::{object::ObjectType as _,prelude::*,signal::{connect_raw, SignalHandlerId},translate::*};
+use std::{boxed::Box as Box_};
+
+glib::wrapper! {
+ #[doc(alias = "PhoshStatusPage")]
+ pub struct StatusPage(Object) @extends gtk::Bin, gtk::Container, gtk::Widget;
+
+ match fn {
+ type_ => || ffi::phosh_status_page_get_type(),
+ }
+}
+
+impl StatusPage {
+ pub const NONE: Option<&'static StatusPage> = None;
+
+
+ #[doc(alias = "phosh_status_page_new")]
+ pub fn new() -> StatusPage {
+ assert_initialized_main_thread!();
+ unsafe {
+ from_glib_none(ffi::phosh_status_page_new())
+ }
+ }
+
+ // rustdoc-stripper-ignore-next
+ /// Creates a new builder-pattern struct instance to construct [`StatusPage`] objects.
+ ///
+ /// This method returns an instance of [`StatusPageBuilder`](crate::builders::StatusPageBuilder) which can be used to create [`StatusPage`] objects.
+ pub fn builder() -> StatusPageBuilder {
+ StatusPageBuilder::new()
+ }
+
+}
+
+impl Default for StatusPage {
+ fn default() -> Self {
+ Self::new()
+ }
+ }
+
+// rustdoc-stripper-ignore-next
+ /// A [builder-pattern] type to construct [`StatusPage`] objects.
+ ///
+ /// [builder-pattern]: https://doc.rust-lang.org/1.0.0/style/ownership/builders.html
+#[must_use = "The builder must be built to be used"]
+pub struct StatusPageBuilder {
+ builder: glib::object::ObjectBuilder<'static, StatusPage>,
+ }
+
+ impl StatusPageBuilder {
+ fn new() -> Self {
+ Self { builder: glib::object::Object::builder() }
+ }
+
+ pub fn content(self, content: &impl IsA) -> Self {
+ Self { builder: self.builder.property("content", content.clone().upcast()), }
+ }
+
+ pub fn footer(self, footer: &impl IsA) -> Self {
+ Self { builder: self.builder.property("footer", footer.clone().upcast()), }
+ }
+
+ pub fn header(self, header: &impl IsA) -> Self {
+ Self { builder: self.builder.property("header", header.clone().upcast()), }
+ }
+
+ pub fn title(self, title: impl Into) -> Self {
+ Self { builder: self.builder.property("title", title.into()), }
+ }
+
+ pub fn border_width(self, border_width: u32) -> Self {
+ Self { builder: self.builder.property("border-width", border_width), }
+ }
+
+ pub fn child(self, child: &impl IsA) -> Self {
+ Self { builder: self.builder.property("child", child.clone().upcast()), }
+ }
+
+ //pub fn resize_mode(self, resize_mode: /*Ignored*/gtk::ResizeMode) -> Self {
+ // Self { builder: self.builder.property("resize-mode", resize_mode), }
+ //}
+
+ pub fn app_paintable(self, app_paintable: bool) -> Self {
+ Self { builder: self.builder.property("app-paintable", app_paintable), }
+ }
+
+ pub fn can_default(self, can_default: bool) -> Self {
+ Self { builder: self.builder.property("can-default", can_default), }
+ }
+
+ pub fn can_focus(self, can_focus: bool) -> Self {
+ Self { builder: self.builder.property("can-focus", can_focus), }
+ }
+
+ #[cfg(feature = "gtk_v2_18")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_18")))]
+ #[cfg_attr(feature = "v3_14", deprecated = "Since 3.14")]
+ pub fn double_buffered(self, double_buffered: bool) -> Self {
+ Self { builder: self.builder.property("double-buffered", double_buffered), }
+ }
+
+ //pub fn events(self, events: /*Ignored*/gdk::EventMask) -> Self {
+ // Self { builder: self.builder.property("events", events), }
+ //}
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn expand(self, expand: bool) -> Self {
+ Self { builder: self.builder.property("expand", expand), }
+ }
+
+ #[cfg(feature = "gtk_v3_20")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_20")))]
+ pub fn focus_on_click(self, focus_on_click: bool) -> Self {
+ Self { builder: self.builder.property("focus-on-click", focus_on_click), }
+ }
+
+ // #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ //pub fn halign(self, halign: /*Ignored*/gtk::Align) -> Self {
+ // Self { builder: self.builder.property("halign", halign), }
+ //}
+
+ pub fn has_default(self, has_default: bool) -> Self {
+ Self { builder: self.builder.property("has-default", has_default), }
+ }
+
+ pub fn has_focus(self, has_focus: bool) -> Self {
+ Self { builder: self.builder.property("has-focus", has_focus), }
+ }
+
+ #[cfg(feature = "gtk_v2_12")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_12")))]
+ pub fn has_tooltip(self, has_tooltip: bool) -> Self {
+ Self { builder: self.builder.property("has-tooltip", has_tooltip), }
+ }
+
+ pub fn height_request(self, height_request: i32) -> Self {
+ Self { builder: self.builder.property("height-request", height_request), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn hexpand(self, hexpand: bool) -> Self {
+ Self { builder: self.builder.property("hexpand", hexpand), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn hexpand_set(self, hexpand_set: bool) -> Self {
+ Self { builder: self.builder.property("hexpand-set", hexpand_set), }
+ }
+
+ pub fn is_focus(self, is_focus: bool) -> Self {
+ Self { builder: self.builder.property("is-focus", is_focus), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn margin(self, margin: i32) -> Self {
+ Self { builder: self.builder.property("margin", margin), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn margin_bottom(self, margin_bottom: i32) -> Self {
+ Self { builder: self.builder.property("margin-bottom", margin_bottom), }
+ }
+
+ #[cfg(feature = "gtk_v3_12")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_12")))]
+ pub fn margin_end(self, margin_end: i32) -> Self {
+ Self { builder: self.builder.property("margin-end", margin_end), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ #[cfg_attr(feature = "v3_12", deprecated = "Since 3.12")]
+ pub fn margin_left(self, margin_left: i32) -> Self {
+ Self { builder: self.builder.property("margin-left", margin_left), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ #[cfg_attr(feature = "v3_12", deprecated = "Since 3.12")]
+ pub fn margin_right(self, margin_right: i32) -> Self {
+ Self { builder: self.builder.property("margin-right", margin_right), }
+ }
+
+ #[cfg(feature = "gtk_v3_12")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_12")))]
+ pub fn margin_start(self, margin_start: i32) -> Self {
+ Self { builder: self.builder.property("margin-start", margin_start), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn margin_top(self, margin_top: i32) -> Self {
+ Self { builder: self.builder.property("margin-top", margin_top), }
+ }
+
+ pub fn name(self, name: impl Into) -> Self {
+ Self { builder: self.builder.property("name", name.into()), }
+ }
+
+ pub fn no_show_all(self, no_show_all: bool) -> Self {
+ Self { builder: self.builder.property("no-show-all", no_show_all), }
+ }
+
+ #[cfg(feature = "gtk_v3_8")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_8")))]
+ pub fn opacity(self, opacity: f64) -> Self {
+ Self { builder: self.builder.property("opacity", opacity), }
+ }
+
+ pub fn parent(self, parent: &impl IsA) -> Self {
+ Self { builder: self.builder.property("parent", parent.clone().upcast()), }
+ }
+
+ pub fn receives_default(self, receives_default: bool) -> Self {
+ Self { builder: self.builder.property("receives-default", receives_default), }
+ }
+
+ pub fn sensitive(self, sensitive: bool) -> Self {
+ Self { builder: self.builder.property("sensitive", sensitive), }
+ }
+
+ //pub fn style(self, style: &impl IsA*Ignored*/gtk::Style>) -> Self {
+ // Self { builder: self.builder.property("style", style.clone().upcast()), }
+ //}
+
+ #[cfg(feature = "gtk_v2_12")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_12")))]
+ pub fn tooltip_markup(self, tooltip_markup: impl Into) -> Self {
+ Self { builder: self.builder.property("tooltip-markup", tooltip_markup.into()), }
+ }
+
+ #[cfg(feature = "gtk_v2_12")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_12")))]
+ pub fn tooltip_text(self, tooltip_text: impl Into) -> Self {
+ Self { builder: self.builder.property("tooltip-text", tooltip_text.into()), }
+ }
+
+ // #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ //pub fn valign(self, valign: /*Ignored*/gtk::Align) -> Self {
+ // Self { builder: self.builder.property("valign", valign), }
+ //}
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn vexpand(self, vexpand: bool) -> Self {
+ Self { builder: self.builder.property("vexpand", vexpand), }
+ }
+
+ #[cfg(feature = "gtk_v3")]
+ #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))]
+ pub fn vexpand_set(self, vexpand_set: bool) -> Self {
+ Self { builder: self.builder.property("vexpand-set", vexpand_set), }
+ }
+
+ pub fn visible(self, visible: bool) -> Self {
+ Self { builder: self.builder.property("visible", visible), }
+ }
+
+ pub fn width_request(self, width_request: i32) -> Self {
+ Self { builder: self.builder.property("width-request", width_request), }
+ }
+
+ // rustdoc-stripper-ignore-next
+ /// Build the [`StatusPage`].
+ #[must_use = "Building the object from the builder is usually expensive and is not expected to have side effects"]
+ pub fn build(self) -> StatusPage {
+assert_initialized_main_thread!();
+ self.builder.build() }
+}
+
+pub trait StatusPageExt: IsA + 'static {
+ #[doc(alias = "phosh_status_page_get_content")]
+ #[doc(alias = "get_content")]
+ fn content(&self) -> gtk::Widget {
+ unsafe {
+ from_glib_none(ffi::phosh_status_page_get_content(self.as_ref().to_glib_none().0))
+ }
+ }
+
+ #[doc(alias = "phosh_status_page_get_footer")]
+ #[doc(alias = "get_footer")]
+ fn footer(&self) -> gtk::Widget {
+ unsafe {
+ from_glib_none(ffi::phosh_status_page_get_footer(self.as_ref().to_glib_none().0))
+ }
+ }
+
+ #[doc(alias = "phosh_status_page_get_header")]
+ #[doc(alias = "get_header")]
+ fn header(&self) -> gtk::Widget {
+ unsafe {
+ from_glib_none(ffi::phosh_status_page_get_header(self.as_ref().to_glib_none().0))
+ }
+ }
+
+ #[doc(alias = "phosh_status_page_get_title")]
+ #[doc(alias = "get_title")]
+ fn title(&self) -> glib::GString {
+ unsafe {
+ from_glib_none(ffi::phosh_status_page_get_title(self.as_ref().to_glib_none().0))
+ }
+ }
+
+ #[doc(alias = "phosh_status_page_set_content")]
+ #[doc(alias = "content")]
+ fn set_content(&self, content: &impl IsA) {
+ unsafe {
+ ffi::phosh_status_page_set_content(self.as_ref().to_glib_none().0, content.as_ref().to_glib_none().0);
+ }
+ }
+
+ #[doc(alias = "phosh_status_page_set_footer")]
+ #[doc(alias = "footer")]
+ fn set_footer(&self, footer: &impl IsA) {
+ unsafe {
+ ffi::phosh_status_page_set_footer(self.as_ref().to_glib_none().0, footer.as_ref().to_glib_none().0);
+ }
+ }
+
+ #[doc(alias = "phosh_status_page_set_header")]
+ #[doc(alias = "header")]
+ fn set_header(&self, header: &impl IsA) {
+ unsafe {
+ ffi::phosh_status_page_set_header(self.as_ref().to_glib_none().0, header.as_ref().to_glib_none().0);
+ }
+ }
+
+ #[doc(alias = "phosh_status_page_set_title")]
+ #[doc(alias = "title")]
+ fn set_title(&self, title: &str) {
+ unsafe {
+ ffi::phosh_status_page_set_title(self.as_ref().to_glib_none().0, title.to_glib_none().0);
+ }
+ }
+
+ #[doc(alias = "done")]
+ fn connect_done(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn done_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshStatusPage, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(StatusPage::from_glib_borrow(this).unsafe_cast_ref())
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"done".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(done_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+
+ #[doc(alias = "content")]
+ fn connect_content_notify(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn notify_content_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshStatusPage, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(StatusPage::from_glib_borrow(this).unsafe_cast_ref())
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"notify::content".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(notify_content_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+
+ #[doc(alias = "footer")]
+ fn connect_footer_notify(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn notify_footer_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshStatusPage, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(StatusPage::from_glib_borrow(this).unsafe_cast_ref())
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"notify::footer".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(notify_footer_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+
+ #[doc(alias = "header")]
+ fn connect_header_notify(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn notify_header_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshStatusPage, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(StatusPage::from_glib_borrow(this).unsafe_cast_ref())
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"notify::header".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(notify_header_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+
+ #[doc(alias = "title")]
+ fn connect_title_notify(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn notify_title_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshStatusPage, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(StatusPage::from_glib_borrow(this).unsafe_cast_ref())
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"notify::title".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(notify_title_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+}
+
+impl> StatusPageExt for O {}
diff --git a/libphosh-rs/libphosh/src/auto/versions.txt b/libphosh-rs/libphosh/src/auto/versions.txt
new file mode 100644
index 000000000..5d930cef5
--- /dev/null
+++ b/libphosh-rs/libphosh/src/auto/versions.txt
@@ -0,0 +1,3 @@
+Generated by gir (https://github.com/gtk-rs/gir @ be9aa145267c)
+from .. (@ b4c1dbc27547+)
+from ../gir-files (@ 6cd7b656acd6)
diff --git a/libphosh-rs/libphosh/src/auto/wall_clock.rs b/libphosh-rs/libphosh/src/auto/wall_clock.rs
new file mode 100644
index 000000000..e88cce938
--- /dev/null
+++ b/libphosh-rs/libphosh/src/auto/wall_clock.rs
@@ -0,0 +1,111 @@
+// This file was generated by gir (https://github.com/gtk-rs/gir)
+// from ..
+// from ../gir-files
+// DO NOT EDIT
+
+use crate::{ffi};
+use glib::{prelude::*,signal::{connect_raw, SignalHandlerId},translate::*};
+use std::{boxed::Box as Box_};
+
+glib::wrapper! {
+ #[doc(alias = "PhoshWallClock")]
+ pub struct WallClock(Object);
+
+ match fn {
+ type_ => || ffi::phosh_wall_clock_get_type(),
+ }
+}
+
+impl WallClock {
+ pub const NONE: Option<&'static WallClock> = None;
+
+
+ #[doc(alias = "phosh_wall_clock_new")]
+ pub fn new() -> WallClock {
+ assert_initialized_main_thread!();
+ unsafe {
+ from_glib_full(ffi::phosh_wall_clock_new())
+ }
+ }
+
+ #[doc(alias = "phosh_wall_clock_get_default")]
+ #[doc(alias = "get_default")]
+ #[allow(clippy::should_implement_trait)] pub fn default() -> WallClock {
+ assert_initialized_main_thread!();
+ unsafe {
+ from_glib_none(ffi::phosh_wall_clock_get_default())
+ }
+ }
+}
+
+impl Default for WallClock {
+ fn default() -> Self {
+ Self::new()
+ }
+ }
+
+pub trait WallClockExt: IsA + 'static {
+ #[doc(alias = "phosh_wall_clock_get_clock")]
+ #[doc(alias = "get_clock")]
+ fn clock(&self, time_only: bool) -> glib::GString {
+ unsafe {
+ from_glib_none(ffi::phosh_wall_clock_get_clock(self.as_ref().to_glib_none().0, time_only.into_glib()))
+ }
+ }
+
+ #[doc(alias = "phosh_wall_clock_local_date")]
+ fn local_date(&self) -> glib::GString {
+ unsafe {
+ from_glib_full(ffi::phosh_wall_clock_local_date(self.as_ref().to_glib_none().0))
+ }
+ }
+
+ #[doc(alias = "phosh_wall_clock_set_default")]
+ fn set_default(&self) {
+ unsafe {
+ ffi::phosh_wall_clock_set_default(self.as_ref().to_glib_none().0);
+ }
+ }
+
+ //#[doc(alias = "phosh_wall_clock_string_for_datetime")]
+ //fn string_for_datetime(&self, datetime: /*Ignored*/&glib::DateTime, clock_format: /*Ignored*/gdesktop_enums::ClockFormat, show_full_date: bool) -> glib::GString {
+ // unsafe { TODO: call ffi:phosh_wall_clock_string_for_datetime() }
+ //}
+
+ #[doc(alias = "date-time")]
+ fn date_time(&self) -> Option {
+ ObjectExt::property(self.as_ref(), "date-time")
+ }
+
+ fn time(&self) -> Option {
+ ObjectExt::property(self.as_ref(), "time")
+ }
+
+ #[doc(alias = "date-time")]
+ fn connect_date_time_notify(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn notify_date_time_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshWallClock, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(WallClock::from_glib_borrow(this).unsafe_cast_ref())
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"notify::date-time".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(notify_date_time_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+
+ #[doc(alias = "time")]
+ fn connect_time_notify(&self, f: F) -> SignalHandlerId {
+ unsafe extern "C" fn notify_time_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshWallClock, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) {
+ let f: &F = &*(f as *const F);
+ f(WallClock::from_glib_borrow(this).unsafe_cast_ref())
+ }
+ unsafe {
+ let f: Box_ = Box_::new(f);
+ connect_raw(self.as_ptr() as *mut _, c"notify::time".as_ptr() as *const _,
+ Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(notify_time_trampoline:: as *const ())), Box_::into_raw(f))
+ }
+ }
+}
+
+impl> WallClockExt for O {}
diff --git a/libphosh-rs/libphosh/src/lib.rs b/libphosh-rs/libphosh/src/lib.rs
new file mode 100644
index 000000000..91e3c5b69
--- /dev/null
+++ b/libphosh-rs/libphosh/src/lib.rs
@@ -0,0 +1,19 @@
+#![cfg_attr(docsrs, feature(doc_cfg))]
+
+// TODO
+macro_rules! assert_initialized_main_thread {
+ () => {};
+}
+
+// No-op
+macro_rules! skip_assert_initialized {
+ () => {};
+}
+
+pub use ffi;
+pub use auto::*;
+#[allow(unused_imports)]
+mod auto;
+pub mod subclass;
+
+pub mod prelude;
diff --git a/libphosh-rs/libphosh/src/prelude.rs b/libphosh-rs/libphosh/src/prelude.rs
new file mode 100644
index 000000000..10eeb9707
--- /dev/null
+++ b/libphosh-rs/libphosh/src/prelude.rs
@@ -0,0 +1,3 @@
+pub use crate::auto::traits::*;
+
+pub use glib::prelude::*;
diff --git a/libphosh-rs/libphosh/src/subclass/lockscreen.rs b/libphosh-rs/libphosh/src/subclass/lockscreen.rs
new file mode 100644
index 000000000..0975b1ff8
--- /dev/null
+++ b/libphosh-rs/libphosh/src/subclass/lockscreen.rs
@@ -0,0 +1,41 @@
+use glib::{Cast, Class, subclass::prelude::*};
+use glib::translate::ToGlibPtr;
+use gtk::subclass::prelude::*;
+use crate::Lockscreen;
+
+pub trait LockscreenImpl: LockscreenImplExt + ObjectImpl + WindowImpl {
+ fn unlock_submit(&self) {
+ self.parent_unlock_submit();
+ }
+}
+
+mod sealed {
+ pub trait Sealed {}
+ impl Sealed for T {}
+}
+
+pub trait LockscreenImplExt: sealed::Sealed + ObjectSubclass {
+ fn parent_unlock_submit(&self) {
+ unsafe {
+ let data = Self::type_data();
+ let parent_class = data.as_ref().parent_class() as *mut ffi::PhoshLockscreenClass;
+ if let Some(f) = (*parent_class).unlock_submit {
+ f(self.obj().unsafe_cast_ref::().to_glib_none().0);
+ }
+ }
+ }
+}
+impl LockscreenImplExt for T {}
+
+unsafe impl IsSubclassable for Lockscreen {
+ fn class_init(class: &mut Class) {
+ Self::parent_class_init::(class);
+ let klass = class.as_mut();
+ klass.unlock_submit = Some(crate::subclass::lockscreen::unlock_submit::);
+ }
+}
+
+unsafe extern "C" fn unlock_submit(ptr: *mut ffi::PhoshLockscreen) {
+ let instance = &*(ptr as *mut T::Instance);
+ instance.imp().unlock_submit();
+}
diff --git a/libphosh-rs/libphosh/src/subclass/mod.rs b/libphosh-rs/libphosh/src/subclass/mod.rs
new file mode 100644
index 000000000..cc0dac78c
--- /dev/null
+++ b/libphosh-rs/libphosh/src/subclass/mod.rs
@@ -0,0 +1,3 @@
+pub mod lockscreen;
+pub mod quick_setting;
+pub mod shell;
diff --git a/libphosh-rs/libphosh/src/subclass/quick_setting.rs b/libphosh-rs/libphosh/src/subclass/quick_setting.rs
new file mode 100644
index 000000000..7fe21fc57
--- /dev/null
+++ b/libphosh-rs/libphosh/src/subclass/quick_setting.rs
@@ -0,0 +1,20 @@
+use glib::{Class, subclass::prelude::*};
+use gtk::subclass::prelude::ButtonImpl;
+use crate::QuickSetting;
+
+pub trait QuickSettingImpl: QuickSettingImplExt + ObjectImpl + ButtonImpl {
+}
+
+mod sealed {
+ pub trait Sealed {}
+ impl Sealed for T {}
+}
+
+pub trait QuickSettingImplExt: sealed::Sealed + ObjectSubclass {}
+impl QuickSettingImplExt for T {}
+
+unsafe impl IsSubclassable for QuickSetting {
+ fn class_init(class: &mut Class) {
+ Self::parent_class_init::(class);
+ }
+}
diff --git a/libphosh-rs/libphosh/src/subclass/shell.rs b/libphosh-rs/libphosh/src/subclass/shell.rs
new file mode 100644
index 000000000..4c376e3c1
--- /dev/null
+++ b/libphosh-rs/libphosh/src/subclass/shell.rs
@@ -0,0 +1,43 @@
+use glib::{Class, prelude::*, subclass::prelude::*, Type};
+use glib::ffi::GType;
+use glib::translate::*;
+use crate::Shell;
+
+pub trait ShellImpl: ShellImplExt + ObjectImpl {
+ fn get_lockscreen_type(&self) -> Type {
+ self.parent_get_lockscreen_type()
+ }
+}
+
+mod sealed {
+ pub trait Sealed {}
+ impl Sealed for T {}
+}
+
+pub trait ShellImplExt: sealed::Sealed + ObjectSubclass {
+ fn parent_get_lockscreen_type(&self) -> Type {
+ unsafe {
+ let data = Self::type_data();
+ let parent_class = data.as_ref().parent_class() as *mut ffi::PhoshShellClass;
+ if let Some(f) = (*parent_class).get_lockscreen_type {
+ return from_glib(f(self.obj().unsafe_cast_ref::().to_glib_none().0));
+ }
+ return Type::UNIT;
+ }
+ }
+}
+impl ShellImplExt for T {}
+
+unsafe impl IsSubclassable for Shell {
+ fn class_init(class: &mut Class) {
+ Self::parent_class_init::(class);
+ let klass = class.as_mut();
+ klass.get_lockscreen_type = Some(get_lockscreen_type::)
+ }
+}
+
+unsafe extern "C" fn get_lockscreen_type(ptr: *mut ffi::PhoshShell) -> GType {
+ let instance = &*(ptr as *mut T::Instance);
+ let imp = instance.imp();
+ imp.get_lockscreen_type().into_glib()
+}
diff --git a/libphosh-rs/libphosh/sys/Cargo.lock b/libphosh-rs/libphosh/sys/Cargo.lock
new file mode 100644
index 000000000..72d9fd610
--- /dev/null
+++ b/libphosh-rs/libphosh/sys/Cargo.lock
@@ -0,0 +1,499 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "atk-sys"
+version = "0.18.1"
+source = "git+https://github.com/gtk-rs/gtk3-rs.git?branch=0.18#00133512bfc8bbb8e9be59b20e93406c6a3eeb21"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "bitflags"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
+
+[[package]]
+name = "cairo-sys-rs"
+version = "0.18.5"
+source = "git+https://github.com/gtk-rs/gtk-rs-core.git?branch=0.18#42b9caf98e03ded086362d9653ca58fe94dc8658"
+dependencies = [
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "cfg-expr"
+version = "0.15.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02"
+dependencies = [
+ "smallvec",
+ "target-lexicon",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "errno"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
+dependencies = [
+ "libc",
+ "windows-sys",
+]
+
+[[package]]
+name = "fastrand"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a"
+
+[[package]]
+name = "gdk-pixbuf-sys"
+version = "0.18.5"
+source = "git+https://github.com/gtk-rs/gtk-rs-core.git?branch=0.18#42b9caf98e03ded086362d9653ca58fe94dc8658"
+dependencies = [
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "gdk-sys"
+version = "0.18.1"
+source = "git+https://github.com/gtk-rs/gtk3-rs.git?branch=0.18#00133512bfc8bbb8e9be59b20e93406c6a3eeb21"
+dependencies = [
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pango-sys",
+ "pkg-config",
+ "system-deps",
+]
+
+[[package]]
+name = "gio-sys"
+version = "0.18.5"
+source = "git+https://github.com/gtk-rs/gtk-rs-core.git?branch=0.18#42b9caf98e03ded086362d9653ca58fe94dc8658"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+ "winapi",
+]
+
+[[package]]
+name = "glib-sys"
+version = "0.18.5"
+source = "git+https://github.com/gtk-rs/gtk-rs-core.git?branch=0.18#42b9caf98e03ded086362d9653ca58fe94dc8658"
+dependencies = [
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "gobject-sys"
+version = "0.18.5"
+source = "git+https://github.com/gtk-rs/gtk-rs-core.git?branch=0.18#42b9caf98e03ded086362d9653ca58fe94dc8658"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "gtk-sys"
+version = "0.18.1"
+source = "git+https://github.com/gtk-rs/gtk3-rs.git?branch=0.18#00133512bfc8bbb8e9be59b20e93406c6a3eeb21"
+dependencies = [
+ "atk-sys",
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gdk-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pango-sys",
+ "system-deps",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.14.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
+
+[[package]]
+name = "heck"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+
+[[package]]
+name = "indexmap"
+version = "2.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
+dependencies = [
+ "equivalent",
+ "hashbrown",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.154"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346"
+
+[[package]]
+name = "libhandy-sys"
+version = "0.11.0"
+source = "git+https://gitlab.gnome.org/World/Rust/libhandy-rs#0a0f18734e5054dee3c1667f7f04bb6e93214721"
+dependencies = [
+ "gdk-pixbuf-sys",
+ "gdk-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "gtk-sys",
+ "libc",
+ "pango-sys",
+ "pkg-config",
+ "system-deps",
+]
+
+[[package]]
+name = "libphosh-sys"
+version = "0.0.1"
+dependencies = [
+ "gdk-pixbuf-sys",
+ "gdk-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "gtk-sys",
+ "libc",
+ "libhandy-sys",
+ "pango-sys",
+ "shell-words",
+ "system-deps",
+ "tempfile",
+]
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+
+[[package]]
+name = "memchr"
+version = "2.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
+
+[[package]]
+name = "pango-sys"
+version = "0.18.5"
+source = "git+https://github.com/gtk-rs/gtk-rs-core.git?branch=0.18#42b9caf98e03ded086362d9653ca58fe94dc8658"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "pkg-config"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.82"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.36"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rustix"
+version = "0.38.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
+dependencies = [
+ "bitflags",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys",
+]
+
+[[package]]
+name = "serde"
+version = "1.0.201"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "780f1cebed1629e4753a1a38a3c72d30b97ec044f0aef68cb26650a3c5cf363c"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.201"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c5e405930b9796f1c00bee880d03fc7e0bb4b9a11afc776885ffe84320da2865"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "serde_spanned"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "shell-words"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
+
+[[package]]
+name = "smallvec"
+version = "1.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
+
+[[package]]
+name = "syn"
+version = "2.0.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "system-deps"
+version = "6.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349"
+dependencies = [
+ "cfg-expr",
+ "heck",
+ "pkg-config",
+ "toml",
+ "version-compare",
+]
+
+[[package]]
+name = "target-lexicon"
+version = "0.12.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
+
+[[package]]
+name = "tempfile"
+version = "3.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
+dependencies = [
+ "cfg-if",
+ "fastrand",
+ "rustix",
+ "windows-sys",
+]
+
+[[package]]
+name = "toml"
+version = "0.8.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3"
+dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.22.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3328d4f68a705b2a4498da1d580585d39a6510f98318a2cec3018a7ec61ddef"
+dependencies = [
+ "indexmap",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "version-compare"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
+dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
+
+[[package]]
+name = "winnow"
+version = "0.6.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3c52e9c97a68071b23e836c9380edae937f17b9c4667bd021973efc689f618d"
+dependencies = [
+ "memchr",
+]
diff --git a/libphosh-rs/libphosh/sys/Cargo.toml b/libphosh-rs/libphosh/sys/Cargo.toml
new file mode 100644
index 000000000..58d9ee718
--- /dev/null
+++ b/libphosh-rs/libphosh/sys/Cargo.toml
@@ -0,0 +1,60 @@
+[package]
+name = "libphosh-sys"
+version = "0.0.7"
+edition = "2021"
+build = "build.rs"
+authors = ["Guido Günther "]
+categories = ["api-bindings", "gui"]
+keywords = ["phosh", "gnome"]
+description = "FFI bindings for libphosh"
+license = "MIT"
+
+[package.metadata.system-deps.libphosh_0_45]
+name = "libphosh-0.45"
+version = "0.45"
+
+[package.metadata.docs.rs]
+rustc-args = ["--cfg", "docsrs"]
+rustdoc-args = ["--cfg", "docsrs", "--generate-link-to-definition"]
+all-features = true
+
+[lib]
+name = "phosh_sys"
+
+[dependencies]
+libc = "0.2"
+
+[dependencies.gdk-pixbuf-sys]
+version = "0.18"
+
+[dependencies.gdk-sys]
+version = "0.18"
+
+[dependencies.gio-sys]
+version = "0.18"
+
+[dependencies.glib-sys]
+version = "0.18"
+
+[dependencies.gobject-sys]
+version = "0.18"
+
+[dependencies.gtk-sys]
+version = "0.18"
+features = ["v3_24"]
+
+[dependencies.pango-sys]
+version = "0.18"
+
+[dependencies.handy_sys]
+package = "libhandy-sys"
+version = "0.11"
+
+[build-dependencies]
+system-deps = "7"
+
+[dev-dependencies]
+shell-words = "1.0.0"
+tempfile = "3"
+
+[features]
diff --git a/libphosh-rs/libphosh/sys/Gir.toml b/libphosh-rs/libphosh/sys/Gir.toml
new file mode 100644
index 000000000..328431337
--- /dev/null
+++ b/libphosh-rs/libphosh/sys/Gir.toml
@@ -0,0 +1,43 @@
+[options]
+work_mode = "sys"
+library = "Phosh"
+version = "0"
+girs_directories = ["../../gir-files", "../../"]
+min_cfg_version = "1"
+external_libraries = [
+ "GLib",
+ "GObject",
+ "Gio",
+ "Gtk",
+ "Gdk",
+ "GdkPixbuf",
+ "Pango",
+ "Handy",
+]
+
+ignore = [
+ "Phosh.DBusScreenshot",
+ "Phosh.DBusScreenshotIface",
+ "Phosh.DBusScreenshotProxy",
+ "Phosh.DBusScreenshotSkeleton",
+ "Phosh.QuickSettings",
+]
+
+[[object]]
+name = "Phosh.WallClock"
+status = "generate"
+ [[object.function]]
+ # We don't want to bother with libgnome-desktop
+ name = "string_for_datetime"
+ ignore = true
+
+[[object]]
+name = "Phosh.LayerSurface"
+status = "generate"
+# Ignore functions that return Wayland types for the moment
+ [[object.function]]
+ name = "get_wl_surface"
+ ignore = true
+ [[object.function]]
+ name = "get_layer_surface"
+ ignore = true
diff --git a/libphosh-rs/libphosh/sys/LICENSE b/libphosh-rs/libphosh/sys/LICENSE
new file mode 120000
index 000000000..30cff7403
--- /dev/null
+++ b/libphosh-rs/libphosh/sys/LICENSE
@@ -0,0 +1 @@
+../../LICENSE
\ No newline at end of file
diff --git a/libphosh-rs/libphosh/sys/build.rs b/libphosh-rs/libphosh/sys/build.rs
new file mode 100644
index 000000000..67349f150
--- /dev/null
+++ b/libphosh-rs/libphosh/sys/build.rs
@@ -0,0 +1,18 @@
+// Generated by gir (https://github.com/gtk-rs/gir @ be9aa145267c)
+// from ../.. (@ b4c1dbc27547+)
+// from ../../gir-files (@ 6cd7b656acd6)
+// DO NOT EDIT
+
+#[cfg(not(docsrs))]
+use std::process;
+
+#[cfg(docsrs)]
+fn main() {} // prevent linking libraries to avoid documentation failure
+
+#[cfg(not(docsrs))]
+fn main() {
+ if let Err(s) = system_deps::Config::new().probe() {
+ println!("cargo:warning={s}");
+ process::exit(1);
+ }
+}
diff --git a/libphosh-rs/libphosh/sys/src/lib.rs b/libphosh-rs/libphosh/sys/src/lib.rs
new file mode 100644
index 000000000..289a2129c
--- /dev/null
+++ b/libphosh-rs/libphosh/sys/src/lib.rs
@@ -0,0 +1,644 @@
+// Generated by gir (https://github.com/gtk-rs/gir @ be9aa145267c)
+// from ../.. (@ b4c1dbc27547+)
+// from ../../gir-files (@ 6cd7b656acd6)
+// DO NOT EDIT
+
+#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
+#![allow(clippy::approx_constant, clippy::type_complexity, clippy::unreadable_literal, clippy::upper_case_acronyms)]
+#![cfg_attr(docsrs, feature(doc_cfg))]
+
+use glib_sys as glib;
+use gobject_sys as gobject;
+use gio_sys as gio;
+use gtk_sys as gtk;
+use gdk_sys as gdk;
+use gdk_pixbuf_sys as gdk_pixbuf;
+use pango_sys as pango;
+use handy_sys as handy;
+
+#[allow(unused_imports)]
+use std::ffi::{c_int, c_char, c_uchar, c_float, c_uint, c_double,
+ c_short, c_ushort, c_long, c_ulong, c_void};
+#[allow(unused_imports)]
+use libc::{size_t, ssize_t, time_t, off_t, intptr_t, uintptr_t, FILE};
+#[cfg(unix)]
+#[allow(unused_imports)]
+use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t};
+
+#[allow(unused_imports)]
+use glib::{gboolean, gconstpointer, gpointer, GType};
+
+// Enums
+pub type PhoshLockscreenPage = c_int;
+pub const PHOSH_LOCKSCREEN_PAGE_INFO: PhoshLockscreenPage = 0;
+pub const PHOSH_LOCKSCREEN_PAGE_EXTRA: PhoshLockscreenPage = 1;
+pub const PHOSH_LOCKSCREEN_PAGE_UNLOCK: PhoshLockscreenPage = 2;
+
+// Records
+#[derive(Copy, Clone)]
+#[repr(C)]
+pub struct PhoshDBusScreenshotProxyClass {
+ pub parent_class: gio::GDBusProxyClass,
+}
+
+impl ::std::fmt::Debug for PhoshDBusScreenshotProxyClass {
+ fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
+ f.debug_struct(&format!("PhoshDBusScreenshotProxyClass @ {self:p}"))
+ .field("parent_class", &self.parent_class)
+ .finish()
+ }
+}
+
+#[repr(C)]
+#[allow(dead_code)]
+pub struct _PhoshDBusScreenshotProxyPrivate {
+ _data: [u8; 0],
+ _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
+}
+
+pub type PhoshDBusScreenshotProxyPrivate = _PhoshDBusScreenshotProxyPrivate;
+
+#[derive(Copy, Clone)]
+#[repr(C)]
+pub struct PhoshDBusScreenshotSkeletonClass {
+ pub parent_class: gio::GDBusInterfaceSkeletonClass,
+}
+
+impl ::std::fmt::Debug for PhoshDBusScreenshotSkeletonClass {
+ fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
+ f.debug_struct(&format!("PhoshDBusScreenshotSkeletonClass @ {self:p}"))
+ .field("parent_class", &self.parent_class)
+ .finish()
+ }
+}
+
+#[repr(C)]
+#[allow(dead_code)]
+pub struct _PhoshDBusScreenshotSkeletonPrivate {
+ _data: [u8; 0],
+ _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
+}
+
+pub type PhoshDBusScreenshotSkeletonPrivate = _PhoshDBusScreenshotSkeletonPrivate;
+
+#[derive(Copy, Clone)]
+#[repr(C)]
+pub struct PhoshLayerSurfaceClass {
+ pub parent_class: gtk::GtkWindowClass,
+ pub configured: Option,
+ pub _phosh_reserved1: Option,
+ pub _phosh_reserved2: Option,
+ pub _phosh_reserved3: Option,
+ pub _phosh_reserved4: Option,
+ pub _phosh_reserved5: Option,
+ pub _phosh_reserved6: Option,
+ pub _phosh_reserved7: Option,
+ pub _phosh_reserved8: Option,
+ pub _phosh_reserved9: Option,
+}
+
+impl ::std::fmt::Debug for PhoshLayerSurfaceClass {
+ fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
+ f.debug_struct(&format!("PhoshLayerSurfaceClass @ {self:p}"))
+ .field("parent_class", &self.parent_class)
+ .field("configured", &self.configured)
+ .field("_phosh_reserved1", &self._phosh_reserved1)
+ .field("_phosh_reserved2", &self._phosh_reserved2)
+ .field("_phosh_reserved3", &self._phosh_reserved3)
+ .field("_phosh_reserved4", &self._phosh_reserved4)
+ .field("_phosh_reserved5", &self._phosh_reserved5)
+ .field("_phosh_reserved6", &self._phosh_reserved6)
+ .field("_phosh_reserved7", &self._phosh_reserved7)
+ .field("_phosh_reserved8", &self._phosh_reserved8)
+ .field("_phosh_reserved9", &self._phosh_reserved9)
+ .finish()
+ }
+}
+
+#[derive(Copy, Clone)]
+#[repr(C)]
+pub struct PhoshLockscreenClass {
+ pub parent_class: PhoshLayerSurfaceClass,
+ pub unlock_submit: Option,
+ pub _phosh_reserved1: Option,
+ pub _phosh_reserved2: Option