{"id":34362305,"url":"https://github.com/zv/dotfilez","last_synced_at":"2025-12-18T05:57:39.723Z","repository":{"id":2258453,"uuid":"3214019","full_name":"zv/dotfilez","owner":"zv","description":"dotfiles to support the lifestylez of the owned and the lamest","archived":false,"fork":false,"pushed_at":"2024-02-01T00:51:27.000Z","size":17376,"stargazers_count":20,"open_issues_count":3,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-02-02T00:36:27.005Z","etag":null,"topics":["dotfiles","emacs-lisp","gpg","shell"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zv.png","metadata":{"files":{"readme":"README.org","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2012-01-19T00:44:25.000Z","updated_at":"2024-02-02T00:36:27.006Z","dependencies_parsed_at":"2024-02-01T00:43:45.101Z","dependency_job_id":null,"html_url":"https://github.com/zv/dotfilez","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zv/dotfilez","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zv%2Fdotfilez","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zv%2Fdotfilez/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zv%2Fdotfilez/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zv%2Fdotfilez/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zv","download_url":"https://codeload.github.com/zv/dotfilez/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zv%2Fdotfilez/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27792202,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-18T02:00:09.725Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dotfiles","emacs-lisp","gpg","shell"],"created_at":"2025-12-18T05:57:39.000Z","updated_at":"2025-12-18T05:57:39.706Z","avatar_url":"https://github.com/zv.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"#+PROPERTY: header-args       :noweb no\n#+PROPERTY: header-args:sh    :results replace output :var DOTFILEZ=(directory-file-name (file-name-directory (buffer-file-name)))\n\n* dotfilez\n  #+CAPTION: the_setup\n  #+NAME:   setup.png\n  [[./data/setup.png]]\n\n  The setup of my ride has been steadily growing for almost 13 years now. In the\n  vast sea of rc files, =/etc= config clauses, sensitive and public\n  cryptographic key material, documents, default package lists and custom\n  patches that I apply to the systems I run. I had to come up with a way to manage\n  it all in some sane fashion.\n\n  Dotfilez is an attempt to keep a configuration framework for my personal use\n  online. You are welcome to modify it if you think it could be useful to you\n  too.\n\n* Public Keys\n** =authorized_keys=\n   #+BEGIN_EXAMPLE\n   ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCMbMY01S86OnaP7Q5H9kYHeBUdfTsZkGh1AwQC1VJIwXRHdldRigkFxCLR6QJkFVQt5ntruvXwBre1bDF04UveXLLtcq2P5iGZWgQtuVAsZ1DAENR5N+SMZY6DA/aPjg8tzv7lL09pwFkAxfVDWLEZXtcEuuCaaGbW9GH707MBnvMZn8rWD8MEEEflkrtpbTGxjrsubYqGOB9bL3PTEtrKBAhptaIHIhX7tcHBHoWVCNgt47U+zghg4VaJIj/c+TUY+1CUF/QWqfWl6En2JwLqKe8RhH4SqgWMt6WY5XDXurJHNjtlzSCbwf8jrXfSZq+63WLFxqdINyjqedkLSVhl cardno:000603647045\n   ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJZiX9CJyfQ2QYkm9Sh+BRoQVeM5UACdbOhf8PYfrwSC zv-sigstkflt\n   #+END_EXAMPLE\n\n** GnuPG Key\n   #+NAME: GPG Key\n   #+BEGIN_SRC sh :results file :file zv.gpg.pub :exports results\n     gpg --export --armor 9358C8BDAAD9A62BB08B9660F6F2D0445DC172F8\n   #+END_SRC\n\n   #+RESULTS: GPG Key\n   [[file:zv.gpg.pub]]\n\n* Workstation Setup\n  The following shell \u0026 configuration file snippets are intended to be installed\n  with [[https://orgmode.org/worg/org-contrib/babel/][Babel]].\n\n  To run an entire sections installation scripts, point your cursor at the appropriate heading and execute =org-babel-execute-subtree= (you can also run each individual step with =org-babel-execute-maybe=). Configuration files are installed separately, using =org-babel-tangle= (=tramp= will prompt you to =sudo=)\n\n** Packages\n   :PROPERTIES:\n   :header-args:sh: :results output replace :exports code\n   :END:\n\n*** =dnf.conf=\n    #+BEGIN_SRC sh\n      sudo dnf config-manager --save --setopt fastestmirror=True\n    #+END_SRC\n\n*** Base\n    #+BEGIN_SRC sh\n      sudo dnf install -y tmux vim-enhanced zsh\n    #+END_SRC\n\n*** Development\n    #+BEGIN_SRC sh\n      sudo dnf install -y autoconf automake binutils bison clang cmake ctags flex gcc 'gcc-c++' gdb git graphviz libtool make nasm openssl patch pkgconf readline socat strace\n    #+END_SRC\n\n**** Python\n     #+BEGIN_SRC sh\n       sudo dnf install -y python3 python3-devel python3-ipython python3-epc python3-flake8 python3-importmagic python3-isort python3-mypy python3-yapf\n     #+END_SRC\n\n*** Desktop\n    #+BEGIN_SRC sh\n      sudo dnf install -y adobe-source-code-pro-fonts avahi-tools bpftool bpftrace curl \\\n           dotnet elfutils emacs global global-ctags gnupg2 java-latest-openjdk jq \\\n           kernel-devel ltrace mtr nmap perf postgresql qemu ripgrep systemtap \\\n           valgrind weechat wget wine wireshark xsel z3\n    #+END_SRC\n\n**** Yubikey\n     #+BEGIN_SRC sh\n       sudo dnf install -y gnupg2 gnupg2-smime pcsc-lite pcsc-tools ykclient ykpers yubikey-personalization-gui\n     #+END_SRC\n\n**** Remove \"Install Package To Provide\"\n     Fedora contains a package to prompt the user if a missing command is typed into the shell, which this snippet disables.\n\n     #+BEGIN_SRC sh\n       sudo dnf remove -y PackageKit-command-not-found\n     #+END_SRC\n\n** RC Files\n   #+NAME: link_if.sh\n   #+BEGIN_SRC sh :exports code :results verbatim :prologue \"exec 2\u003e\u00261\" :shebang \"#!/bin/sh\"\n     link_if() {\n         if command -V \"$1\" 1\u003e/dev/null; then\n             shift\n\n             while (( $# )); do\n                 local src=\"$(realpath -e \"$1\")\"\n                 local dst=\"${HOME}/.$(basename \"$1\")\"\n                 if test -e \"$dst\"; then\n                     printf \"%s already exists\\n\" \"$dst\"\n                 else\n                     ( set -x; ln -sT \"$src\" \"$dst\" )\n                 fi\n                 shift\n             done\n         fi\n     }\n\n     (\n         if cd \"${DOTFILEZ:-0}\"; then\n             link_if dig 'rc/digrc'\n             link_if emacs 'emacs.d' 'rc/spacemacs' 'rc/gnus.el' 'rc/newsrc'\n             link_if erl 'rc/erlang'\n             link_if gdb 'rc/gdbinit'\n             link_if git 'rc/gitignore' 'rc/gitconfig'\n             link_if gpg 'rc/gnupg'\n             link_if iex 'rc/iex'\n             link_if node 'rc/npmrc' 'rc/babelrc'\n             link_if psql 'rc/psqlrc'\n             link_if rg 'rc/ripgreprc'\n             link_if ruby 'rc/pryrc' 'rc/gemrc'\n             link_if screen 'rc/screenrc'\n             link_if tmux 'rc/tmux.conf'\n             link_if top 'rc/toprc'\n             link_if vim 'rc/vim' 'rc/vimrc'\n             link_if weechat 'rc/weechat'\n             link_if wget 'rc/wgetrc'\n             link_if bash 'rc/bashrc'\n             link_if zsh 'rc/zsh' 'rc/zshenv' 'rc/zshrc'\n             link_if dircolors 'rc/dir_colors'\n             link_if Xorg 'rc/Xsession' 'rc/Xresources'\n             link_if -- 'rc/ssh'\n             link_if -- 'rc/editrc'\n             link_if -- 'rc/inputrc'\n         else\n             printf \"Could not change working directory to '%s'\\n\" \"${DOTFILEZ:-0}\"\n         fi\n     )\n   #+END_SRC\n\n** Login Shell\n   #+BEGIN_SRC sh :exports code\n     set -eu\n     sudo usermod  --shell \"$(which zsh)\" \"$(whoami)\"\n   #+END_SRC\n\n** =/etc/profile.d=\n   #+NAME: dir_colors.sh\n   #+BEGIN_SRC sh :results file silent :file \"/sudo::/etc/profile.d/dir_colors.sh\" :file-mode (identity #o755)\n     if [[ -r ~/.dir_colors ]]; then\n         dircolors -b ~/.dir_colors\n     else\n         printf \"%s does not exist\\n\" ~/.dir_colors \u003e\u00262\n         exit 1\n     fi\n   #+END_SRC\n\n** =org-protocol=\n   [[https://orgmode.org/worg/org-contrib/org-protocol.html][=org-protocol=]] intercepts calls from emacsclient to trigger custom actions without external dependencies. Only one protocol has to be configured with your external applications or the operating system, to trigger an arbitrary number of custom actions.\n\n   #+BEGIN_SRC conf :tangle \"~/.local/share/applications/org-protocol.desktop\"\n     [Desktop Entry]\n     Name=org-protocol\n     Exec=emacsclient %u\n     Type=Application\n     Terminal=false\n     Categories=System;\n     MimeType=x-scheme-handler/org-protocol;\n   #+END_SRC\n\n   Afterwards, you must run =update-desktop-database=\n\n   #+BEGIN_SRC sh\n     update-desktop-database \"$HOME/.local/share/applications/\"\n   #+END_SRC\n\n** =libvirt=\n   =libvirt= will complain about user-sessions hitting a root, I allow any user in =wheel= to do so anyway on my workstation.\n\n   #+NAME: 80-libvirt.rules\n   #+BEGIN_SRC javascript :tangle \"/sudo::/etc/polkit-1/rules.d/80-libvirt.rules\"\n     polkit.addRule(function(action, subject) {\n       if (action.id == \"org.libvirt.unix.manage\" \u0026\u0026 subject.local \u0026\u0026 subject.active \u0026\u0026 subject.isInGroup(\"wheel\")) {\n         return polkit.Result.YES;\n       }\n     });\n   #+END_SRC\n\n** =sudo=                                                              :WARN:\n   I like =sudo= to use a single timestamp across all of my login session.\n\n   #+NAME: /etc/sudoers.d/70_timestamp_timeout\n   #+BEGIN_SRC conf :tangle \"/sudo::/etc/sudoers.d/70_timestamp_timeout\"\n     # Number of minutes that can elapse before sudo will ask for a passwd again.\n     # You can create or delete a timestamp with `sudo -v` \u0026 `sudo -k` respectively\n     Defaults  timestamp_timeout  = 30\n\n     # `global` sets a single time stamp record, regardless of the terminal or parent process ID.\n     Defaults  timestamp_type  = global\n   #+END_SRC\n\n** Emacs\n*** Build\n**** Fedora 33\n    This adds ~--without-gconf~ \u0026 ~--without-gsettings~, as =dconf= \u0026 =gconf=\n    breaks font settings in ~$HOME/.emacs~. See [[https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25228]]\n\n    #+BEGIN_SRC sh\n      mkdir \"$HOME/extern\";\n      cd \"$HOME/extern\";\n      git clone --depth=1 --branch='emacs-28' 'https://git.savannah.gnu.org/git/emacs.git';\n      cd emacs;\n      sudo dnf install -y \\\n          ImageMagick-devel \\\n          automake \\\n          gcc \\\n          gcc-c++ \\\n          giflib-devel \\\n          gnutls-devel \\\n          gpm-devel \\\n          gtk3-devel \\\n          harfbuzz-devel \\\n          jansson-devel \\\n          libXpm-devel \\\n          libgccjit-devel \\\n          libjpeg-turbo-devel \\\n          libotf-devel \\\n          librsvg2-devel \\\n          libtiff-devel \\\n          make \\\n          ncurses-devel \\\n          texinfo \\\n          webkit2gtk3-devel \\\n          xorg-x11-proto-devel;\n    ./autogen.sh;\n    ./configure \\\n        CFLAGS='-pipe -mtune=native -march=native' \\\n        --with-cairo \\\n        --with-imagemagick \\\n        --with-json \\\n        --with-librsvg \\\n        --with-modules \\\n        --with-native-compilation \\\n        --with-x-toolkit=gtk3 \\\n        --with-xwidgets \\\n        --without-gconf \\\n        --without-gsettings \\\n        --without-xaw3d;\n    make -j\n    #+END_SRC\n\n** Python\n\n*** =IPython= config\n    Rewrites the default ~$HOME/.ipython/profile_default/ipython_config.py~ with my preferred defaults\n\n    #+BEGIN_SRC awk :results file :file \"~/.ipython/profile_default/ipython_config.py\" :exports code\n      #!/usr/bin/awk -f\n      \n      BEGIN {\n          if (ARGC == 1) {\n              ARGV[ARGC] = ENVIRON[\"HOME\"] \"/.ipython/profile_default/ipython_config.py\"\n              ARGC = ARGC + 1\n          }\n      }\n      \n      function set_value(new) {\n          for (i=0;i\u003cNF;i++) {\n              if ($i == \"=\") {\n                  printf \"%s = %s\\n\", $(i-1), new\n                  next\n              }\n          }\n      }\n      \n      /^[#]* *c.TerminalIPythonApp.display_banner/ { set_value(\"False\") }\n      /^[#]* *c.TerminalInteractiveShell.editing_mode/ { set_value(\"'vi'\") }\n      /^[#]* *c.TerminalInteractiveShell.extra_open_editor_shortcuts/ { set_value(\"True\") }\n      /^[#]* *c.InteractiveShell.autoindent/ { set_value(\"True\") }\n      /^[#]* *c.InteractiveShell.autoawait/ { set_value(\"True\") }\n      /^[#]* *c.InteractiveShell.history_length/ { set_value(\"50000\") }\n      /^[#]* *c.InteractiveShell.history_load_length/ { set_value(\"1000\") }\n      /^[#]* *c.TerminalInteractiveShell.prompt_includes_vi_mode/ { set_value(\"True\") }\n      \n      { print }\n    #+END_SRC\n\n** =noatime=\n  I run my workstation's primary filesystems with the =noatime= option; no\n  longer updating file access times. I rarely care about when files were\n  accessed, usually only caring about it's =mtime= (last modification).\n\n  Access times are still useful, rarely justify themselves.\n\n   #+BEGIN_SRC sh\n     sudoedit /etc/fstab # add `noatime` mount option to `/`, `/home`, etc.\n     systemctl daemon-reload # ask systemd to regenerate mount units from fstab\n   #+END_SRC\n\n** =udev=\n   =udev= is a device manager for the Linux kernel. As the successor of\n   =devfsd= and =hotplug=, =udev= primarily manages device nodes in the =/dev=\n   directory. At the same time, =udev= also handles all user space events\n   raised while hardware devices are added into the system or removed from it,\n   including firmware loading as required by certain devices.\n\n*** Yubikey\n    Add Yubikey access\n\n    #+name: 70-u2f.rules\n    #+BEGIN_SRC conf :tangle \"/sudo::/etc/udev/rules.d/70-u2f.rules\"\n      # Yubico YubiKey\n\n      KERNEL==\"hidraw*\", SUBSYSTEM==\"hidraw\", ATTRS{idVendor}==\"1050\", ATTRS{idProduct}==\"0113|0114|0115|0116|0120|0200|0402|0403|0406|0407|0410\", TAG+=\"uaccess\"\n    #+END_SRC\n\n*** Wireshark (=usbmon=)\n\n    #+name: 90-wireshark-usbmon.rules\n    #+BEGIN_SRC conf :tangle \"/sudo::/etc/udev/rules.d/90-wireshark-usbmon.rules\"\n      # Wireshark\n      \n      SUBSYSTEM==\"usbmon\", GROUP=\"usbmon\", MODE=\"640\"\n    #+END_SRC\n\n** Nvidia (GeForce/Quadro/Tesla)\n   This driver is suitable for any GPU found in 2012 and later.\n\n\n   #+BEGIN_SRC sh\n     sudo dnf install \"https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm\"\n     sudo dnf install -y akmod-nvidia xorg-x11-drv-nvidia-cuda\n   #+END_SRC\n\n   Once the module is built, you can check it's installation with ~modinfo -F version nvidia~\n\n** systemd\n\n*** GnuPG\n    You can ensure that the GnuPG daemons =dirmngr= and =gpg-agent= are launched automatically the first time they're needed, and shut down cleanly at session logout by enabling user services via socket-activation:\n\n    #+BEGIN_SRC sh\n      systemctl --user enable dirmngr.socket gpg-agent.socket gpg-agent-ssh.socket gpg-agent-browser.socket gpg-agent-extra.socket\n    #+END_SRC\n\n    If you'd rather try a socket-activated GnuPG daemon in an already-running session without logging out, kill any existing daemons and start the user socket manually:\n\n    #+BEGIN_EXAMPLE\n   gpgconf --kill dirmngr\n   systemctl --user start dirmngr.socket\n    #+END_EXAMPLE\n\n*** =/etc/systemd/coredump.conf=\n\n    #+name: coredump.conf\n    #+BEGIN_SRC conf :tangle \"/sudo::/etc/systemd/coredump.conf\"\n      # See coredump.conf(5) for details.\n\n      [Coredump]\n      #Storage=external\n      Compress=yes\n      #ProcessSizeMax=2G\n      #ExternalSizeMax=2G\n      JournalSizeMax=767M\n      MaxUse=1G\n      #KeepFree=\n    #+END_SRC\n\n** Gnome\n*** Settings\n    #+NAME: keybindings.sh\n    #+BEGIN_SRC sh :results output replace :file keybindings.sh :exports results :shebang \"#!/bin/sh\" :prologue \"set -x\"\n      print_dconf_heredoc() {\n          cat \u003c\u003cOUTER\n      dconf load \"$1\" \u003c\u003cEOF\n      $(dconf dump \"$1\")\n      EOF\n      OUTER\n      }\n\n      print_gsetting() {\n          printf 'gsettings set %s %s \"%s\"\\n' \"$1\" \"$2\" \"$(gsettings get \"$1\" \"$2\")\"\n      }\n\n      # Swap Caps-lock \u0026 alt\n      print_gsetting org.gnome.desktop.input-sources xkb-options\n\n      # Dump of Gnome window keybindings\n      for schema in 'org.gnome.Terminal.Legacy.Settings' \\\n                        'org.gnome.desktop.wm.keybindings' \\\n                        'org.gnome.mutter.keybindings' \\\n                        'org.gnome.settings-daemon.plugins.media-keys'; do\n          for key in $(gsettings list-keys \"$schema\"); do\n              print_gsetting \"$schema\" \"$key\"\n          done\n      done\n\n      print_dconf_heredoc /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/\n    #+END_SRC\n\n    #+RESULTS: keybindings.sh\n    #+begin_example\n    gsettings set org.gnome.desktop.input-sources xkb-options \"['ctrl:ralt_rctrl', 'ctrl:rctrl_ralt', 'ctrl:nocaps', 'lv3:menu_switch']\"\n    gsettings set org.gnome.Terminal.Legacy.Settings mnemonics-enabled \"false\"\n    gsettings set org.gnome.Terminal.Legacy.Settings tab-position \"'top'\"\n    gsettings set org.gnome.Terminal.Legacy.Settings headerbar \"@mb false\"\n    gsettings set org.gnome.Terminal.Legacy.Settings new-terminal-mode \"'window'\"\n    gsettings set org.gnome.Terminal.Legacy.Settings theme-variant \"'dark'\"\n    gsettings set org.gnome.Terminal.Legacy.Settings default-show-menubar \"false\"\n    gsettings set org.gnome.Terminal.Legacy.Settings shell-integration-enabled \"true\"\n    gsettings set org.gnome.Terminal.Legacy.Settings schema-version \"uint32 3\"\n    gsettings set org.gnome.Terminal.Legacy.Settings confirm-close \"true\"\n    gsettings set org.gnome.Terminal.Legacy.Settings new-tab-position \"'last'\"\n    gsettings set org.gnome.Terminal.Legacy.Settings unified-menu \"false\"\n    gsettings set org.gnome.Terminal.Legacy.Settings menu-accelerator-enabled \"false\"\n    gsettings set org.gnome.Terminal.Legacy.Settings context-info \"['numbers']\"\n    gsettings set org.gnome.Terminal.Legacy.Settings shortcuts-enabled \"false\"\n    gsettings set org.gnome.Terminal.Legacy.Settings tab-policy \"'automatic'\"\n    gsettings set org.gnome.desktop.wm.keybindings switch-group \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings begin-resize \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-7 \"['\u003cSuper\u003eu']\"\n    gsettings set org.gnome.desktop.wm.keybindings begin-move \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings move-to-side-w \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings move-to-corner-nw \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-10 \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-6 \"['\u003cShift\u003e\u003cSuper\u003ey']\"\n    gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-right \"['\u003cControl\u003e\u003cShift\u003e\u003cAlt\u003eRight']\"\n    gsettings set org.gnome.desktop.wm.keybindings always-on-top \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings toggle-maximized \"['\u003cSuper\u003em']\"\n    gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-left \"['\u003cControl\u003e\u003cShift\u003e\u003cAlt\u003eLeft']\"\n    gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-8 \"['\u003cSuper\u003ei']\"\n    gsettings set org.gnome.desktop.wm.keybindings cycle-panels \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-11 \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings lower \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-7 \"['\u003cShift\u003e\u003cSuper\u003eu']\"\n    gsettings set org.gnome.desktop.wm.keybindings toggle-above \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-down \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings switch-panels \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings minimize \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings cycle-windows \"['\u003cSuper\u003el']\"\n    gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-9 \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-12 \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings toggle-on-all-workspaces \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings switch-input-source \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-8 \"['\u003cShift\u003e\u003cSuper\u003ei']\"\n    gsettings set org.gnome.desktop.wm.keybindings move-to-side-n \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings maximize-horizontally \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings activate-window-menu \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings set-spew-mark \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings switch-windows-backward \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings maximize-vertically \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings move-to-corner-sw \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-9 \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings maximize \"['\u003cSuper\u003eUp']\"\n    gsettings set org.gnome.desktop.wm.keybindings panel-main-menu \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings close \"['\u003cSuper\u003ec']\"\n    gsettings set org.gnome.desktop.wm.keybindings move-to-monitor-up \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings raise-or-lower \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings move-to-side-e \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings cycle-windows-backward \"['\u003cSuper\u003eh']\"\n    gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-1 \"['\u003cSuper\u003eq']\"\n    gsettings set org.gnome.desktop.wm.keybindings move-to-monitor-right \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings switch-windows \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings panel-run-dialog \"['\u003cSuper\u003esemicolon']\"\n    gsettings set org.gnome.desktop.wm.keybindings switch-panels-backward \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings unmaximize \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-2 \"['\u003cSuper\u003ew']\"\n    gsettings set org.gnome.desktop.wm.keybindings switch-applications \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-last \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-1 \"['\u003cShift\u003e\u003cSuper\u003eq']\"\n    gsettings set org.gnome.desktop.wm.keybindings move-to-corner-ne \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-3 \"['\u003cSuper\u003ee']\"\n    gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-up \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings move-to-side-s \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings show-desktop \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings move-to-center \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-2 \"['\u003cShift\u003e\u003cSuper\u003ew']\"\n    gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-left \"['\u003cControl\u003e\u003cAlt\u003eLeft']\"\n    gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-right \"['\u003cControl\u003e\u003cAlt\u003eRight']\"\n    gsettings set org.gnome.desktop.wm.keybindings raise \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings move-to-corner-se \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-10 \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-4 \"['\u003cSuper\u003er']\"\n    gsettings set org.gnome.desktop.wm.keybindings toggle-shaded \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings cycle-group-backward \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-3 \"['\u003cShift\u003e\u003cSuper\u003ee']\"\n    gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-down \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings cycle-panels-backward \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings move-to-monitor-left \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings switch-applications-backward \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-11 \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings switch-input-source-backward \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-5 \"['\u003cSuper\u003et']\"\n    gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-4 \"['\u003cShift\u003e\u003cSuper\u003er']\"\n    gsettings set org.gnome.desktop.wm.keybindings move-to-monitor-down \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings toggle-fullscreen \"['\u003cSuper\u003ef']\"\n    gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-6 \"['\u003cSuper\u003ey']\"\n    gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-12 \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings cycle-group \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-up \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-last \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings switch-group-backward \"@as []\"\n    gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-5 \"['\u003cShift\u003e\u003cSuper\u003et']\"\n    gsettings set org.gnome.mutter.keybindings tab-popup-cancel \"@as []\"\n    gsettings set org.gnome.mutter.keybindings tab-popup-select \"@as []\"\n    gsettings set org.gnome.mutter.keybindings toggle-tiled-right \"['\u003cShift\u003e\u003cSuper\u003el']\"\n    gsettings set org.gnome.mutter.keybindings toggle-tiled-left \"['\u003cShift\u003e\u003cSuper\u003eh']\"\n    gsettings set org.gnome.mutter.keybindings rotate-monitor \"['XF86RotateWindows']\"\n    gsettings set org.gnome.mutter.keybindings switch-monitor \"['\u003cSuper\u003ep', 'XF86Display']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings \"['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys media \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys stop-static \"['XF86AudioStop']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys eject-static \"['XF86Eject']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys rotate-video-lock \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys screen-brightness-cycle \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys toggle-contrast \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys rotate-video-lock-static \"['\u003cSuper\u003eo', 'XF86RotationLockToggle']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys www \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys window-screenshot-clip \"['\u003cAlt\u003e\u003cSuper\u003ePrint']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys battery-status-static \"['XF86Battery']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys volume-down \"['AudioLowerVolume']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys playback-repeat \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys hibernate \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys volume-down-precise \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys next \"['AudioNext']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys suspend \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys touchpad-toggle-static \"['XF86TouchpadToggle', '\u003cCtrl\u003e\u003cSuper\u003eXF86TouchpadToggle']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys volume-up-quiet \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys screen-brightness-up-static \"['XF86MonBrightnessUp']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys play-static \"['XF86AudioPlay', '\u003cCtrl\u003eXF86AudioPlay']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys search-static \"['XF86Search']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys magnifier-zoom-in \"@as []\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys area-screenshot-clip \"['\u003cShift\u003e\u003cSuper\u003ePrint']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys mic-mute \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys stop \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys previous \"['AudioPrev']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys volume-up \"['AudioRaiseVolume']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys control-center \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys search \"@as []\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys calculator \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys volume-step \"6\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys rfkill-static \"['XF86WLAN', 'XF86UWB', 'XF86RFKill']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys pause-static \"['XF86AudioPause']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys volume-mute-static \"['XF86AudioMute']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys volume-up-static \"['XF86AudioRaiseVolume', '\u003cCtrl\u003eXF86AudioRaiseVolume']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys calculator-static \"['XF86Calculator']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys home-static \"['XF86Explorer']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys touchpad-on \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys www-static \"['XF86WWW']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys volume-mute-quiet-static \"['\u003cAlt\u003eXF86AudioMute']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys magnifier-zoom-out \"@as []\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys volume-down-quiet-static \"['\u003cAlt\u003eXF86AudioLowerVolume', '\u003cAlt\u003e\u003cCtrl\u003eXF86AudioLowerVolume']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys window-screenshot \"['\u003cAlt\u003ePrint']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys power \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys play \"['AudioPlay']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys max-screencast-length \"uint32 30\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys power-static \"['XF86PowerOff']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys volume-down-static \"['XF86AudioLowerVolume', '\u003cCtrl\u003eXF86AudioLowerVolume']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys keyboard-brightness-up \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys playback-forward \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys playback-random-static \"['XF86AudioRandomPlay']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys pause \"@as []\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys screen-brightness-cycle-static \"['XF86MonBrightnessCycle']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys media-static \"['XF86AudioMedia']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys hibernate-static \"['XF86Suspend', 'XF86Hibernate']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys screenshot-clip \"['\u003cSuper\u003ePrint']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys eject \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys email-static \"['XF86Mail']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys screen-brightness-up \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys rfkill-bluetooth \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys touchpad-toggle \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys keyboard-brightness-toggle \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys logout \"@as []\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys help \"['', '\u003cSuper\u003eF1']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys playback-random \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys area-screenshot \"['\u003cShift\u003ePrint']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys decrease-text-size \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys volume-up-quiet-static \"['\u003cAlt\u003eXF86AudioRaiseVolume', '\u003cAlt\u003e\u003cCtrl\u003eXF86AudioRaiseVolume']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys screencast \"['\u003cPrimary\u003ePrint']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys screensaver-static \"['XF86ScreenSaver']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys email \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys volume-down-quiet \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys screen-brightness-down-static \"['XF86MonBrightnessDown']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys increase-text-size \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys touchpad-off-static \"['XF86TouchpadOff']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys home \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys playback-rewind-static \"['XF86AudioRewind']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys screenreader \"@as []\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys playback-repeat-static \"['XF86AudioRepeat']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys magnifier \"@as []\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys volume-up-precise \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys playback-rewind \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys suspend-static \"['XF86Sleep']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys volume-mute \"['AudioMute']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys keyboard-brightness-toggle-static \"['XF86KbdLightOnOff']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys mic-mute-static \"['XF86AudioMicMute']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys volume-up-precise-static \"['\u003cShift\u003eXF86AudioRaiseVolume', '\u003cCtrl\u003e\u003cShift\u003eXF86AudioRaiseVolume']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys keyboard-brightness-up-static \"['XF86KbdBrightnessUp']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys screen-brightness-down \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys rfkill \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys playback-forward-static \"['XF86AudioForward']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys rfkill-bluetooth-static \"['XF86Bluetooth']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys keyboard-brightness-down \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys screensaver \"['\u003cPrimary\u003e\u003cShift\u003e\u003cAlt\u003e\u003cSuper\u003el']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys on-screen-keyboard \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys control-center-static \"['XF86Tools']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys volume-mute-quiet \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys touchpad-off \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys screenshot \"['Print']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys battery-status \"['']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys touchpad-on-static \"['XF86TouchpadOn']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys next-static \"['XF86AudioNext', '\u003cCtrl\u003eXF86AudioNext']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys previous-static \"['XF86AudioPrev', '\u003cCtrl\u003eXF86AudioPrev']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys keyboard-brightness-down-static \"['XF86KbdBrightnessDown']\"\n    gsettings set org.gnome.settings-daemon.plugins.media-keys volume-down-precise-static \"['\u003cShift\u003eXF86AudioLowerVolume', '\u003cCtrl\u003e\u003cShift\u003eXF86AudioLowerVolume']\"\n    dconf load \"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/\" \u003c\u003cEOF\n    [custom0]\n    binding='\u003cSuper\u003eReturn'\n    command='gnome-terminal'\n    name='Launch Terminal'\n    EOF\n    #+end_example\n\n** =gnome-terminal=\n\n*** Themes\n    This theme is restored by invoking ~dconf load~ with a file containing the\n    contents of the results drawer below (You can automatically generate this\n    file with =org-babel-tangle=)\n\n    #+NAME: gnome-terminal-themes.dconf\n    #+BEGIN_SRC sh :exports results\n      dconf dump /org/gnome/terminal/\n    #+END_SRC\n\n    #+RESULTS: gnome-terminal-themes.dconf\n    #+begin_example\n    [legacy]\n    confirm-close=true\n    default-show-menubar=false\n    headerbar=@mb false\n    menu-accelerator-enabled=false\n    mnemonics-enabled=false\n    new-tab-position='last'\n    new-terminal-mode='window'\n    schema-version=uint32 3\n    shell-integration-enabled=true\n    shortcuts-enabled=false\n    tab-policy='automatic'\n    tab-position='top'\n    theme-variant='dark'\n    unified-menu=false\n\n    [legacy/profiles:]\n    list=['b1dcc9dd-5262-4d8d-a863-c897e6d979b9', '8bfbb274-dc3d-4666-8048-5317058efebe']\n\n    [legacy/profiles:/:8bfbb274-dc3d-4666-8048-5317058efebe]\n    audible-bell=false\n    background-color='rgb(253,246,227)'\n    font='Source Code Pro 14'\n    foreground-color='rgb(101,123,131)'\n    palette=['rgb(7,54,66)', 'rgb(220,50,47)', 'rgb(133,153,0)', 'rgb(181,137,0)', 'rgb(38,139,210)', 'rgb(211,54,130)', 'rgb(42,161,152)', 'rgb(238,232,213)', 'rgb(0,43,54)', 'rgb(203,75,22)', 'rgb(88,110,117)', 'rgb(101,123,131)', 'rgb(131,148,150)', 'rgb(108,113,196)', 'rgb(147,161,161)', 'rgb(253,246,227)']\n    scrollback-lines=100000\n    scrollbar-policy='never'\n    use-system-font=false\n    use-theme-colors=false\n    visible-name='Light'\n\n    [legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9]\n    audible-bell=false\n    background-color='rgb(0,43,54)'\n    font='Source Code Pro 14'\n    foreground-color='rgb(131,148,150)'\n    palette=['rgb(7,54,66)', 'rgb(220,50,47)', 'rgb(133,153,0)', 'rgb(181,137,0)', 'rgb(38,139,210)', 'rgb(211,54,130)', 'rgb(42,161,152)', 'rgb(238,232,213)', 'rgb(0,43,54)', 'rgb(203,75,22)', 'rgb(88,110,117)', 'rgb(101,123,131)', 'rgb(131,148,150)', 'rgb(108,113,196)', 'rgb(147,161,161)', 'rgb(253,246,227)']\n    scrollback-lines=100000\n    scrollbar-policy='never'\n    use-system-font=false\n    use-theme-colors=false\n    visible-name='Dark'\n    #+end_example\n\n*** =gtk.css=\n    By default, =gnome-terminal= displays an obscenely tall header bar which I like to disable.\n\n    The following CSS file does just that, as well as shrinking the header bar of Gnome applications generally.\n\n    #+name: gtk.css\n    #+BEGIN_SRC css :tangle \"~/.config/gtk-3.0/gtk.css\"\n      VteTerminal,\n      TerminalScreen,\n      vte-terminal {\n        /* XXX: Don't attempt to change this to padding: 5px 0 5px 5px */\n        padding-bottom: 0px;\n        padding-top: 5px;\n        padding-left: 5px;\n        padding-right: 5px;\n      }\n\n      /* shrink headerbars */\n      headerbar {\n        min-height: 0px;\n        padding-left: 0px; /* same as childrens vertical margins for nicer proportions */\n        padding-right: 0px;\n      }\n\n      headerbar entry,\n      headerbar spinbutton,\n      headerbar button,\n      headerbar separator {\n        margin-top: 0px; /* same as headerbar side padding for nicer proportions */\n        margin-bottom: 0px;\n      }\n\n      /* shrink ssd titlebars */\n      .default-decoration {\n        min-height: 0; /* let the entry and button drive the titlebar size */\n        padding: 0px;\n      }\n\n      .default-decoration .titlebutton {\n        min-height: 0px; /* tweak these two props to reduce button size */\n        min-width: 0px;\n      }\n\n      window.ssd headerbar.titlebar,\n      window.ssd headerbar.titlebar button.titlebutton\n      {\n        padding-top: 0px;\n        padding-bottom: 0px;\n        min-height: 0;\n      }\n    #+END_SRC\n\n** =NetworkManager=\n   =NetworkManager= is a program for providing detection and configuration for\n   systems to automatically connect to network.\n\n*** Use local resolver\n**** Set ~main.dns~ to =dnsmasq= in =NetworkManager.conf=\n     You must ensure NetworkManager globally enables local resolver =dnsmasq=\n\n     #+NAME: 70-use-dnsmasq.conf\n     #+BEGIN_SRC conf :tangle \"/sudo::/etc/NetworkManager/conf.d/70-use-dnsmasq.conf\"\n       [main]\n       dns=dnsmasq\n     #+END_SRC\n\n**** Add server configuration to ~/etc/NetworkManager/dnsmasq.d~\n     This will tack on these servers to the list recieved by DHCP.\n     #+NAME: server.conf\n     #+BEGIN_SRC conf :tangle \"/sudo::/etc/NetworkManager/dnsmasq.d/server.conf\"\n       # Upstream DNS servers\n       server=2606:4700:4700::1001\n       server=2001:4860:4860::8844\n       server=1.1.1.1\n       server=8.8.8.8\n\n       # Increase the cachesize\n       cache-size=1500\n\n       # Don't store in cache the invalid resolutions\n       no-negcache\n     #+END_SRC\n\n** Backup\n   #+NAME: backup\n   [[file:backup/README.org]]\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzv%2Fdotfilez","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzv%2Fdotfilez","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzv%2Fdotfilez/lists"}