Knowledge

dconf

Source 📝

1744: 820: 136: 90: 36: 200: 27: 315: 1756: 1776: 1766: 1730: 295:
Since a typical GNOME login consists of thousands of reads and ideally 0 writes, dconf is optimized for reads. Typically, reading a key from dconf involves zero system calls and zero context switches. This is achieved with a simple file format that doubles both as the storage format for data in dconf
368:
A GVariant may contain simple types, like integers, or boolean values; or complex types, like an array of two strings, or a dictionary of key value pairs. A GVariant is also immutable: once it's been created, neither its type nor its content can be modified further. GVariant is useful whenever data
326:
service – in the ordinary way. Change notification is also handled by the writer. The reason for having a bus service at all is that getting the clients to synchronize on writing would be very difficult.
333:
The service is completely stateless and can start and stop dynamically. The list of change notifications that an individual client is interested in is maintained by the bus daemon (as a D-Bus signal watch/match list).
307:
to do a better job by saturating it with requests coming from all of the applications trying to read their keys (as opposed to a common configuration server serially requesting a single key at a time).
1779: 254:
inside of each user's configuration space. A single configuration source may appear at multiple points in the hierarchy. For example, in addition to stacking over the normal keys at
311:
Having all of the keys in a single compact binary format also avoids the intense fragmentation problems currently experienced by the tree-of-directories-of-xml-files approach.
241:
dconf is a simple key-based configuration system. Keys exist in an unstructured database (but it is intended that keys that logically belong together are grouped together).
346:(GVariant Database file). It is a simple database file format that stores a mapping from strings to GVariant values in a way that is extremely efficient for lookups. 1143: 203: 950: 905: 1672: 303:
Avoiding round trips and context switches is desirable in itself, but the real advantage comes from allowing the I/O scheduler in the
365:
used for all the values stored in dconf; it can contain one or more values along with information about the type of the values.
343: 1748: 825: 268:
integration is planned so that a normal user may temporarily gain the ability to, for example, write to the keys under
1810: 1800: 1622: 438: 369:
needs to be serialized, for example when sending method parameters in DBus, or when saving settings using GSettings.
171: 342:
One dconf database consists of a single file in binary format, i.e. it is not a text-file. The format is defined as
322:
Writes are less optimized – they traverse the bus and are handled by a "writer" – a
1163: 156: 870: 250:
The stacking can be done at "mount points". For example, the global system configuration can be mounted under
1107: 392:
The GSettings class provides a high-level API for application for storing and retrieving their own settings.
113: 1569: 1382: 297: 81: 1564: 1424: 304: 1000: 975: 213:
is a low-level configuration system and settings management tool. Its main purpose is to provide a
149: 89: 887: 400: 1769: 1449: 1352: 1179: 411: 330:
The writer service doesn't have to be activated until the first write operation is performed.
1516: 1484: 1377: 1362: 1138: 376: 277: 1357: 1202: 1123: 8: 1479: 1429: 1291: 1102: 910: 863: 789: 422: 381: 214: 135: 417: 1617: 1266: 1128: 744: 247:
Stacking of multiple configuration sources is supported. Mandatory keys are supported.
1677: 1439: 1367: 1296: 940: 767: 51: 760: 434: 1708: 1667: 1647: 1207: 935: 915: 900: 284: 199: 166: 221:
on platforms that don't already have configuration storage systems. It depends on
1698: 1589: 1434: 1301: 1261: 1158: 1051: 1005: 35: 1805: 1759: 1612: 1509: 1046: 955: 945: 856: 407: 26: 1794: 1713: 1537: 1148: 1010: 995: 665: 838: 1734: 1627: 1197: 960: 362: 262:
for inspection and modification by a system policy configuration utility.
1403: 1372: 1233: 1228: 1223: 1056: 1025: 930: 920: 895: 843: 833: 314: 182: 1703: 1637: 1632: 1408: 437:
for dconf is available. Since version 0.2, dconf is licensed under the
122: 46: 1682: 1607: 1597: 1192: 1066: 965: 1642: 1552: 1542: 1444: 1398: 1097: 1061: 1579: 1574: 1559: 1504: 1286: 1245: 1240: 1041: 1015: 206:
gives access to a certain popular subset of the desktop settings.
1187: 1092: 1082: 990: 925: 265: 1602: 1494: 1281: 1276: 1153: 1133: 1020: 879: 730: 323: 230: 226: 1547: 1499: 1087: 222: 377:
https://developer.gnome.org/glib/stable/glib-GVariant.html
1729: 1474: 1469: 848: 280:
configuration utility no longer have to be run as root.
423:
https://git.gnome.org/browse/glib/tree/gio/gsettings.c
382:
https://git.gnome.org/browse/glib/tree/glib/gvariant.c
418:
https://developer.gnome.org/gio/stable/GSettings.html
815: 349:
The GNOME database file for each user is by default
729:libdbus-1 back-end removed; dconf now always uses 1792: 300:mechanism between the clients and the server. 864: 283:dconf is loosely the GNOME equivalent of the 258:, the system default keys may also appear at 698:split dconf-editor into a separate package 871: 857: 229:as of version 3, and is a replacement for 134: 88: 34: 25: 839:https://download.gnome.org/sources/dconf/ 790:"gio/gsettings.c · master · GNOME / GLib" 1749:Free and open-source software portal 353:, a file expected to be in GVDB format. 313: 290: 198: 16:Low-level configuration system for GNOME 1793: 852: 844:https://gitlab.gnome.org/GNOME/dconf/ 834:https://wiki.gnome.org/Projects/dconf 276:). This means that programs like the 1765: 826:Free and open-source software portal 1775: 13: 449: 244:Change notification is supported. 161:Configuration, settings management 14: 1822: 811: 337: 172:GNU Lesser General Public License 1774: 1764: 1755: 1754: 1742: 1728: 818: 428: 395:In Debian, the utility program 782: 218: 1: 753: 361:GVariant is a strongly typed 664:dconf compile: always write 399:is contained in the package 387: 40:A screenshot of dconf Editor 7: 356: 236: 10: 1827: 444: 372:GVariant is part of GLib. 1722: 1691: 1660: 1588: 1525: 1462: 1417: 1391: 1345: 1328: 1321: 1314: 1254: 1216: 1172: 1116: 1075: 1034: 983: 974: 886: 878: 410:. which is part of GLib. 177: 165: 155: 145: 112: 108: 80: 76: 58: 45: 33: 24: 1811:Software that uses Meson 1801:Configuration management 1001:Glade Interface Designer 441:version 2.1 "or later". 433:A system administrators 62:September 16, 2009 1450:Avant Window Navigator 1353:Client-Side Decoration 319: 207: 64:; 15 years ago 1378:Tango Desktop Project 406:GSettings is part of 317: 291:Software architecture 278:GNOME Display Manager 202: 95:; 3 years ago 463:Significant changes 351:~/.config/dconf/user 21: 745:Meson build system 397:/usr/bin/gsettings 320: 318:dconf Architecture 208: 19: 1788: 1787: 1678:The GNOME Project 1656: 1655: 1458: 1457: 1310: 1309: 1144:GNOME Connections 888:Core Applications 751: 750: 197: 196: 52:The GNOME Project 1818: 1778: 1777: 1768: 1767: 1758: 1757: 1747: 1746: 1745: 1735:Linux portal 1733: 1732: 1709:Havoc Pennington 1668:GNOME Foundation 1326: 1325: 1319: 1318: 1164:Transmission-gtk 981: 980: 873: 866: 859: 850: 849: 828: 823: 822: 821: 805: 804: 802: 800: 786: 780: 779: 777: 775: 768:"Release 0.40.0" 764: 454: 453: 398: 363:variant datatype 352: 285:Windows Registry 275: 271: 261: 257: 253: 225:. It is part of 204:GNOME Tweak Tool 193: 190: 188: 186: 184: 138: 133: 130: 128: 126: 124: 103: 101: 96: 92: 72: 70: 65: 54:(Allison Lortie) 38: 29: 22: 18: 1826: 1825: 1821: 1820: 1819: 1817: 1816: 1815: 1791: 1790: 1789: 1784: 1743: 1741: 1727: 1718: 1699:Miguel de Icaza 1687: 1652: 1590:freedesktop.org 1584: 1521: 1454: 1413: 1387: 1341: 1306: 1262:Archive Manager 1250: 1212: 1168: 1112: 1071: 1030: 970: 882: 877: 824: 819: 817: 814: 809: 808: 798: 796: 788: 787: 783: 773: 771: 770:. 13 March 2021 766: 765: 761: 756: 452: 450:Release history 447: 431: 396: 390: 359: 350: 340: 293: 273: 269: 259: 255: 251: 239: 181: 141: 121: 104: 99: 97: 94: 93:/ 13 March 2021 68: 66: 63: 59:Initial release 41: 17: 12: 11: 5: 1824: 1814: 1813: 1808: 1803: 1786: 1785: 1783: 1782: 1772: 1762: 1752: 1738: 1723: 1720: 1719: 1717: 1716: 1711: 1706: 1701: 1695: 1693: 1689: 1688: 1686: 1685: 1680: 1675: 1670: 1664: 1662: 1658: 1657: 1654: 1653: 1651: 1650: 1645: 1640: 1635: 1630: 1625: 1620: 1615: 1613:NetworkManager 1610: 1605: 1600: 1594: 1592: 1586: 1585: 1583: 1582: 1577: 1572: 1567: 1562: 1557: 1556: 1555: 1545: 1540: 1535: 1529: 1527: 1523: 1522: 1520: 1519: 1514: 1513: 1512: 1507: 1497: 1492: 1491: 1490: 1487: 1482: 1477: 1466: 1464: 1460: 1459: 1456: 1455: 1453: 1452: 1447: 1442: 1437: 1432: 1427: 1421: 1419: 1415: 1414: 1412: 1411: 1406: 1401: 1395: 1393: 1389: 1388: 1386: 1385: 1380: 1375: 1370: 1365: 1360: 1355: 1349: 1347: 1343: 1342: 1340: 1339: 1336: 1332: 1330: 1323: 1322:User interface 1316: 1312: 1311: 1308: 1307: 1305: 1304: 1299: 1294: 1289: 1284: 1279: 1274: 1269: 1264: 1258: 1256: 1252: 1251: 1249: 1248: 1243: 1238: 1237: 1236: 1231: 1220: 1218: 1214: 1213: 1211: 1210: 1205: 1203:SoundConverter 1200: 1195: 1190: 1185: 1182: 1176: 1174: 1170: 1169: 1167: 1166: 1161: 1156: 1151: 1146: 1141: 1136: 1131: 1126: 1120: 1118: 1114: 1113: 1111: 1110: 1105: 1100: 1095: 1090: 1085: 1079: 1077: 1073: 1072: 1070: 1069: 1064: 1059: 1054: 1049: 1044: 1038: 1036: 1032: 1031: 1029: 1028: 1023: 1018: 1013: 1008: 1003: 998: 993: 987: 985: 978: 972: 971: 969: 968: 963: 958: 953: 948: 943: 938: 933: 928: 923: 918: 913: 908: 903: 898: 892: 890: 884: 883: 876: 875: 868: 861: 853: 847: 846: 841: 836: 830: 829: 813: 812:External links 810: 807: 806: 781: 758: 757: 755: 752: 749: 748: 741: 738: 734: 733: 727: 724: 720: 719: 717: 714: 710: 709: 707: 704: 700: 699: 696: 693: 689: 688: 686: 683: 679: 678: 676: 673: 669: 668: 662: 659: 655: 654: 652: 649: 645: 644: 642: 639: 635: 634: 632: 629: 625: 624: 622: 619: 615: 614: 612: 609: 605: 604: 602: 599: 595: 594: 592: 589: 585: 584: 582: 579: 575: 574: 572: 569: 565: 564: 562: 559: 555: 554: 552: 549: 545: 544: 542: 539: 535: 534: 532: 529: 525: 524: 522: 519: 515: 514: 512: 509: 505: 504: 502: 499: 495: 494: 492: 489: 485: 484: 482: 479: 475: 474: 472: 469: 465: 464: 461: 458: 451: 448: 446: 443: 430: 427: 426: 425: 420: 401:libglib2.0-bin 389: 386: 385: 384: 379: 358: 355: 339: 338:dconf database 336: 292: 289: 238: 235: 195: 194: 179: 175: 174: 169: 163: 162: 159: 153: 152: 147: 143: 142: 140: 139: 118: 116: 110: 109: 106: 105: 86: 84: 82:Stable release 78: 77: 74: 73: 60: 56: 55: 49: 43: 42: 39: 31: 30: 15: 9: 6: 4: 3: 2: 1823: 1812: 1809: 1807: 1804: 1802: 1799: 1798: 1796: 1781: 1773: 1771: 1763: 1761: 1753: 1751: 1750: 1739: 1737: 1736: 1731: 1725: 1724: 1721: 1715: 1714:Karen Sandler 1712: 1710: 1707: 1705: 1702: 1700: 1697: 1696: 1694: 1690: 1684: 1681: 1679: 1676: 1674: 1671: 1669: 1666: 1665: 1663: 1659: 1649: 1646: 1644: 1641: 1639: 1636: 1634: 1631: 1629: 1626: 1624: 1621: 1619: 1616: 1614: 1611: 1609: 1606: 1604: 1601: 1599: 1596: 1595: 1593: 1591: 1587: 1581: 1578: 1576: 1573: 1571: 1568: 1566: 1563: 1561: 1558: 1554: 1551: 1550: 1549: 1546: 1544: 1541: 1539: 1536: 1534: 1531: 1530: 1528: 1524: 1518: 1515: 1511: 1508: 1506: 1503: 1502: 1501: 1498: 1496: 1493: 1488: 1486: 1483: 1481: 1478: 1476: 1473: 1472: 1471: 1468: 1467: 1465: 1461: 1451: 1448: 1446: 1443: 1441: 1438: 1436: 1433: 1431: 1428: 1426: 1423: 1422: 1420: 1416: 1410: 1407: 1405: 1402: 1400: 1397: 1396: 1394: 1390: 1384: 1381: 1379: 1376: 1374: 1371: 1369: 1366: 1364: 1361: 1359: 1356: 1354: 1351: 1350: 1348: 1344: 1337: 1335:Mutter on GSK 1334: 1333: 1331: 1327: 1324: 1320: 1317: 1313: 1303: 1300: 1298: 1295: 1293: 1290: 1288: 1285: 1283: 1280: 1278: 1275: 1273: 1270: 1268: 1265: 1263: 1260: 1259: 1257: 1253: 1247: 1244: 1242: 1239: 1235: 1232: 1230: 1227: 1226: 1225: 1222: 1221: 1219: 1215: 1209: 1206: 1204: 1201: 1199: 1196: 1194: 1191: 1189: 1186: 1183: 1181: 1178: 1177: 1175: 1171: 1165: 1162: 1160: 1157: 1155: 1152: 1150: 1149:GNOME Fractal 1147: 1145: 1142: 1140: 1137: 1135: 1132: 1130: 1127: 1125: 1122: 1121: 1119: 1115: 1109: 1106: 1104: 1101: 1099: 1096: 1094: 1091: 1089: 1086: 1084: 1081: 1080: 1078: 1074: 1068: 1065: 1063: 1060: 1058: 1055: 1053: 1050: 1048: 1045: 1043: 1040: 1039: 1037: 1033: 1027: 1024: 1022: 1019: 1017: 1014: 1012: 1011:GNOME Devhelp 1009: 1007: 1004: 1002: 999: 997: 994: 992: 989: 988: 986: 982: 979: 977: 973: 967: 964: 962: 959: 957: 954: 952: 949: 947: 944: 942: 939: 937: 934: 932: 929: 927: 924: 922: 919: 917: 914: 912: 911:Character Map 909: 907: 904: 902: 899: 897: 894: 893: 891: 889: 885: 881: 874: 869: 867: 862: 860: 855: 854: 851: 845: 842: 840: 837: 835: 832: 831: 827: 816: 795: 791: 785: 769: 763: 759: 746: 742: 739: 736: 735: 732: 728: 725: 722: 721: 718: 715: 712: 711: 708: 705: 702: 701: 697: 694: 691: 690: 687: 684: 681: 680: 677: 674: 671: 670: 667: 666:little endian 663: 660: 657: 656: 653: 650: 647: 646: 643: 640: 637: 636: 633: 630: 627: 626: 623: 620: 617: 616: 613: 610: 607: 606: 603: 600: 597: 596: 593: 590: 587: 586: 583: 580: 577: 576: 573: 570: 567: 566: 563: 560: 557: 556: 553: 550: 547: 546: 543: 540: 537: 536: 533: 530: 527: 526: 523: 520: 517: 516: 513: 510: 507: 506: 503: 500: 497: 496: 493: 490: 487: 486: 483: 480: 477: 476: 473: 470: 467: 466: 462: 460:Release date 459: 456: 455: 442: 440: 436: 429:Documentation 424: 421: 419: 416: 415: 414: 413: 409: 404: 402: 393: 383: 380: 378: 375: 374: 373: 370: 366: 364: 354: 347: 345: 335: 331: 328: 325: 316: 312: 309: 306: 301: 299: 288: 286: 281: 279: 267: 263: 248: 245: 242: 234: 232: 228: 224: 220: 216: 212: 205: 201: 192: 180: 176: 173: 170: 168: 164: 160: 158: 154: 151: 148: 144: 137: 132: 120: 119: 117: 115: 111: 107: 100:13 March 2021 91: 85: 83: 79: 75: 61: 57: 53: 50: 48: 44: 37: 32: 28: 23: 1740: 1726: 1628:X.Org Server 1532: 1272:dconf-editor 1271: 1198:Sound Juicer 797:. Retrieved 793: 784: 772:. Retrieved 762: 432: 412:libglib2.0-0 405: 394: 391: 371: 367: 360: 348: 341: 332: 329: 321: 310: 302: 294: 282: 264: 249: 246: 243: 240: 210: 209: 87:0.40.0  47:Developer(s) 1780:WikiProject 1404:GNOME Panel 1373:GNOME Shell 1224:GNOME Games 1108:Simple Scan 1057:GNOME LaTeX 1026:Gtranslator 984:Development 941:Text Editor 1795:Categories 1704:Luis Villa 1638:PackageKit 1633:PulseAudio 1463:GNOME Base 1409:Clearlooks 1315:Components 916:Dictionary 901:Calculator 754:References 747:(#784910) 740:2017-10-17 726:2016-03-23 716:2015-12-16 706:2015-03-23 695:2015-03-16 685:2014-09-19 675:2014-07-22 661:2014-03-24 651:2014-03-17 641:2013-09-23 631:2013-09-16 621:2013-07-16 611:2013-02-11 601:2012-11-01 591:2012-08-20 581:2012-05-01 571:2012-03-19 561:2011-09-26 551:2011-09-19 541:2011-07-26 531:2011-05-09 521:2010-12-21 511:2010-09-15 501:2010-07-12 491:2010-05-25 481:2009-10-27 471:2009-09-18 296:and as an 146:Written in 114:Repository 69:2009-09-16 1683:Outreachy 1661:Community 1608:GStreamer 1598:AppStream 1358:Cantarell 1255:Utilities 1193:Rhythmbox 1067:OCRFeeder 1052:Evolution 388:GSettings 274:/default/ 266:PolicyKit 260:/default/ 219:GSettings 189:/Projects 1760:Category 1643:HarfBuzz 1553:GnomeVFS 1543:GNOME-DB 1445:GNOME Do 1430:Cinnamon 1399:Metacity 1329:GNOME 40 1292:Seahorse 1117:Internet 1103:Shotwell 1098:Inkscape 1076:Graphics 1062:Gnumeric 956:Terminal 951:Snapshot 946:Software 906:Calendar 799:22 April 774:10 April 743:Port to 457:Version 357:GVariant 270:/system/ 252:/system/ 237:Overview 215:back end 1770:Commons 1623:Wayland 1618:Poppler 1580:libxml2 1575:libxslt 1565:Tracker 1560:Librsvg 1538:Keyring 1505:GObject 1489:Clutter 1425:Adwaita 1392:GNOME 2 1346:GNOME 3 1287:GParted 1267:Brasero 1246:PyChess 1241:gbrainy 1184:EasyTag 1180:Banshee 1129:Empathy 1042:AbiWord 1016:Nemiver 996:Builder 445:History 178:Website 167:License 98: ( 67: ( 1692:People 1673:GUADEC 1440:Diodon 1368:Mutter 1297:Tomboy 1188:Pitivi 1093:gThumb 1083:F-Spot 1035:Office 991:Anjuta 976:Extras 961:Videos 926:Evince 794:GitLab 305:kernel 256:/user/ 191:/dconf 185:.gnome 131:/dconf 129:/GNOME 125:.gnome 123:gitlab 1806:GNOME 1648:Cairo 1603:D-Bus 1533:dconf 1526:Other 1495:Pango 1418:Other 1282:gnote 1277:gedit 1234:Mines 1229:Chess 1217:Games 1208:sushi 1173:Media 1154:Gobby 1139:Geary 1134:Ekiga 1124:Balsa 1021:Geany 936:Loupe 931:Files 921:Disks 896:Boxes 880:GNOME 731:GDBus 435:guide 324:D-Bus 231:GConf 227:GNOME 211:dconf 20:dconf 1570:Vala 1548:GVfs 1517:IBus 1500:GLib 1435:MATE 1383:Orca 1302:Yelp 1159:Jami 1088:GIMP 1006:Meld 801:2018 776:2021 737:0.27 723:0.26 713:0.25 703:0.24 692:0.23 682:0.22 672:0.21 658:0.20 648:0.19 638:0.18 628:0.17 618:0.16 608:0.15 598:0.14 588:0.13 578:0.12 568:0.11 558:0.10 439:LGPL 344:gvdb 272:(or 223:GLib 187:.org 183:wiki 157:Type 127:.org 1510:GIO 1485:ATK 1480:GSK 1475:GDK 1470:GTK 1363:GDM 1047:Dia 966:Web 548:0.9 538:0.8 528:0.7 518:0.6 508:0.5 498:0.4 488:0.3 478:0.2 468:0.1 408:GIO 298:IPC 217:to 1797:: 792:. 403:. 287:. 233:. 1338:… 872:e 865:t 858:v 803:. 778:. 150:C 102:) 71:)

Index


dconf editor
Developer(s)
The GNOME Project
Stable release
Edit this on Wikidata
Repository
gitlab.gnome.org/GNOME/dconf
Edit this at Wikidata
C
Type
License
GNU Lesser General Public License
wiki.gnome.org/Projects/dconf

GNOME Tweak Tool
back end
GSettings
GLib
GNOME
GConf
PolicyKit
GNOME Display Manager
Windows Registry
IPC
kernel
dconf Architecture
D-Bus
gvdb
variant datatype

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.