qvm-features.rst 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. .. program:: qvm-features
  2. :program:`qvm-features` -- manage domain's features
  3. ===================================================
  4. Synopsis
  5. --------
  6. :command:`qvm-features` [-h] [--verbose] [--quiet] *VMNAME* [*FEATURE* [*VALUE*]]
  7. Options
  8. -------
  9. .. option:: --help, -h
  10. show this help message and exit
  11. .. option:: --verbose, -v
  12. increase verbosity
  13. .. option:: --quiet, -q
  14. decrease verbosity
  15. .. option:: --unset, --default, --delete, -D
  16. Unset the feature.
  17. Description
  18. -----------
  19. This command is used to manually manage the *features* of the domain. The
  20. features are key-value pairs with both key and value being strings. They are
  21. used by extensions to store information about the domain and make policy
  22. decisions based on them. For example, they may indicate that some specific
  23. software package was installed inside the template and the domains based on it
  24. have some specific capability.
  25. .. warning::
  26. The features are normally managed by the extensions themselves and you should
  27. not change them directly. Strange things might happen otherwise.
  28. Some extensions interpret the values as boolean. In this case, the empty string
  29. means :py:obj:`False` and non-empty string (commonly ``'1'``) means
  30. :py:obj:`True`. An absence of the feature means "default", which is
  31. extension-dependent. In most cases the default value for feature is retrieved
  32. from a qube template.
  33. List of known features
  34. ----------------------
  35. .. warning::
  36. This list of features may be incomplete, because extensions are free to use any
  37. values, without registering them anywhere.
  38. gui
  39. ^^^
  40. Qube has gui-agent installed. Setting this feature to :py:obj:`True` enables GUI
  41. based on a gui-agent installed inside the VM.
  42. See also `gui-emulated` feature.
  43. If neither `gui` nor `gui-emulated` is set, emulated VGA is used (if
  44. applicable for given VM virtualization mode).
  45. gui-emulated
  46. ^^^^^^^^^^^^
  47. Qube provides GUI through emulated VGA. Setting this feature to
  48. :py:obj:`True` enables emulated VGA output. Note that when gui-agent connects to
  49. actual VM, emulated VGA output is closed (unless `debug` property is set to
  50. :py:obj:`True`). It's possible to open emulated VGA output for a running qube,
  51. regardless of this feature, using `qvm-start-daemon --force-stubdomain QUBE_NAME`
  52. command.
  53. This feature is applicable only when qube's `virt_mode` is set to `hvm`.
  54. See also `gui` feature.
  55. If neither `gui` nor `gui-emulated` is set, emulated VGA is used (if
  56. applicable for given VM virtualization mode).
  57. gui-\*, gui-default-\*
  58. ^^^^^^^^^^^^^^^^^^^^^^
  59. GUI daemon configuration. See `/etc/qubes/guid.conf` for a list of supported
  60. options.
  61. To change a given GUI option for a specific qube, set the `gui-{option}`
  62. feature (with underscores replaced with dashes). For example, to enable
  63. `allow_utf8_titles` for a qube, set `gui-allow-utf8-titles` to `True`.
  64. To change a given GUI option globally, set the `gui-default-{option}` feature
  65. on the GuiVM for that qube.
  66. input-dom0-proxy
  67. ^^^^^^^^^^^^^^^^
  68. When set to :py:obj:`True`, Qubes input proxy sender services will start
  69. for every non-virtual input devices available in dom0 on domain start.
  70. qrexec
  71. ^^^^^^
  72. Qube has qrexec agent installed - i.e. it is possible to request staring a
  73. command/service in there.
  74. Default: assume qrexec not installed (do not wait for it while starting the
  75. qube)
  76. rpc-clipboard
  77. ^^^^^^^^^^^^^
  78. Use `qubes.ClipboardCopy` and `qubes.ClipboardPaste` qubes RPC services to
  79. fetch/send clipboard content from/to this qube, instead of using GUI protocol.
  80. This is supported (and required) by Qubes Windows Tools.
  81. Default: use GUI protocol for clipboard operations
  82. no-monitor-layout
  83. ^^^^^^^^^^^^^^^^^
  84. When set to :py:obj:`True`, monitor layout is not sent to this qube. That is
  85. avoid calling `qubes.SetMonitorLayout` in this qube.
  86. Default: send monitor layout
  87. internal
  88. ^^^^^^^^
  89. Internal qubes (with this feature set to :py:obj:`True`) are not included in the
  90. menu.
  91. Default: not internal VM
  92. appmenus-legacy
  93. ^^^^^^^^^^^^^^^
  94. Generate legacy menu entries, using `qubes-desktop-run` command inside a VM,
  95. instead of `qubes.StartApp` qrexec service. This is used for qubes imported from
  96. previous Qubes version.
  97. Default: new style menu entries, using `qubes.StartApp` service
  98. appmenus-dispvm
  99. ^^^^^^^^^^^^^^^
  100. Generate menu entries for starting applications in Disposable VM based on given
  101. AppVM, instead of this AppVM directly.
  102. Default: create menu entries for AppVM itself
  103. qubes-firewall
  104. ^^^^^^^^^^^^^^
  105. Setting this to :py:obj:`True` means that qube support enforcing firewall rules
  106. set with `qvm-firewall` command.
  107. Default: assume qubes-firewall not enforced
  108. net.fake-ip
  109. ^^^^^^^^^^^
  110. Hide the real IP of the qube from it, and configure it with value set to this
  111. feature. Note that you can assign the same `net.fake-ip` address to multiple
  112. qubes and it shouldn't cause any troubles (unless you want to two such qubes
  113. communicate with each other). This feature does not affect address used in
  114. firewall rules, routing tables etc.
  115. Default: do not hide IP (qube's `ip` property) from the qube
  116. net.fake-gateway
  117. ^^^^^^^^^^^^^^^^
  118. Hide the real gateway of the qube from it, and configure it with value set to
  119. this feature.
  120. Default: do not hide geteway (qube's `gateway` property) from the qube
  121. net.fake-netmask
  122. ^^^^^^^^^^^^^^^^
  123. Hide the real netmask of the qube from it, and configure it with value set to
  124. this feature.
  125. Default: do not hide netmask (qube's `netmask` property) from the qube
  126. updates-available
  127. ^^^^^^^^^^^^^^^^^
  128. There are updates available. In most cases it is useful to (only) read this
  129. feature to check if qube needs to be updated.
  130. Default/no value: no updates available
  131. video-model
  132. ^^^^^^^^^^^
  133. Choose video card modes emulated by QEMU for this qube. For available values see
  134. libvirt documentation about <video><model type=...> element:
  135. https://libvirt.org/formatdomain.html#elementsVideo
  136. Some systems (Windows) works better with 'cirrus' model set here.
  137. Default: vga
  138. pci-e820-host
  139. ^^^^^^^^^^^^^
  140. Enable e820_host option in Xen domU config if qube has any PCI device assigned.
  141. This is option is needed for some PCI device drivers to correctly allocate
  142. memory. Refer to Xen documentation for details.
  143. Default: yes if qube has any PCI device, otherwise no
  144. linux-stubdom
  145. ^^^^^^^^^^^^^
  146. Use Linux-based stubdomain for running device model (qemu). This makes use of
  147. recent qemu upstream version. If disabled, use MiniOS-based stubdomain with old
  148. qemu fork (aka qemu-traditional). This applies only to `hvm` `virt_mode`, for
  149. other modes it is ignored.
  150. Default: True
  151. tag-created-vm-with
  152. ^^^^^^^^^^^^^^^^^^^
  153. When a qube with this feature create a new VM, it gets extra tags listed in this
  154. feature value (separated with space) automatically. Tags are added before qube
  155. creation finishes.
  156. Authors
  157. -------
  158. | Joanna Rutkowska <joanna at invisiblethingslab dot com>
  159. | Marek Marczykowski <marmarek at invisiblethingslab dot com>
  160. | Wojtek Porczyk <woju at invisiblethingslab dot com>
  161. .. vim: ts=3 sw=3 et tw=80