about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--COPYING29
-rw-r--r--LICENSE.APACHE202
-rw-r--r--README.md19
-rw-r--r--cfgfiles/gajim.nix731
-rw-r--r--cfgfiles/synergy.conf18
-rw-r--r--common-workstation.nix145
-rw-r--r--common.nix53
-rw-r--r--labernix/COPYING17
-rw-r--r--labernix/LICENSE (renamed from LICENSE)0
-rw-r--r--labernix/README.md10
-rw-r--r--labernix/common.nix4
-rw-r--r--labernix/default.nix (renamed from default.nix)0
-rw-r--r--labernix/machines/heinrich.nix (renamed from machines/heinrich.nix)0
-rw-r--r--labernix/machines/labtop.nix (renamed from machines/labtop.nix)0
-rw-r--r--labernix/machines/mailserver.nix (renamed from machines/mailserver.nix)0
-rw-r--r--labernix/modules/config/labernix-pkgs.nix (renamed from modules/config/labernix-pkgs.nix)0
-rw-r--r--labernix/modules/module-list.nix4
-rw-r--r--labernix/modules/services/postfix/default.nix (renamed from modules/services/postfix/default.nix)0
-rw-r--r--labernix/modules/services/postfix/restrictions.nix (renamed from modules/services/postfix/restrictions.nix)0
-rw-r--r--labernix/pkgs/beehive/default.nix (renamed from pkgs/beehive/default.nix)0
-rw-r--r--labernix/pkgs/beehive/godeps.nix (renamed from pkgs/beehive/godeps.nix)0
-rw-r--r--labernix/pkgs/default.nix9
-rw-r--r--labernix/release.nix22
-rw-r--r--labernix/tests/heinrich.nix (renamed from tests/heinrich.nix)0
-rw-r--r--labernix/tests/make-test.nix (renamed from tests/make-test.nix)0
-rw-r--r--lib/default.nix17
-rw-r--r--machines/arilou.nix47
-rw-r--r--machines/dnyarri-kconf.nix1510
-rw-r--r--machines/dnyarri.nix145
-rw-r--r--machines/kzerza.nix64
-rw-r--r--machines/mmrnmhrm-kconf.nix1220
-rw-r--r--machines/mmrnmhrm.nix67
-rw-r--r--machines/tishtushi.nix65
-rw-r--r--modules/git/default.nix72
-rw-r--r--modules/i3/conky.nix115
-rw-r--r--modules/i3/default.nix129
-rw-r--r--modules/i3/i3.conf131
-rw-r--r--modules/i3/workspace.nix107
-rw-r--r--modules/module-list.nix7
-rw-r--r--modules/slim/default.nix43
-rw-r--r--modules/vlock/default.nix51
-rw-r--r--modules/vlock/message.cat18
-rw-r--r--modules/vlock/message.colmap18
-rw-r--r--modules/zsh/default.nix106
-rw-r--r--network.nix7
-rw-r--r--nixpkgs/config.nix12
-rw-r--r--overrides/default.nix98
-rw-r--r--packages.nix98
-rwxr-xr-xpkgs/aacolorize/aacolorize.py182
-rw-r--r--pkgs/aacolorize/default.nix13
-rw-r--r--pkgs/axbo/default.nix77
-rw-r--r--pkgs/blop/default.nix16
-rw-r--r--pkgs/default.nix24
-rw-r--r--pkgs/gajim/config.patch80
-rw-r--r--pkgs/grandpa/default.nix19
-rw-r--r--pkgs/kpatches/bfqsched.nix44
-rw-r--r--pkgs/libcmt/default.nix25
-rw-r--r--pkgs/librxtx-java/default.nix29
-rw-r--r--pkgs/lockdev/default.nix23
-rw-r--r--pkgs/nixops/default.nix47
-rw-r--r--pkgs/pvolctrl/default.nix35
-rw-r--r--pkgs/sidplayfp/default.nix29
-rw-r--r--pkgs/tkabber-urgent-plugin/default.nix26
-rw-r--r--pkgs/tomahawk/default.nix59
-rw-r--r--pkgs/twitchstream/default.nix112
-rw-r--r--pkgs/vim/default.nix333
-rw-r--r--release.nix67
-rw-r--r--tests/i3.nix31
68 files changed, 6645 insertions, 36 deletions
diff --git a/COPYING b/COPYING
index 8377ade4..1da4f5dd 100644
--- a/COPYING
+++ b/COPYING
@@ -1,17 +1,20 @@
-All Nix expressions in this repository are free software: you can
-redistribute them and/or modify them under the terms of the GNU General
-Public License as published by the Free Software Foundation, either
-version 3 of the License, or (at your option) any later version.
+Everything except files that end with ".patch" are copyright (C) 2015
+aszlig and licensed under the Apache License, Version 2.0 (the
+"License"); you may not use these files except in compliance with the
+License. You may obtain a copy of the License at
 
-The expression files are distributed in the hope that they will be
-useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-Public License for more details.
+   http://www.apache.org/licenses/LICENSE-2.0
 
-For files other than the Nix expression files the same terms apply,
-unless explicitly stated otherwise here or in the file header.
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
 
-You should have received a copy of the GNU General Public License
-along with this program (see LICENSE file).
+If the URL to the license is unavailable, please see LICENSE.APACHE in
+this directory.
 
-If not, see <http://www.gnu.org/licenses/>.
+All of the .patch files are copyright (C) 2015 aszlig as well, but are
+licensed under the licenses of the corresponding projects. Please look
+at accompanying Nix expressions for more information about the
+licenses of the respective projects and thus my patches.
diff --git a/LICENSE.APACHE b/LICENSE.APACHE
new file mode 100644
index 00000000..d6456956
--- /dev/null
+++ b/LICENSE.APACHE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/README.md b/README.md
index dd081f1c..b4065817 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,15 @@
-# LaberNix
+About Vuizvui
+=============
 
-A collection of [Nix][] expressions for (Open)Labers (people from the OpenLab),
-which **of course** is the only reason why the name of this repository is like
-this.
+This is a [set of NixOS modules/configs][manual] which I use for my personal
+machines, with a focus on patching most "dotfiles" directly into the packages
+and thus using the real dotfiles only for experimenting/testing.
 
-No coincidences, right?
+The name "vuizvui" is of Bavarian origins and means something like "too much"
+while on the other side "nix" means nothing. Which fits quite well because this
+repository is for everything I find either too complex or not polished/generic
+enough to push into [nixpkgs].
 
-[Nix]: https://nixos.org/nix/
-Hydra builds: https://headcounter.org/hydra/jobset/openlab/labernix
+Hydra builds: https://headcounter.org/hydra/jobset/aszlig/vuizvui
+[nixpkgs]:    https://github.com/NixOS/nixpkgs
+[manual]:     https://headcounter.org/hydra/job/aszlig/vuizvui/manual/latest/download/1/manual.html
diff --git a/cfgfiles/gajim.nix b/cfgfiles/gajim.nix
new file mode 100644
index 00000000..e9ed1100
--- /dev/null
+++ b/cfgfiles/gajim.nix
@@ -0,0 +1,731 @@
+with (import <nixpkgs> {}).lib;
+
+let
+  mkConfig = let
+    traverse = path: attrs: let
+      mkVal = name: value: let
+        flatPath = concatStringsSep "." (path ++ [name]);
+      in if isAttrs value then traverse (path ++ [name]) value
+         else if value == true then "${flatPath} = True"
+         else if value == false then "${flatPath} = False"
+         else "${flatPath} = ${value}";
+    in concatStringsSep "\n" (mapAttrsToList mkVal attrs);
+
+    rootTraverse = attrs: (traverse [] attrs) + "\n";
+  in rootTraverse;
+
+in mkConfig {
+  activity_iconset = "default";
+  after_nickname = ">";
+  allow_hide_roster = true;
+  always_english_wikipedia = false;
+  always_english_wiktionary = true;
+  ascii_formatting = true;
+  ask_avatars_on_startup = true;
+  ask_offline_status = true;
+  ask_offline_status_on_connection = false;
+  ask_online_status = false;
+  attach_notifications_to_systray = false;
+  audio_input_device = "pulsesrc device=alsa_input."
+                     + "usb-046d_0804_DD519390-02-U0x46d0x804.analog-mono"
+                     + " ! volume name=gajim_vol";
+  audio_input_volume = "50";
+  audio_output_device = "pulsesink device=alsa_output."
+                      + "pci-0000_00_1b.0.analog-stereo sync=true";
+  audio_output_volume = "50";
+  autoaway = false;
+  autoaway_message = "$S (Away as a result of being idle more than $T min)";
+  autoawaytime = "5";
+  autodetect_browser_mailer = false;
+  autopopup = true;
+  autopopupaway = true;
+  autoxa = false;
+  autoxa_message = "$S (Not available as a result of being"
+                 + " idle more than $T min)";
+  autoxatime = "15";
+  avatar_position_in_roster = "left";
+  before_nickname = "<";
+  change_roster_title = true;
+  change_status_window_timeout = "15";
+  "chat-msgwin-height" = "440";
+  "chat-msgwin-width" = "480";
+  "chat-msgwin-x-position" = "-1";
+  "chat-msgwin-y-position" = "-1";
+  chat_avatar_height = "52";
+  chat_avatar_width = "52";
+  chat_merge_consecutive_nickname = false;
+  chat_merge_consecutive_nickname_indent = "  ";
+  check_idle_every_foo_seconds = "2";
+  check_if_gajim_is_default = true;
+  collapsed_rows = "";
+  compact_view = false;
+  confirm_block = "";
+  confirm_close_muc = true;
+  confirm_close_muc_rooms = "";
+  confirm_close_multiple_tabs = true;
+  confirm_custom_status = "no";
+  confirm_metacontacts = "no";
+  conversation_font = "Liberation Mono 10";
+  ctrl_tab_go_to_next_composing = true;
+  custom_file_manager = "";
+  custombrowser = "chromium";
+  custommailapp = "";
+  dictionary_url = "WIKTIONARY";
+  displayed_chat_state_notifications = "all";
+  emoticons_theme = "";
+  enable_negative_priority = false;
+  escape_key_closes = false;
+  esession_modp = "5,14";
+  file_transfers_port = "28011";
+  ft_add_hosts_to_send = "";
+  "gc-hpaned-position" = "979";
+  "gc-msgwin-height" = "440";
+  "gc-msgwin-width" = "600";
+  "gc-msgwin-x-position" = "-1";
+  "gc-msgwin-y-position" = "-1";
+  gc_nicknames_colors = "#4e9a06:#f57900:#ce5c00:#3465a4:#204a87:#75507b:"
+                      + "#5c3566:#c17d11:#8f5902:#ef2929:#cc0000:#a40000";
+  gc_proposed_nick_char = "_";
+  gc_refer_to_nick_char = ":";
+  global_proxy = "";
+  hide_avatar_of_transport = true;
+  hide_chat_banner = false;
+  hide_groupchat_banner = false;
+  hide_groupchat_occupants_list = false;
+  history_window_height = "1156";
+  history_window_width = "1596";
+  "history_window_x-position" = "0";
+  "history_window_y-position" = "20";
+  iconset = "dcraven";
+  ignore_incoming_xhtml = false;
+  inmsgcolor = "#ff7f50";
+  inmsgfont = "";
+  inmsgtxtcolor = "";
+  inmsgtxtfont = "";
+  just_connected_bg_color = "#adc3c6";
+  just_disconnected_bg_color = "#ab6161";
+  key_up_lines = "25";
+  last_emoticons_dir = "";
+  last_roster_visible = true;
+  last_save_dir = "";
+  last_send_dir = "";
+  last_sounds_dir = "";
+  latex_png_dpi = "108";
+  log_contact_status_changes = true;
+  log_xhtml_messages = false;
+  markedmsgcolor = "#ff8080";
+  max_conversation_lines = "500";
+  mergeaccounts = false;
+  mood_iconset = "default";
+  "msgwin-height" = "1156";
+  "msgwin-max-state" = true;
+  "msgwin-width" = "1336";
+  "msgwin-x-position" = "0";
+  "msgwin-y-position" = "20";
+  muc_autorejoin_on_kick = false;
+  muc_autorejoin_timeout = "1";
+  muc_highlight_words = "DOWN;PROBLEM;CRITICAL;UNREACHABLE";
+  muc_restore_lines = "20";
+  muc_restore_timeout = "60";
+  networkmanager_support = true;
+  noconfirm_close_muc_rooms = "";
+  notification_avatar_height = "48";
+  notification_avatar_width = "48";
+  notification_position_x = "-1";
+  notification_position_y = "-1";
+  notification_preview_message = true;
+  notification_timeout = "5";
+  notify_on_all_muc_messages = false;
+  notify_on_file_complete = true;
+  notify_on_new_gmail_email = true;
+  notify_on_new_gmail_email_command = "";
+  notify_on_new_gmail_email_extra = false;
+  notify_on_new_message = false;
+  notify_on_signin = false;
+  notify_on_signout = false;
+  one_message_window = "always_with_roster";
+  openwith = "xdg-open";
+  outgoing_chat_state_notifications = "composing_only";
+  outmsgcolor = "#add8e6";
+  outmsgfont = "";
+  outmsgtxtcolor = "";
+  outmsgtxtfont = "";
+  plugins.plugin_installer.active = false;
+  print_ichat_every_foo_minutes = "5";
+  print_status_in_chats = true;
+  print_status_in_muc = "in_and_out";
+  print_time = "always";
+  print_time_fuzzy = "0";
+  quit_on_roster_x_button = true;
+  recently_groupchat = "";
+  remote_control = true;
+  restore_lines = "10";
+  restore_timeout = "60";
+  restored_messages_color = "#555753";
+  restored_messages_small = false;
+  roster_avatar_height = "16";
+  roster_avatar_width = "16";
+  roster_height = "1156";
+  roster_theme = "blue";
+  roster_width = "206";
+  roster_window_skip_taskbar = false;
+  "roster_x-position" = "0";
+  "roster_y-position" = "20";
+  rst_formatting_outgoing_messages = false;
+  "save-roster-position" = true;
+  scroll_roster_to_last_message = true;
+  search_engine = "https://www.google.com/search?&q=%s&sourceid=gajim";
+  send_on_ctrl_enter = false;
+  send_sha_in_gc_presence = true;
+  shell_like_completion = true;
+  show_activity_in_roster = true;
+  show_affiliation_in_groupchat = true;
+  show_ascii_formatting_chars = true;
+  show_avatar_in_chat = true;
+  show_avatars_in_roster = true;
+  show_contacts_number = true;
+  show_location_in_roster = true;
+  show_mood_in_roster = true;
+  show_only_chat_and_online = false;
+  show_roster_on_startup = "always";
+  show_self_contact = "when_other_resource";
+  show_status_msgs_in_roster = true;
+  show_transports_group = true;
+  show_tunes_in_roster = true;
+  show_unread_tab_icon = true;
+  showoffline = false;
+  "single-msg-height" = "280";
+  "single-msg-width" = "400";
+  "single-msg-x-position" = "0";
+  "single-msg-y-position" = "0";
+  sort_by_show_in_muc = false;
+  sort_by_show_in_roster = true;
+  sounddnd = false;
+  soundplayer = "aplay -q";
+  sounds_on = false;
+  speller_language = "de.en";
+  statusmsgcolor = "#4e9a06";
+  statusmsgfont = "";
+  stun_server = "";
+  tabs_always_visible = true;
+  tabs_border = false;
+  tabs_close_button = true;
+  tabs_position = "right";
+  time_stamp = "[%H:%M:%S]";
+  tooltip_account_name_color = "#888A85";
+  tooltip_affiliation_administrator_color = "#F57900";
+  tooltip_affiliation_member_color = "#73D216";
+  tooltip_affiliation_none_color = "#555753";
+  tooltip_affiliation_owner_color = "#CC0000";
+  tooltip_avatar_height = "125";
+  tooltip_avatar_width = "125";
+  tooltip_idle_color = "#888A85";
+  tooltip_status_away_color = "#EDD400";
+  tooltip_status_busy_color = "#F57900";
+  tooltip_status_free_for_chat_color = "#3465A4";
+  tooltip_status_na_color = "#CC0000";
+  tooltip_status_offline_color = "#555753";
+  tooltip_status_online_color = "#73D216";
+  trayicon = "never";
+  trayicon_notification_on_events = true;
+  treat_incoming_messages = "";
+  uri_schemes = "aaa:// aaas:// acap:// cap:// cid: crid:// data: dav: "
+              + "dict:// dns: fax: file:/ ftp:// geo: go: gopher:// h323: "
+              + "http:// https:// iax: icap:// im: imap:// info: ipp:// iris: "
+              + "iris.beep: iris.xpc: iris.xpcs: iris.lwz: ldap:// mid: "
+              + "modem: msrp:// msrps:// mtqp:// mupdate:// news: nfs:// "
+              + "nntp:// opaquelocktoken: pop:// pres: prospero:// rtsp:// "
+              + "service: shttp:// sip: sips: sms: snmp:// soap.beep:// "
+              + "soap.beeps:// tag: tel: telnet:// tftp:// thismessage:/ "
+              + "tip:// tv: urn:// vemmi:// xmlrpc.beep:// xmlrpc.beeps:// "
+              + "z39.50r:// z39.50s:// about: apt: cvs:// daap:// ed2k:// "
+              + "feed: fish:// git:// iax2: irc:// ircs:// ldaps:// magnet: "
+              + "mms:// rsync:// ssh:// svn:// sftp:// smb:// webcal://";
+  urlmsgcolor = "#add8e6";
+  use_gnomekeyring = true;
+  use_gpg_agent = true;
+  use_kib_mib = false;
+  use_kwalletcli = true;
+  use_latex = false;
+  use_notif_daemon = true;
+  use_smooth_scrolling = true;
+  use_speller = true;
+  use_stun_server = false;
+  use_transports_iconsets = true;
+  use_urgency_hint = true;
+  vcard_avatar_height = "200";
+  vcard_avatar_width = "200";
+  verbose = false;
+  version = "0.15.4";
+  video_framerate = "";
+  video_input_device = "v4l2src device=/dev/video0";
+  video_output_device = "ximagesink";
+  video_size = "";
+
+  accounts = {
+    Local = {
+      action_when_plaintext_connection = "warn";
+      active = true;
+      adjust_priority_with_status = true;
+      allow_no_log_for = "";
+      anonymous_auth = false;
+      answer_receipts = true;
+      attached_gpg_keys = "";
+      autoauth = false;
+      autoconnect = true;
+      autoconnect_as = "online";
+      autonegotiate_esessions = true;
+      autopriority_away = "40";
+      autopriority_chat = "50";
+      autopriority_dnd = "20";
+      autopriority_invisible = "10";
+      autopriority_online = "50";
+      autopriority_xa = "30";
+      autoreconnect = true;
+      client_cert = "";
+      client_cert_encrypted = false;
+      connection_types = "tls ssl plain";
+      custom_host = "";
+      custom_port = "5298";
+      dont_ack_subscription = false;
+      enable_esessions = true;
+      enable_message_carbons = false;
+      file_transfer_proxies = "proxy.eu.jabber.org, proxy.jabber.ru, "
+                            + "proxy.jabbim.cz";
+      ft_send_local_ips = true;
+      gpg_sign_presence = true;
+      hostname = "mmrnmhrm";
+      http_auth = "ask";
+      ignore_ssl_errors = "";
+      ignore_unknown_contacts = false;
+      is_zeroconf = true;
+      keep_alive_every_foo_secs = "55";
+      keep_alives_enabled = true;
+      keyid = "";
+      keyname = "";
+      last_archiving_time = "1970-01-01T00:00:00Z";
+      last_status = "online";
+      last_status_msg = "";
+      listen_to_network_manager = true;
+      log_encrypted_sessions = true;
+      minimized_gc = "";
+      "msgwin-height" = "440";
+      "msgwin-width" = "480";
+      "msgwin-x-position" = "-1";
+      "msgwin-y-position" = "-1";
+      name = "aszlig";
+      no_log_for = "";
+      password = "zeroconf";
+      ping_alive_every_foo_secs = "120";
+      ping_alives_enabled = true;
+      priority = "5";
+      proxy = "";
+      publish_location = false;
+      publish_tune = false;
+      request_receipt = true;
+      resource = "gajim";
+      restore_last_status = false;
+      roster_version = "";
+      savepass = false;
+      send_idle_time = true;
+      send_os_info = true;
+      send_time_info = true;
+      ssl_fingerprint_sha1 = "";
+      subscribe_activity = true;
+      subscribe_location = true;
+      subscribe_mood = true;
+      subscribe_nick = true;
+      subscribe_tune = true;
+      subscription_request_msg = "";
+      sync_with_global_status = true;
+      test_ft_proxies_on_startup = true;
+      time_for_ping_alive_answer = "60";
+      try_connecting_for_foo_secs = "60";
+      use_custom_host = false;
+      use_env_http_proxy = false;
+      use_ft_proxies = false;
+      use_srv = true;
+      warn_when_insecure_password = true;
+      warn_when_insecure_ssl_connection = true;
+      zeroconf_email = "";
+      zeroconf_first_name = "";
+      zeroconf_jabber_id = "";
+      zeroconf_last_name = "";
+    };
+
+    "aszlig.net" = {
+      action_when_plaintext_connection = "disconnect";
+      active = true;
+      adjust_priority_with_status = true;
+      allow_no_log_for = "";
+      anonymous_auth = false;
+      answer_receipts = true;
+      autoauth = false;
+      autoconnect = false;
+      autoconnect_as = "online";
+      autonegotiate_esessions = true;
+      autopriority_away = "40";
+      autopriority_chat = "50";
+      autopriority_dnd = "20";
+      autopriority_invisible = "10";
+      autopriority_online = "50";
+      autopriority_xa = "30";
+      autoreconnect = true;
+      client_cert = "";
+      client_cert_encrypted = false;
+      connection_types = "tls ssl plain";
+      custom_host = "aszlig.net";
+      custom_port = "5222";
+      dont_ack_subscription = false;
+      enable_esessions = true;
+      enable_message_carbons = false;
+      file_transfer_proxies = "proxy.headcounter.org";
+      ft_send_local_ips = true;
+      gpg_sign_presence = true;
+      hostname = "aszlig.net";
+      http_auth = "ask";
+      ignore_ssl_errors = "";
+      ignore_unknown_contacts = false;
+      is_zeroconf = false;
+      keep_alive_every_foo_secs = "55";
+      keep_alives_enabled = true;
+      keyid = "8C2DC961";
+      keyname = ''aszlig <"^[0-9]+$"@regexmail.net>'';
+      last_archiving_time = "1970-01-01T00:00:00Z";
+      last_status_msg = "";
+      listen_to_network_manager = true;
+      log_encrypted_sessions = true;
+      minimized_gc = "";
+      "msgwin-height" = "440";
+      "msgwin-width" = "480";
+      "msgwin-x-position" = "-1";
+      "msgwin-y-position" = "-1";
+      name = "aszlig";
+      no_log_for = "";
+      ping_alive_every_foo_secs = "120";
+      ping_alives_enabled = true;
+      priority = "5";
+      proxy = "";
+      publish_location = false;
+      publish_tune = false;
+      request_receipt = true;
+      resource = "redmoon";
+      restore_last_status = false;
+      savepass = true;
+      send_idle_time = true;
+      send_os_info = true;
+      send_time_info = true;
+      ssl_fingerprint_sha1 = "8D:BC:E5:46:AB:B3:53:F7:36:B3:"
+                           + "66:0D:B4:B7:83:32:65:BA:A8:EF";
+      subscribe_activity = true;
+      subscribe_location = true;
+      subscribe_mood = true;
+      subscribe_nick = true;
+      subscribe_tune = true;
+      subscription_request_msg = "";
+      sync_with_global_status = true;
+      test_ft_proxies_on_startup = true;
+      time_for_ping_alive_answer = "60";
+      try_connecting_for_foo_secs = "60";
+      use_custom_host = false;
+      use_env_http_proxy = false;
+      use_ft_proxies = true;
+      use_srv = true;
+      warn_when_insecure_password = true;
+      warn_when_insecure_ssl_connection = true;
+      zeroconf_email = "";
+      zeroconf_first_name = "";
+      zeroconf_jabber_id = "";
+      zeroconf_last_name = "";
+    };
+  };
+
+  defaultstatusmsg = {
+    away = {
+      enabled = false;
+      message = "Be right back.";
+    };
+
+    chat = {
+      enabled = false;
+      message = "I'm free for chat.";
+    };
+
+    dnd = {
+      enabled = false;
+      message = "Do not disturb.";
+    };
+
+    invisible = {
+      enabled = false;
+      message = "Bye!";
+    };
+
+    offline = {
+      enabled = false;
+      message = "Bye!";
+    };
+
+    online = {
+      enabled = false;
+      message = "I'm available.";
+    };
+
+    xa = {
+      enabled = false;
+      message = "I'm not available.";
+    };
+  };
+
+  statusmsg = let
+    defaults = {
+      activity = "";
+      activity_text = "";
+      message = "";
+      mood = "";
+      mood_text = "";
+      subactivity = "";
+    };
+    applyDefaults = const (attrs: defaults // attrs);
+  in mapAttrs applyDefaults {
+    zone.activity = "working";
+    zone.subactivity = "coding";
+    zone.message = "In The Zone[TM]";
+
+    rofa.activity = "working";
+    rofa.activity_text = "Blinded by the lights...";
+    rofa.subactivity = "other";
+    rofa.message = "RoFa";
+
+    kernel.mood = "happy";
+    kernel.message = "Kerneling down for reboot NOW.";
+
+    sleep.activity = "inactive";
+    sleep.subactivity = "sleeping";
+    sleep.mood = "sleepy";
+    sleep.message = "Sleeping the hell out of here...";
+
+    _last_away = {};
+    _last_chat = {};
+    _last_dnd = {};
+    _last_invisible = {};
+    _last_offline = {};
+    _last_online = {};
+    _last_xa = {};
+  };
+
+  soundevents = {
+    contact_connected = {
+      enabled = false;
+      path = "connected.wav";
+    };
+
+    contact_disconnected = {
+      enabled = false;
+      path = "disconnected.wav";
+    };
+
+    first_message_received = {
+      enabled = true;
+      path = "message1.wav";
+    };
+
+    gmail_received = {
+      enabled = false;
+      path = "message1.wav";
+    };
+
+    message_sent = {
+      enabled = false;
+      path = "sent.wav";
+    };
+
+    muc_message_highlight = {
+      enabled = true;
+      path = "gc_message1.wav";
+    };
+
+    muc_message_received = {
+      enabled = false;
+      path = "gc_message2.wav";
+    };
+
+    next_message_received_focused = {
+      enabled = false;
+      path = "message2.wav";
+    };
+
+    next_message_received_unfocused = {
+      enabled = true;
+      path = "message2.wav";
+    };
+  };
+
+  proxies.Tor = {
+    bosh_content = "text/xml; charset=utf-8";
+    bosh_hold = "2";
+    bosh_http_pipelining = false;
+    bosh_uri = "";
+    bosh_useproxy = false;
+    bosh_wait = "30";
+    bosh_wait_for_restart_response = false;
+    host = "localhost";
+    pass = "";
+    port = "9050";
+    type = "socks5";
+    useauth = false;
+    user = "";
+  };
+
+  themes = {
+    blue = {
+      accountbgcolor = "#0c232e";
+      accountfont = "Liberation Mono 8";
+      accountfontattrs = "B";
+      accounttextcolor = "#ffffff";
+      bannerbgcolor = "#0f4864";
+      bannerfont = "Liberation Mono Bold 12";
+      bannerfontattrs = "B";
+      bannertextcolor = "#ffffff";
+      contactbgcolor = "#0c232b";
+      contactfont = "Liberation Mono Bold 8";
+      contactfontattrs = "";
+      contacttextcolor = "#ffffff";
+      groupbgcolor = "#18515f";
+      groupfont = "Liberation Mono Bold 8";
+      groupfontattrs = "I";
+      grouptextcolor = "#ffffff";
+      state_composing_color = "green4";
+      state_gone_color = "grey";
+      state_inactive_color = "grey62";
+      state_muc_directed_msg_color = "red2";
+      state_muc_msg_color = "mediumblue";
+      state_paused_color = "mediumblue";
+    };
+
+    default = {
+      accountbgcolor = "";
+      accountfont = "";
+      accountfontattrs = "B";
+      accounttextcolor = "";
+      bannerbgcolor = "";
+      bannerfont = "";
+      bannerfontattrs = "B";
+      bannertextcolor = "";
+      contactbgcolor = "";
+      contactfont = "";
+      contactfontattrs = "";
+      contacttextcolor = "";
+      groupbgcolor = "";
+      groupfont = "";
+      groupfontattrs = "I";
+      grouptextcolor = "";
+      state_composing_color = "green4";
+      state_gone_color = "grey";
+      state_inactive_color = "grey62";
+      state_muc_directed_msg_color = "red2";
+      state_muc_msg_color = "mediumblue";
+      state_paused_color = "mediumblue";
+    };
+
+    green = {
+      accountbgcolor = "#94aa8c";
+      accountfont = "";
+      accountfontattrs = "B";
+      accounttextcolor = "";
+      bannerbgcolor = "#94aa8c";
+      bannerfont = "";
+      bannerfontattrs = "B";
+      bannertextcolor = "";
+      contactbgcolor = "";
+      contactfont = "";
+      contactfontattrs = "";
+      contacttextcolor = "#000000";
+      groupbgcolor = "#eff3e7";
+      groupfont = "";
+      groupfontattrs = "I";
+      grouptextcolor = "#0000ff";
+      state_composing_color = "green4";
+      state_gone_color = "grey";
+      state_inactive_color = "grey62";
+      state_muc_directed_msg_color = "red2";
+      state_muc_msg_color = "mediumblue";
+      state_paused_color = "mediumblue";
+    };
+
+    grocery = {
+      accountbgcolor = "#6bbe18";
+      accountfont = "";
+      accountfontattrs = "B";
+      accounttextcolor = "";
+      bannerbgcolor = "#108abd";
+      bannerfont = "";
+      bannerfontattrs = "B";
+      bannertextcolor = "";
+      contactbgcolor = "#efb26b";
+      contactfont = "";
+      contactfontattrs = "";
+      contacttextcolor = "#000000";
+      groupbgcolor = "#ceefad";
+      groupfont = "";
+      groupfontattrs = "I";
+      grouptextcolor = "#12125a";
+      state_composing_color = "green4";
+      state_gone_color = "grey";
+      state_inactive_color = "grey62";
+      state_muc_directed_msg_color = "red2";
+      state_muc_msg_color = "mediumblue";
+      state_paused_color = "mediumblue";
+    };
+
+    human = {
+      accountbgcolor = "#996442";
+      accountfont = "";
+      accountfontattrs = "B";
+      accounttextcolor = "";
+      bannerbgcolor = "#996442";
+      bannerfont = "";
+      bannerfontattrs = "B";
+      bannertextcolor = "";
+      contactbgcolor = "";
+      contactfont = "";
+      contactfontattrs = "";
+      contacttextcolor = "#000000";
+      groupbgcolor = "#e3ca94";
+      groupfont = "";
+      groupfontattrs = "I";
+      grouptextcolor = "#ab5920";
+      state_composing_color = "green4";
+      state_gone_color = "grey";
+      state_inactive_color = "grey62";
+      state_muc_directed_msg_color = "red2";
+      state_muc_msg_color = "mediumblue";
+      state_paused_color = "mediumblue";
+    };
+
+    marine = {
+      accountbgcolor = "#918caa";
+      accountfont = "";
+      accountfontattrs = "B";
+      accounttextcolor = "";
+      bannerbgcolor = "#918caa";
+      bannerfont = "";
+      bannerfontattrs = "B";
+      bannertextcolor = "";
+      contactbgcolor = "";
+      contactfont = "";
+      contactfontattrs = "";
+      contacttextcolor = "#000000";
+      groupbgcolor = "#e9e7f3";
+      groupfont = "";
+      groupfontattrs = "I";
+      grouptextcolor = "";
+      state_composing_color = "green4";
+      state_gone_color = "grey";
+      state_inactive_color = "grey62";
+      state_muc_directed_msg_color = "red2";
+      state_muc_msg_color = "mediumblue";
+      state_paused_color = "mediumblue";
+    };
+  };
+}
diff --git a/cfgfiles/synergy.conf b/cfgfiles/synergy.conf
new file mode 100644
index 00000000..57c4405f
--- /dev/null
+++ b/cfgfiles/synergy.conf
@@ -0,0 +1,18 @@
+section: screens
+  dnyarri:
+  mmrnmhrm:
+end
+
+section: links
+  mmrnmhrm:
+    left = dnyarri
+    right = dnyarri
+  dnyarri:
+    right = mmrnmhrm
+    left = mmrnmhrm
+end
+
+section: options
+  keystroke(AudioPlay) = switchToScreen(dnyarri)
+  keystroke(Menu) = switchToScreen(mmrnmhrm)
+end
diff --git a/common-workstation.nix b/common-workstation.nix
new file mode 100644
index 00000000..307abb00
--- /dev/null
+++ b/common-workstation.nix
@@ -0,0 +1,145 @@
+{ pkgs, config, lib, ... }:
+
+let
+  randrHeads = config.services.xserver.xrandrHeads;
+in {
+  imports = [
+    ./common.nix
+    ./packages.nix
+  ];
+
+  boot.kernelParams = [ "zswap.enabled=1" ];
+  boot.cleanTmpDir = true;
+
+  environment.systemPackages = with lib; let
+    mkRandrConf = acc: name: acc ++ singleton {
+      inherit name;
+      value = "--output '${name}' --preferred"
+            + optionalString (acc != []) " --right-of '${(head acc).name}'";
+    };
+    randrConf = map (getAttr "value") (foldl mkRandrConf [] randrHeads);
+  in singleton (pkgs.writeScriptBin "xreset" ''
+    #!${pkgs.stdenv.shell}
+    ${pkgs.xorg.xrandr}/bin/xrandr ${concatStringsSep " " randrConf}
+  '');
+
+  hardware = {
+    pulseaudio.enable = true;
+    pulseaudio.package = pkgs.pulseaudio.override {
+      useSystemd = true;
+    };
+    opengl = {
+      driSupport32Bit = true;
+      s3tcSupport = true;
+    };
+  };
+
+  fonts = {
+    enableCoreFonts = true;
+    enableFontDir = true;
+    enableGhostscriptFonts = true;
+    fonts = [
+      pkgs.dosemu_fonts
+      pkgs.liberation_ttf
+    ];
+  };
+
+  vuizvui.i3.enable = true;
+  vuizvui.slim.enable = true;
+  vuizvui.vlock.enable = true;
+  vuizvui.zsh.enable = true;
+
+  vuizvui.git.enable = true;
+  vuizvui.git.config = {
+    color.ui = "auto";
+    merge.tool = "vimdiff3";
+    user.email = "aszlig@redmoonstudios.org";
+    user.name = "aszlig";
+    user.signkey = "8C2DC961";
+    gpg.program = "${pkgs.gnupg}/bin/gpg2";
+    push.default = "current";
+    tar."tar.xz".command = "${pkgs.xz}/bin/xz -c";
+    rebase.autosquash = true;
+    rerere.enabled = true;
+    rerere.autoupdate = true;
+    commit.gpgsign = true;
+
+    alias.backport = let
+      release = "14.04";
+      message = "Merge release ${release} into backports.";
+    in "!git fetch upstream release-${release} &&"
+     + " git merge -m \"${message}\" --log FETCH_HEAD";
+  };
+
+  services = {
+    openssh = {
+      enable = true;
+      permitRootLogin = "without-password";
+    };
+
+    xfs.enable = false;
+
+    gpm = {
+      enable = true;
+      protocol = "exps2";
+    };
+
+    printing.enable = true;
+
+    udev.extraRules = ''
+      # aXbo S.P.A.C.
+      SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", \
+        ATTRS{serial}=="0001", OWNER="aszlig", SYMLINK+="axbo"
+      # Enttec DMX device
+      SUBSYSTEM=="usb*|tty", ACTION=="add|change", ATTRS{idVendor}=="0403", \
+        ATTRS{idProduct}=="6001", OWNER="aszlig"
+    '';
+
+    virtualboxHost.enable = true;
+
+    xserver = {
+      enable = true;
+      layout = "dvorak";
+
+      startGnuPGAgent = true;
+
+      displayManager.sessionCommands = ''
+        ${pkgs.redshift}/bin/redshift -l 48.428404:10.866007 &
+        ${pkgs.xorg.xrdb}/bin/xrdb "${pkgs.writeText "xrdb.config" ''
+          Rxvt*font:                 vga
+          Rxvt*background:           black
+          Rxvt*foreground:           grey
+          Rxvt*scrollBar:            false
+          Rxvt*saveLines:            2000
+
+          Rxvt*keysym.Home:          \033[1~
+          Rxvt*keysym.End:           \033[4~
+
+          Rxvt*urgentOnBell:         true
+
+          XTerm*font:                vga
+          XTerm*saveLines:           10000
+          XTerm*bellIsUrgent:        true
+          XTerm*background:          black
+          XTerm*foreground:          grey
+
+          XTerm*backarrowKeyIsErase: true
+          XTerm*ptyInitialErase:     true
+        ''}"
+      '';
+
+      desktopManager.default = "none";
+      desktopManager.xterm.enable = false;
+    };
+  };
+
+  users.extraUsers.aszlig = {
+    uid = 1000;
+    description = "aszlig";
+    group = "users";
+    extraGroups = [ "wheel" "video" ];
+    home = "/home/aszlig";
+    useDefaultShell = true;
+    createHome = true;
+  };
+}
diff --git a/common.nix b/common.nix
index b012032a..111b5c6c 100644
--- a/common.nix
+++ b/common.nix
@@ -1,4 +1,57 @@
+{ config, pkgs, ... }:
+
 {
   imports = import ./modules/module-list.nix;
+
+  nix = {
+    package = pkgs.nixUnstable;
+    useChroot = true;
+    readOnlyStore = true;
+    extraOptions = ''
+      build-cores = 0
+      auto-optimise-store = true
+    '';
+  };
+
+  boot.loader.grub = {
+    enable = true;
+    version = 2;
+  };
+
+  hardware.cpu.intel.updateMicrocode = true;
+
+  users.defaultUserShell = "/var/run/current-system/sw/bin/zsh";
+
+  networking.wireless.enable = false;
   networking.firewall.enable = false;
+  networking.useNetworkd = true;
+
+  i18n.consoleKeyMap = "dvorak";
+
+  programs.ssh.startAgent = false;
+  programs.ssh.extraConfig = ''
+    ServerAliveInterval 60
+  '';
+
+  services.nixosManual.showManual = false;
+
+  environment.systemPackages = with pkgs; [
+    binutils
+    cacert
+    file
+    htop
+    iotop
+    psmisc
+    unrar
+    unzip
+    vim
+    vlock
+    wget
+    xz
+    zsh
+  ];
+
+  nixpkgs.config = import ./nixpkgs/config.nix;
+  system.fsPackages = with pkgs; [ sshfsFuse ];
+  time.timeZone = "Europe/Berlin";
 }
diff --git a/labernix/COPYING b/labernix/COPYING
new file mode 100644
index 00000000..8377ade4
--- /dev/null
+++ b/labernix/COPYING
@@ -0,0 +1,17 @@
+All Nix expressions in this repository are free software: you can
+redistribute them and/or modify them under the terms of the GNU General
+Public License as published by the Free Software Foundation, either
+version 3 of the License, or (at your option) any later version.
+
+The expression files are distributed in the hope that they will be
+useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+Public License for more details.
+
+For files other than the Nix expression files the same terms apply,
+unless explicitly stated otherwise here or in the file header.
+
+You should have received a copy of the GNU General Public License
+along with this program (see LICENSE file).
+
+If not, see <http://www.gnu.org/licenses/>.
diff --git a/LICENSE b/labernix/LICENSE
index 94a9ed02..94a9ed02 100644
--- a/LICENSE
+++ b/labernix/LICENSE
diff --git a/labernix/README.md b/labernix/README.md
new file mode 100644
index 00000000..dd081f1c
--- /dev/null
+++ b/labernix/README.md
@@ -0,0 +1,10 @@
+# LaberNix
+
+A collection of [Nix][] expressions for (Open)Labers (people from the OpenLab),
+which **of course** is the only reason why the name of this repository is like
+this.
+
+No coincidences, right?
+
+[Nix]: https://nixos.org/nix/
+Hydra builds: https://headcounter.org/hydra/jobset/openlab/labernix
diff --git a/labernix/common.nix b/labernix/common.nix
new file mode 100644
index 00000000..b012032a
--- /dev/null
+++ b/labernix/common.nix
@@ -0,0 +1,4 @@
+{
+  imports = import ./modules/module-list.nix;
+  networking.firewall.enable = false;
+}
diff --git a/default.nix b/labernix/default.nix
index 20118162..20118162 100644
--- a/default.nix
+++ b/labernix/default.nix
diff --git a/machines/heinrich.nix b/labernix/machines/heinrich.nix
index 8ce69950..8ce69950 100644
--- a/machines/heinrich.nix
+++ b/labernix/machines/heinrich.nix
diff --git a/machines/labtop.nix b/labernix/machines/labtop.nix
index bf376ba5..bf376ba5 100644
--- a/machines/labtop.nix
+++ b/labernix/machines/labtop.nix
diff --git a/machines/mailserver.nix b/labernix/machines/mailserver.nix
index 7d4bd397..7d4bd397 100644
--- a/machines/mailserver.nix
+++ b/labernix/machines/mailserver.nix
diff --git a/modules/config/labernix-pkgs.nix b/labernix/modules/config/labernix-pkgs.nix
index c1f6d807..c1f6d807 100644
--- a/modules/config/labernix-pkgs.nix
+++ b/labernix/modules/config/labernix-pkgs.nix
diff --git a/labernix/modules/module-list.nix b/labernix/modules/module-list.nix
new file mode 100644
index 00000000..5137c672
--- /dev/null
+++ b/labernix/modules/module-list.nix
@@ -0,0 +1,4 @@
+[
+  ./config/labernix-pkgs.nix
+  ./services/postfix
+]
diff --git a/modules/services/postfix/default.nix b/labernix/modules/services/postfix/default.nix
index 4103a41b..4103a41b 100644
--- a/modules/services/postfix/default.nix
+++ b/labernix/modules/services/postfix/default.nix
diff --git a/modules/services/postfix/restrictions.nix b/labernix/modules/services/postfix/restrictions.nix
index fbb47f10..fbb47f10 100644
--- a/modules/services/postfix/restrictions.nix
+++ b/labernix/modules/services/postfix/restrictions.nix
diff --git a/pkgs/beehive/default.nix b/labernix/pkgs/beehive/default.nix
index 8cadb9e5..8cadb9e5 100644
--- a/pkgs/beehive/default.nix
+++ b/labernix/pkgs/beehive/default.nix
diff --git a/pkgs/beehive/godeps.nix b/labernix/pkgs/beehive/godeps.nix
index a0e7526e..a0e7526e 100644
--- a/pkgs/beehive/godeps.nix
+++ b/labernix/pkgs/beehive/godeps.nix
diff --git a/labernix/pkgs/default.nix b/labernix/pkgs/default.nix
new file mode 100644
index 00000000..9ff952ed
--- /dev/null
+++ b/labernix/pkgs/default.nix
@@ -0,0 +1,9 @@
+{ pkgs ? import <nixpkgs> {} }:
+
+let
+  callPackage = pkgs.lib.callPackageWith (pkgs // self);
+
+  self = {
+    beehive = callPackage ./beehive {};
+  };
+in self
diff --git a/labernix/release.nix b/labernix/release.nix
new file mode 100644
index 00000000..1edf284a
--- /dev/null
+++ b/labernix/release.nix
@@ -0,0 +1,22 @@
+with import <nixpkgs/lib>;
+
+let
+  system = "x86_64-linux";
+
+  genMachine = name: cfg: (import <nixpkgs/nixos/lib/eval-config.nix> {
+    inherit system;
+    modules = [ cfg ];
+  }).config.system.build.toplevel;
+
+in {
+  machines = mapAttrs genMachine (import ./default.nix).machines;
+  tests = {
+    heinrich = import ./tests/heinrich.nix { inherit system; };
+  };
+
+  pkgs = import ./pkgs {
+    pkgs = import <nixpkgs> {
+      inherit system;
+    };
+  };
+}
diff --git a/tests/heinrich.nix b/labernix/tests/heinrich.nix
index c524835e..c524835e 100644
--- a/tests/heinrich.nix
+++ b/labernix/tests/heinrich.nix
diff --git a/tests/make-test.nix b/labernix/tests/make-test.nix
index 10381afd..10381afd 100644
--- a/tests/make-test.nix
+++ b/labernix/tests/make-test.nix
diff --git a/lib/default.nix b/lib/default.nix
new file mode 100644
index 00000000..95f4f39f
--- /dev/null
+++ b/lib/default.nix
@@ -0,0 +1,17 @@
+with import <nixpkgs> {};
+
+with pkgs.lib;
+
+{
+  generateKConf = exprs: let
+    isNumber = c: elem c ["0" "1" "2" "3" "4" "5" "6" "7" "8" "9"];
+    mkValue = val:
+      if val == "" then "\"\""
+      else if val == "y" || val == "m" || val == "n" then val
+      else if all isNumber (stringToCharacters val) then val
+      else if substring 0 2 val == "0x" then val
+      else "\"${val}\"";
+    mkConfigLine = key: val: "${key}=${mkValue val}";
+    mkConf = cfg: concatStringsSep "\n" (mapAttrsToList mkConfigLine cfg);
+  in pkgs.writeText "generated.kconf" (mkConf exprs);
+}
diff --git a/machines/arilou.nix b/machines/arilou.nix
new file mode 100644
index 00000000..08f3e370
--- /dev/null
+++ b/machines/arilou.nix
@@ -0,0 +1,47 @@
+{ config, pkgs, ... }:
+
+with pkgs.lib;
+
+let
+  rootUUID = "e9c95c74-e4cf-41f6-bb45-baf8dd579217";
+  swapUUID = "4d172959-5cfd-4164-a46e-fa7be0dfd03a";
+  diskID = "usb-Lexar_USB_Flash_Drive_201303211246293590E4-0:0";
+in {
+  imports = [
+    ../common-workstation.nix
+    <nixpkgs/nixos/modules/profiles/all-hardware.nix>
+  ];
+
+  boot = {
+    kernelPackages = pkgs.linuxPackages_latest;
+    initrd.kernelModules = [ "fbcon" "usb_storage" ];
+    loader.grub.device = "/dev/disk/by-id/${diskID}";
+    loader.grub.memtest86.enable = true;
+  };
+
+  networking.hostName = "arilou";
+  networking.wireless.enable = true;
+  networking.enableB43Firmware = true;
+
+  fileSystems."/".device = "/dev/disk/by-uuid/${rootUUID}";
+  fileSystems."/".fsType = "btrfs";
+  fileSystems."/".options = concatStringsSep "," [
+    "ssd"
+    "space_cache"
+    "compress-force=zlib"
+    "noatime"
+  ];
+
+  fileSystems."/tmp".device = "none";
+  fileSystems."/tmp".fsType = "tmpfs";
+  fileSystems."/tmp".options = "nosuid,nodev,relatime";
+
+  swapDevices = singleton {
+    device = "/dev/disk/by-uuid/${swapUUID}";
+  };
+
+  services.openssh.enable = mkForce false;
+  services.xserver.videoDrivers = [ "intel" "ati" "nouveau" ];
+
+  nix.maxJobs = mkForce 2;
+}
diff --git a/machines/dnyarri-kconf.nix b/machines/dnyarri-kconf.nix
new file mode 100644
index 00000000..368c155f
--- /dev/null
+++ b/machines/dnyarri-kconf.nix
@@ -0,0 +1,1510 @@
+{
+  "CONFIG_64BIT" = "y";
+  "CONFIG_X86_64" = "y";
+  "CONFIG_X86" = "y";
+  "CONFIG_INSTRUCTION_DECODER" = "y";
+  "CONFIG_PERF_EVENTS_INTEL_UNCORE" = "y";
+  "CONFIG_OUTPUT_FORMAT" = "elf64-x86-64";
+  "CONFIG_ARCH_DEFCONFIG" = "arch/x86/configs/x86_64_defconfig";
+  "CONFIG_LOCKDEP_SUPPORT" = "y";
+  "CONFIG_STACKTRACE_SUPPORT" = "y";
+  "CONFIG_HAVE_LATENCYTOP_SUPPORT" = "y";
+  "CONFIG_MMU" = "y";
+  "CONFIG_NEED_DMA_MAP_STATE" = "y";
+  "CONFIG_NEED_SG_DMA_LENGTH" = "y";
+  "CONFIG_GENERIC_ISA_DMA" = "y";
+  "CONFIG_GENERIC_BUG" = "y";
+  "CONFIG_GENERIC_BUG_RELATIVE_POINTERS" = "y";
+  "CONFIG_GENERIC_HWEIGHT" = "y";
+  "CONFIG_ARCH_MAY_HAVE_PC_FDC" = "y";
+  "CONFIG_RWSEM_XCHGADD_ALGORITHM" = "y";
+  "CONFIG_GENERIC_CALIBRATE_DELAY" = "y";
+  "CONFIG_ARCH_HAS_CPU_RELAX" = "y";
+  "CONFIG_ARCH_HAS_CACHE_LINE_SIZE" = "y";
+  "CONFIG_HAVE_SETUP_PER_CPU_AREA" = "y";
+  "CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK" = "y";
+  "CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK" = "y";
+  "CONFIG_ARCH_HIBERNATION_POSSIBLE" = "y";
+  "CONFIG_ARCH_SUSPEND_POSSIBLE" = "y";
+  "CONFIG_ARCH_WANT_HUGE_PMD_SHARE" = "y";
+  "CONFIG_ARCH_WANT_GENERAL_HUGETLB" = "y";
+  "CONFIG_ZONE_DMA32" = "y";
+  "CONFIG_AUDIT_ARCH" = "y";
+  "CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING" = "y";
+  "CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC" = "y";
+  "CONFIG_X86_64_SMP" = "y";
+  "CONFIG_X86_HT" = "y";
+  "CONFIG_ARCH_HWEIGHT_CFLAGS" = "-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11";
+  "CONFIG_ARCH_SUPPORTS_UPROBES" = "y";
+  "CONFIG_FIX_EARLYCON_MEM" = "y";
+  "CONFIG_DEFCONFIG_LIST" = "/lib/modules/$UNAME_RELEASE/.config";
+  "CONFIG_IRQ_WORK" = "y";
+  "CONFIG_BUILDTIME_EXTABLE_SORT" = "y";
+  "CONFIG_INIT_ENV_ARG_LIMIT" = "32";
+  "CONFIG_CROSS_COMPILE" = "";
+  "CONFIG_LOCALVERSION" = "";
+  "CONFIG_HAVE_KERNEL_GZIP" = "y";
+  "CONFIG_HAVE_KERNEL_BZIP2" = "y";
+  "CONFIG_HAVE_KERNEL_LZMA" = "y";
+  "CONFIG_HAVE_KERNEL_XZ" = "y";
+  "CONFIG_HAVE_KERNEL_LZO" = "y";
+  "CONFIG_HAVE_KERNEL_LZ4" = "y";
+  "CONFIG_KERNEL_XZ" = "y";
+  "CONFIG_DEFAULT_HOSTNAME" = "dnyarri";
+  "CONFIG_SWAP" = "y";
+  "CONFIG_SYSVIPC" = "y";
+  "CONFIG_SYSVIPC_SYSCTL" = "y";
+  "CONFIG_POSIX_MQUEUE" = "y";
+  "CONFIG_POSIX_MQUEUE_SYSCTL" = "y";
+  "CONFIG_CROSS_MEMORY_ATTACH" = "y";
+  "CONFIG_FHANDLE" = "y";
+  "CONFIG_HAVE_ARCH_AUDITSYSCALL" = "y";
+  "CONFIG_GENERIC_IRQ_PROBE" = "y";
+  "CONFIG_GENERIC_IRQ_SHOW" = "y";
+  "CONFIG_GENERIC_IRQ_LEGACY_ALLOC_HWIRQ" = "y";
+  "CONFIG_GENERIC_PENDING_IRQ" = "y";
+  "CONFIG_IRQ_DOMAIN" = "y";
+  "CONFIG_GENERIC_MSI_IRQ" = "y";
+  "CONFIG_IRQ_FORCED_THREADING" = "y";
+  "CONFIG_SPARSE_IRQ" = "y";
+  "CONFIG_CLOCKSOURCE_WATCHDOG" = "y";
+  "CONFIG_ARCH_CLOCKSOURCE_DATA" = "y";
+  "CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE" = "y";
+  "CONFIG_GENERIC_TIME_VSYSCALL" = "y";
+  "CONFIG_GENERIC_CLOCKEVENTS" = "y";
+  "CONFIG_GENERIC_CLOCKEVENTS_BUILD" = "y";
+  "CONFIG_GENERIC_CLOCKEVENTS_BROADCAST" = "y";
+  "CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST" = "y";
+  "CONFIG_GENERIC_CMOS_UPDATE" = "y";
+  "CONFIG_TICK_ONESHOT" = "y";
+  "CONFIG_NO_HZ_COMMON" = "y";
+  "CONFIG_NO_HZ_IDLE" = "y";
+  "CONFIG_NO_HZ" = "y";
+  "CONFIG_HIGH_RES_TIMERS" = "y";
+  "CONFIG_TICK_CPU_ACCOUNTING" = "y";
+  "CONFIG_BSD_PROCESS_ACCT" = "y";
+  "CONFIG_BSD_PROCESS_ACCT_V3" = "y";
+  "CONFIG_TASKSTATS" = "y";
+  "CONFIG_TASK_DELAY_ACCT" = "y";
+  "CONFIG_TASK_XACCT" = "y";
+  "CONFIG_TASK_IO_ACCOUNTING" = "y";
+  "CONFIG_PREEMPT_RCU" = "y";
+  "CONFIG_SRCU" = "y";
+  "CONFIG_RCU_STALL_COMMON" = "y";
+  "CONFIG_RCU_FANOUT" = "64";
+  "CONFIG_RCU_FANOUT_LEAF" = "16";
+  "CONFIG_RCU_BOOST" = "y";
+  "CONFIG_RCU_KTHREAD_PRIO" = "1";
+  "CONFIG_RCU_BOOST_DELAY" = "500";
+  "CONFIG_BUILD_BIN2C" = "y";
+  "CONFIG_IKCONFIG" = "y";
+  "CONFIG_IKCONFIG_PROC" = "y";
+  "CONFIG_LOG_BUF_SHIFT" = "17";
+  "CONFIG_LOG_CPU_MAX_BUF_SHIFT" = "14";
+  "CONFIG_HAVE_UNSTABLE_SCHED_CLOCK" = "y";
+  "CONFIG_ARCH_SUPPORTS_NUMA_BALANCING" = "y";
+  "CONFIG_ARCH_SUPPORTS_INT128" = "y";
+  "CONFIG_CGROUPS" = "y";
+  "CONFIG_CGROUP_FREEZER" = "y";
+  "CONFIG_CGROUP_DEVICE" = "y";
+  "CONFIG_CPUSETS" = "y";
+  "CONFIG_CGROUP_CPUACCT" = "y";
+  "CONFIG_CGROUP_SCHED" = "y";
+  "CONFIG_FAIR_GROUP_SCHED" = "y";
+  "CONFIG_CFS_BANDWIDTH" = "y";
+  "CONFIG_BLK_CGROUP" = "y";
+  "CONFIG_NAMESPACES" = "y";
+  "CONFIG_UTS_NS" = "y";
+  "CONFIG_IPC_NS" = "y";
+  "CONFIG_USER_NS" = "y";
+  "CONFIG_PID_NS" = "y";
+  "CONFIG_NET_NS" = "y";
+  "CONFIG_SCHED_AUTOGROUP" = "y";
+  "CONFIG_RELAY" = "y";
+  "CONFIG_BLK_DEV_INITRD" = "y";
+  "CONFIG_INITRAMFS_SOURCE" = "";
+  "CONFIG_RD_GZIP" = "y";
+  "CONFIG_RD_BZIP2" = "y";
+  "CONFIG_RD_LZMA" = "y";
+  "CONFIG_RD_XZ" = "y";
+  "CONFIG_RD_LZO" = "y";
+  "CONFIG_RD_LZ4" = "y";
+  "CONFIG_SYSCTL" = "y";
+  "CONFIG_ANON_INODES" = "y";
+  "CONFIG_HAVE_UID16" = "y";
+  "CONFIG_SYSCTL_EXCEPTION_TRACE" = "y";
+  "CONFIG_HAVE_PCSPKR_PLATFORM" = "y";
+  "CONFIG_BPF" = "y";
+  "CONFIG_UID16" = "y";
+  "CONFIG_SGETMASK_SYSCALL" = "y";
+  "CONFIG_SYSFS_SYSCALL" = "y";
+  "CONFIG_KALLSYMS" = "y";
+  "CONFIG_PRINTK" = "y";
+  "CONFIG_BUG" = "y";
+  "CONFIG_ELF_CORE" = "y";
+  "CONFIG_PCSPKR_PLATFORM" = "y";
+  "CONFIG_BASE_FULL" = "y";
+  "CONFIG_FUTEX" = "y";
+  "CONFIG_EPOLL" = "y";
+  "CONFIG_SIGNALFD" = "y";
+  "CONFIG_TIMERFD" = "y";
+  "CONFIG_EVENTFD" = "y";
+  "CONFIG_SHMEM" = "y";
+  "CONFIG_AIO" = "y";
+  "CONFIG_ADVISE_SYSCALLS" = "y";
+  "CONFIG_PCI_QUIRKS" = "y";
+  "CONFIG_HAVE_PERF_EVENTS" = "y";
+  "CONFIG_PERF_EVENTS" = "y";
+  "CONFIG_VM_EVENT_COUNTERS" = "y";
+  "CONFIG_SLUB_DEBUG" = "y";
+  "CONFIG_SLUB" = "y";
+  "CONFIG_SYSTEM_TRUSTED_KEYRING" = "y";
+  "CONFIG_HAVE_OPROFILE" = "y";
+  "CONFIG_OPROFILE_NMI_TIMER" = "y";
+  "CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS" = "y";
+  "CONFIG_ARCH_USE_BUILTIN_BSWAP" = "y";
+  "CONFIG_USER_RETURN_NOTIFIER" = "y";
+  "CONFIG_HAVE_IOREMAP_PROT" = "y";
+  "CONFIG_HAVE_KPROBES" = "y";
+  "CONFIG_HAVE_KRETPROBES" = "y";
+  "CONFIG_HAVE_OPTPROBES" = "y";
+  "CONFIG_HAVE_KPROBES_ON_FTRACE" = "y";
+  "CONFIG_HAVE_ARCH_TRACEHOOK" = "y";
+  "CONFIG_HAVE_DMA_ATTRS" = "y";
+  "CONFIG_HAVE_DMA_CONTIGUOUS" = "y";
+  "CONFIG_GENERIC_SMP_IDLE_THREAD" = "y";
+  "CONFIG_HAVE_REGS_AND_STACK_ACCESS_API" = "y";
+  "CONFIG_HAVE_DMA_API_DEBUG" = "y";
+  "CONFIG_HAVE_HW_BREAKPOINT" = "y";
+  "CONFIG_HAVE_MIXED_BREAKPOINTS_REGS" = "y";
+  "CONFIG_HAVE_USER_RETURN_NOTIFIER" = "y";
+  "CONFIG_HAVE_PERF_EVENTS_NMI" = "y";
+  "CONFIG_HAVE_PERF_REGS" = "y";
+  "CONFIG_HAVE_PERF_USER_STACK_DUMP" = "y";
+  "CONFIG_HAVE_ARCH_JUMP_LABEL" = "y";
+  "CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG" = "y";
+  "CONFIG_HAVE_ALIGNED_STRUCT_PAGE" = "y";
+  "CONFIG_HAVE_CMPXCHG_LOCAL" = "y";
+  "CONFIG_HAVE_CMPXCHG_DOUBLE" = "y";
+  "CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION" = "y";
+  "CONFIG_ARCH_WANT_OLD_COMPAT_IPC" = "y";
+  "CONFIG_HAVE_ARCH_SECCOMP_FILTER" = "y";
+  "CONFIG_SECCOMP_FILTER" = "y";
+  "CONFIG_HAVE_CC_STACKPROTECTOR" = "y";
+  "CONFIG_CC_STACKPROTECTOR" = "y";
+  "CONFIG_CC_STACKPROTECTOR_REGULAR" = "y";
+  "CONFIG_HAVE_CONTEXT_TRACKING" = "y";
+  "CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN" = "y";
+  "CONFIG_HAVE_IRQ_TIME_ACCOUNTING" = "y";
+  "CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE" = "y";
+  "CONFIG_HAVE_ARCH_SOFT_DIRTY" = "y";
+  "CONFIG_MODULES_USE_ELF_RELA" = "y";
+  "CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK" = "y";
+  "CONFIG_OLD_SIGSUSPEND3" = "y";
+  "CONFIG_COMPAT_OLD_SIGACTION" = "y";
+  "CONFIG_ARCH_HAS_GCOV_PROFILE_ALL" = "y";
+  "CONFIG_SLABINFO" = "y";
+  "CONFIG_RT_MUTEXES" = "y";
+  "CONFIG_BASE_SMALL" = "0";
+  "CONFIG_MODULES" = "y";
+  "CONFIG_MODULE_FORCE_LOAD" = "y";
+  "CONFIG_MODULE_UNLOAD" = "y";
+  "CONFIG_MODULE_FORCE_UNLOAD" = "y";
+  "CONFIG_MODVERSIONS" = "y";
+  "CONFIG_STOP_MACHINE" = "y";
+  "CONFIG_BLOCK" = "y";
+  "CONFIG_BLK_DEV_BSG" = "y";
+  "CONFIG_BLK_DEV_INTEGRITY" = "y";
+  "CONFIG_BLK_DEV_THROTTLING" = "y";
+  "CONFIG_MSDOS_PARTITION" = "y";
+  "CONFIG_EFI_PARTITION" = "y";
+  "CONFIG_BLOCK_COMPAT" = "y";
+  "CONFIG_IOSCHED_NOOP" = "y";
+  "CONFIG_IOSCHED_DEADLINE" = "y";
+  "CONFIG_IOSCHED_CFQ" = "y";
+  "CONFIG_CFQ_GROUP_IOSCHED" = "y";
+  "CONFIG_IOSCHED_BFQ" = "y";
+  "CONFIG_CGROUP_BFQIO" = "y";
+  "CONFIG_DEFAULT_BFQ" = "y";
+  "CONFIG_DEFAULT_IOSCHED" = "bfq";
+  "CONFIG_PREEMPT_NOTIFIERS" = "y";
+  "CONFIG_PADATA" = "y";
+  "CONFIG_ASN1" = "y";
+  "CONFIG_UNINLINE_SPIN_UNLOCK" = "y";
+  "CONFIG_ARCH_SUPPORTS_ATOMIC_RMW" = "y";
+  "CONFIG_MUTEX_SPIN_ON_OWNER" = "y";
+  "CONFIG_RWSEM_SPIN_ON_OWNER" = "y";
+  "CONFIG_LOCK_SPIN_ON_OWNER" = "y";
+  "CONFIG_ARCH_USE_QUEUE_RWLOCK" = "y";
+  "CONFIG_QUEUE_RWLOCK" = "y";
+  "CONFIG_FREEZER" = "y";
+  "CONFIG_ZONE_DMA" = "y";
+  "CONFIG_SMP" = "y";
+  "CONFIG_X86_FEATURE_NAMES" = "y";
+  "CONFIG_IOSF_MBI" = "m";
+  "CONFIG_X86_SUPPORTS_MEMORY_FAILURE" = "y";
+  "CONFIG_SCHED_OMIT_FRAME_POINTER" = "y";
+  "CONFIG_NO_BOOTMEM" = "y";
+  "CONFIG_MEMTEST" = "y";
+  "CONFIG_MCORE2" = "y";
+  "CONFIG_X86_INTERNODE_CACHE_SHIFT" = "6";
+  "CONFIG_X86_L1_CACHE_SHIFT" = "6";
+  "CONFIG_X86_INTEL_USERCOPY" = "y";
+  "CONFIG_X86_USE_PPRO_CHECKSUM" = "y";
+  "CONFIG_X86_P6_NOP" = "y";
+  "CONFIG_X86_TSC" = "y";
+  "CONFIG_X86_CMPXCHG64" = "y";
+  "CONFIG_X86_CMOV" = "y";
+  "CONFIG_X86_MINIMUM_CPU_FAMILY" = "64";
+  "CONFIG_X86_DEBUGCTLMSR" = "y";
+  "CONFIG_CPU_SUP_INTEL" = "y";
+  "CONFIG_CPU_SUP_AMD" = "y";
+  "CONFIG_CPU_SUP_CENTAUR" = "y";
+  "CONFIG_HPET_TIMER" = "y";
+  "CONFIG_HPET_EMULATE_RTC" = "y";
+  "CONFIG_DMI" = "y";
+  "CONFIG_GART_IOMMU" = "y";
+  "CONFIG_SWIOTLB" = "y";
+  "CONFIG_IOMMU_HELPER" = "y";
+  "CONFIG_NR_CPUS" = "8";
+  "CONFIG_SCHED_SMT" = "y";
+  "CONFIG_SCHED_MC" = "y";
+  "CONFIG_PREEMPT" = "y";
+  "CONFIG_PREEMPT_COUNT" = "y";
+  "CONFIG_X86_UP_APIC_MSI" = "y";
+  "CONFIG_X86_LOCAL_APIC" = "y";
+  "CONFIG_X86_IO_APIC" = "y";
+  "CONFIG_X86_MCE" = "y";
+  "CONFIG_X86_MCE_INTEL" = "y";
+  "CONFIG_X86_MCE_THRESHOLD" = "y";
+  "CONFIG_X86_THERMAL_VECTOR" = "y";
+  "CONFIG_X86_16BIT" = "y";
+  "CONFIG_X86_ESPFIX64" = "y";
+  "CONFIG_X86_VSYSCALL_EMULATION" = "y";
+  "CONFIG_MICROCODE" = "y";
+  "CONFIG_MICROCODE_INTEL" = "y";
+  "CONFIG_MICROCODE_OLD_INTERFACE" = "y";
+  "CONFIG_MICROCODE_INTEL_EARLY" = "y";
+  "CONFIG_MICROCODE_EARLY" = "y";
+  "CONFIG_X86_MSR" = "m";
+  "CONFIG_X86_CPUID" = "m";
+  "CONFIG_ARCH_PHYS_ADDR_T_64BIT" = "y";
+  "CONFIG_ARCH_DMA_ADDR_T_64BIT" = "y";
+  "CONFIG_DIRECT_GBPAGES" = "y";
+  "CONFIG_NUMA" = "y";
+  "CONFIG_X86_64_ACPI_NUMA" = "y";
+  "CONFIG_NODES_SPAN_OTHER_NODES" = "y";
+  "CONFIG_NODES_SHIFT" = "6";
+  "CONFIG_ARCH_SPARSEMEM_ENABLE" = "y";
+  "CONFIG_ARCH_SPARSEMEM_DEFAULT" = "y";
+  "CONFIG_ARCH_SELECT_MEMORY_MODEL" = "y";
+  "CONFIG_ILLEGAL_POINTER_VALUE" = "0xdead000000000000";
+  "CONFIG_SELECT_MEMORY_MODEL" = "y";
+  "CONFIG_SPARSEMEM_MANUAL" = "y";
+  "CONFIG_SPARSEMEM" = "y";
+  "CONFIG_NEED_MULTIPLE_NODES" = "y";
+  "CONFIG_HAVE_MEMORY_PRESENT" = "y";
+  "CONFIG_SPARSEMEM_EXTREME" = "y";
+  "CONFIG_SPARSEMEM_VMEMMAP_ENABLE" = "y";
+  "CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER" = "y";
+  "CONFIG_SPARSEMEM_VMEMMAP" = "y";
+  "CONFIG_HAVE_MEMBLOCK" = "y";
+  "CONFIG_HAVE_MEMBLOCK_NODE_MAP" = "y";
+  "CONFIG_ARCH_DISCARD_MEMBLOCK" = "y";
+  "CONFIG_PAGEFLAGS_EXTENDED" = "y";
+  "CONFIG_SPLIT_PTLOCK_CPUS" = "4";
+  "CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK" = "y";
+  "CONFIG_COMPACTION" = "y";
+  "CONFIG_MIGRATION" = "y";
+  "CONFIG_PHYS_ADDR_T_64BIT" = "y";
+  "CONFIG_ZONE_DMA_FLAG" = "1";
+  "CONFIG_BOUNCE" = "y";
+  "CONFIG_NEED_BOUNCE_POOL" = "y";
+  "CONFIG_VIRT_TO_BUS" = "y";
+  "CONFIG_MMU_NOTIFIER" = "y";
+  "CONFIG_KSM" = "y";
+  "CONFIG_DEFAULT_MMAP_MIN_ADDR" = "65536";
+  "CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE" = "y";
+  "CONFIG_TRANSPARENT_HUGEPAGE" = "y";
+  "CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS" = "y";
+  "CONFIG_CLEANCACHE" = "y";
+  "CONFIG_FRONTSWAP" = "y";
+  "CONFIG_ZPOOL" = "m";
+  "CONFIG_ZSMALLOC" = "y";
+  "CONFIG_GENERIC_EARLY_IOREMAP" = "y";
+  "CONFIG_X86_RESERVE_LOW" = "64";
+  "CONFIG_MTRR" = "y";
+  "CONFIG_MTRR_SANITIZER" = "y";
+  "CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT" = "0";
+  "CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT" = "1";
+  "CONFIG_X86_PAT" = "y";
+  "CONFIG_ARCH_USES_PG_UNCACHED" = "y";
+  "CONFIG_ARCH_RANDOM" = "y";
+  "CONFIG_X86_SMAP" = "y";
+  "CONFIG_SECCOMP" = "y";
+  "CONFIG_HZ_1000" = "y";
+  "CONFIG_HZ" = "1000";
+  "CONFIG_SCHED_HRTICK" = "y";
+  "CONFIG_KEXEC" = "y";
+  "CONFIG_KEXEC_FILE" = "y";
+  "CONFIG_PHYSICAL_START" = "0x1000000";
+  "CONFIG_PHYSICAL_ALIGN" = "0x1000000";
+  "CONFIG_HAVE_LIVEPATCH" = "y";
+  "CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG" = "y";
+  "CONFIG_USE_PERCPU_NUMA_NODE_ID" = "y";
+  "CONFIG_PM" = "y";
+  "CONFIG_ACPI" = "y";
+  "CONFIG_ACPI_LEGACY_TABLES_LOOKUP" = "y";
+  "CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC" = "y";
+  "CONFIG_ACPI_BUTTON" = "y";
+  "CONFIG_ACPI_VIDEO" = "y";
+  "CONFIG_ACPI_FAN" = "y";
+  "CONFIG_ACPI_DOCK" = "y";
+  "CONFIG_ACPI_PROCESSOR" = "y";
+  "CONFIG_ACPI_THERMAL" = "y";
+  "CONFIG_ACPI_NUMA" = "y";
+  "CONFIG_ACPI_CUSTOM_DSDT_FILE" = "";
+  "CONFIG_X86_PM_TIMER" = "y";
+  "CONFIG_ACPI_HOTPLUG_IOAPIC" = "y";
+  "CONFIG_ACPI_HED" = "y";
+  "CONFIG_HAVE_ACPI_APEI" = "y";
+  "CONFIG_HAVE_ACPI_APEI_NMI" = "y";
+  "CONFIG_ACPI_EXTLOG" = "m";
+  "CONFIG_CPU_IDLE" = "y";
+  "CONFIG_CPU_IDLE_GOV_LADDER" = "y";
+  "CONFIG_CPU_IDLE_GOV_MENU" = "y";
+  "CONFIG_INTEL_IDLE" = "y";
+  "CONFIG_PCI" = "y";
+  "CONFIG_PCI_DIRECT" = "y";
+  "CONFIG_PCI_MMCONFIG" = "y";
+  "CONFIG_PCI_DOMAINS" = "y";
+  "CONFIG_PCIEPORTBUS" = "y";
+  "CONFIG_PCIEAER" = "y";
+  "CONFIG_PCIEASPM" = "y";
+  "CONFIG_PCIEASPM_PERFORMANCE" = "y";
+  "CONFIG_PCIE_PME" = "y";
+  "CONFIG_PCI_MSI" = "y";
+  "CONFIG_HT_IRQ" = "y";
+  "CONFIG_PCI_LABEL" = "y";
+  "CONFIG_ISA_DMA_API" = "y";
+  "CONFIG_AMD_NB" = "y";
+  "CONFIG_BINFMT_ELF" = "y";
+  "CONFIG_COMPAT_BINFMT_ELF" = "y";
+  "CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE" = "y";
+  "CONFIG_BINFMT_SCRIPT" = "y";
+  "CONFIG_BINFMT_MISC" = "y";
+  "CONFIG_COREDUMP" = "y";
+  "CONFIG_IA32_EMULATION" = "y";
+  "CONFIG_X86_X32" = "y";
+  "CONFIG_COMPAT" = "y";
+  "CONFIG_COMPAT_FOR_U64_ALIGNMENT" = "y";
+  "CONFIG_SYSVIPC_COMPAT" = "y";
+  "CONFIG_KEYS_COMPAT" = "y";
+  "CONFIG_X86_DEV_DMA_OPS" = "y";
+  "CONFIG_PMC_ATOM" = "y";
+  "CONFIG_NET" = "y";
+  "CONFIG_PACKET" = "y";
+  "CONFIG_PACKET_DIAG" = "m";
+  "CONFIG_UNIX" = "y";
+  "CONFIG_UNIX_DIAG" = "y";
+  "CONFIG_XFRM" = "y";
+  "CONFIG_XFRM_ALGO" = "y";
+  "CONFIG_NET_KEY" = "y";
+  "CONFIG_INET" = "y";
+  "CONFIG_IP_MULTICAST" = "y";
+  "CONFIG_IP_ROUTE_CLASSID" = "y";
+  "CONFIG_NET_IP_TUNNEL" = "m";
+  "CONFIG_SYN_COOKIES" = "y";
+  "CONFIG_NET_UDP_TUNNEL" = "m";
+  "CONFIG_NET_FOU" = "m";
+  "CONFIG_GENEVE" = "m";
+  "CONFIG_INET_TUNNEL" = "m";
+  "CONFIG_INET_LRO" = "y";
+  "CONFIG_INET_DIAG" = "y";
+  "CONFIG_INET_TCP_DIAG" = "y";
+  "CONFIG_INET_UDP_DIAG" = "y";
+  "CONFIG_TCP_CONG_CUBIC" = "y";
+  "CONFIG_DEFAULT_TCP_CONG" = "cubic";
+  "CONFIG_IPV6" = "y";
+  "CONFIG_IPV6_ROUTER_PREF" = "y";
+  "CONFIG_INET6_TUNNEL" = "m";
+  "CONFIG_IPV6_SIT" = "m";
+  "CONFIG_IPV6_NDISC_NODETYPE" = "y";
+  "CONFIG_IPV6_TUNNEL" = "m";
+  "CONFIG_IPV6_GRE" = "m";
+  "CONFIG_NET_PTP_CLASSIFY" = "y";
+  "CONFIG_NETFILTER" = "y";
+  "CONFIG_NETFILTER_ADVANCED" = "y";
+  "CONFIG_BRIDGE_NETFILTER" = "m";
+  "CONFIG_NETFILTER_NETLINK" = "m";
+  "CONFIG_NETFILTER_NETLINK_ACCT" = "m";
+  "CONFIG_NETFILTER_NETLINK_QUEUE" = "m";
+  "CONFIG_NETFILTER_NETLINK_LOG" = "m";
+  "CONFIG_NF_CONNTRACK" = "m";
+  "CONFIG_NF_LOG_COMMON" = "m";
+  "CONFIG_NF_CONNTRACK_MARK" = "y";
+  "CONFIG_NF_CONNTRACK_ZONES" = "y";
+  "CONFIG_NF_CONNTRACK_EVENTS" = "y";
+  "CONFIG_NF_CONNTRACK_TIMEOUT" = "y";
+  "CONFIG_NF_CONNTRACK_LABELS" = "y";
+  "CONFIG_NF_CT_PROTO_DCCP" = "m";
+  "CONFIG_NF_CT_PROTO_GRE" = "m";
+  "CONFIG_NF_CT_PROTO_SCTP" = "m";
+  "CONFIG_NF_CT_PROTO_UDPLITE" = "m";
+  "CONFIG_NF_CONNTRACK_AMANDA" = "m";
+  "CONFIG_NF_CONNTRACK_FTP" = "m";
+  "CONFIG_NF_CONNTRACK_H323" = "m";
+  "CONFIG_NF_CONNTRACK_IRC" = "m";
+  "CONFIG_NF_CONNTRACK_BROADCAST" = "m";
+  "CONFIG_NF_CONNTRACK_NETBIOS_NS" = "m";
+  "CONFIG_NF_CONNTRACK_SNMP" = "m";
+  "CONFIG_NF_CONNTRACK_PPTP" = "m";
+  "CONFIG_NF_CONNTRACK_SANE" = "m";
+  "CONFIG_NF_CONNTRACK_SIP" = "m";
+  "CONFIG_NF_CONNTRACK_TFTP" = "m";
+  "CONFIG_NF_CT_NETLINK" = "m";
+  "CONFIG_NF_CT_NETLINK_TIMEOUT" = "m";
+  "CONFIG_NF_NAT" = "m";
+  "CONFIG_NF_NAT_NEEDED" = "y";
+  "CONFIG_NF_NAT_PROTO_DCCP" = "m";
+  "CONFIG_NF_NAT_PROTO_UDPLITE" = "m";
+  "CONFIG_NF_NAT_PROTO_SCTP" = "m";
+  "CONFIG_NF_NAT_AMANDA" = "m";
+  "CONFIG_NF_NAT_FTP" = "m";
+  "CONFIG_NF_NAT_IRC" = "m";
+  "CONFIG_NF_NAT_SIP" = "m";
+  "CONFIG_NF_NAT_TFTP" = "m";
+  "CONFIG_NF_NAT_REDIRECT" = "m";
+  "CONFIG_NETFILTER_SYNPROXY" = "m";
+  "CONFIG_NF_TABLES" = "m";
+  "CONFIG_NF_TABLES_INET" = "m";
+  "CONFIG_NFT_EXTHDR" = "m";
+  "CONFIG_NFT_META" = "m";
+  "CONFIG_NFT_CT" = "m";
+  "CONFIG_NFT_RBTREE" = "m";
+  "CONFIG_NFT_HASH" = "m";
+  "CONFIG_NFT_COUNTER" = "m";
+  "CONFIG_NFT_LOG" = "m";
+  "CONFIG_NFT_LIMIT" = "m";
+  "CONFIG_NFT_MASQ" = "m";
+  "CONFIG_NFT_REDIR" = "m";
+  "CONFIG_NFT_NAT" = "m";
+  "CONFIG_NFT_QUEUE" = "m";
+  "CONFIG_NFT_REJECT" = "m";
+  "CONFIG_NFT_REJECT_INET" = "m";
+  "CONFIG_NFT_COMPAT" = "m";
+  "CONFIG_NETFILTER_XTABLES" = "m";
+  "CONFIG_NETFILTER_XT_MARK" = "m";
+  "CONFIG_NETFILTER_XT_CONNMARK" = "m";
+  "CONFIG_NETFILTER_XT_SET" = "m";
+  "CONFIG_NETFILTER_XT_TARGET_CHECKSUM" = "m";
+  "CONFIG_NETFILTER_XT_TARGET_CLASSIFY" = "m";
+  "CONFIG_NETFILTER_XT_TARGET_CONNMARK" = "m";
+  "CONFIG_NETFILTER_XT_TARGET_CT" = "m";
+  "CONFIG_NETFILTER_XT_TARGET_DSCP" = "m";
+  "CONFIG_NETFILTER_XT_TARGET_HL" = "m";
+  "CONFIG_NETFILTER_XT_TARGET_HMARK" = "m";
+  "CONFIG_NETFILTER_XT_TARGET_IDLETIMER" = "m";
+  "CONFIG_NETFILTER_XT_TARGET_LOG" = "m";
+  "CONFIG_NETFILTER_XT_TARGET_MARK" = "m";
+  "CONFIG_NETFILTER_XT_NAT" = "m";
+  "CONFIG_NETFILTER_XT_TARGET_NETMAP" = "m";
+  "CONFIG_NETFILTER_XT_TARGET_NFLOG" = "m";
+  "CONFIG_NETFILTER_XT_TARGET_NFQUEUE" = "m";
+  "CONFIG_NETFILTER_XT_TARGET_NOTRACK" = "m";
+  "CONFIG_NETFILTER_XT_TARGET_RATEEST" = "m";
+  "CONFIG_NETFILTER_XT_TARGET_REDIRECT" = "m";
+  "CONFIG_NETFILTER_XT_TARGET_TEE" = "m";
+  "CONFIG_NETFILTER_XT_TARGET_TPROXY" = "m";
+  "CONFIG_NETFILTER_XT_TARGET_TRACE" = "m";
+  "CONFIG_NETFILTER_XT_TARGET_TCPMSS" = "m";
+  "CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_ADDRTYPE" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_BPF" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_CGROUP" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_CLUSTER" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_COMMENT" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_CONNBYTES" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_CONNLABEL" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_CONNLIMIT" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_CONNMARK" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_CONNTRACK" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_CPU" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_DCCP" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_DEVGROUP" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_DSCP" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_ECN" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_ESP" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_HASHLIMIT" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_HELPER" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_HL" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_IPCOMP" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_IPRANGE" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_L2TP" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_LENGTH" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_LIMIT" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_MAC" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_MARK" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_MULTIPORT" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_NFACCT" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_OSF" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_OWNER" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_POLICY" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_PKTTYPE" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_QUOTA" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_RATEEST" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_REALM" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_RECENT" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_SCTP" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_SOCKET" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_STATE" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_STATISTIC" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_STRING" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_TCPMSS" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_TIME" = "m";
+  "CONFIG_NETFILTER_XT_MATCH_U32" = "m";
+  "CONFIG_IP_SET" = "m";
+  "CONFIG_IP_SET_MAX" = "256";
+  "CONFIG_IP_SET_BITMAP_IP" = "m";
+  "CONFIG_IP_SET_BITMAP_IPMAC" = "m";
+  "CONFIG_IP_SET_BITMAP_PORT" = "m";
+  "CONFIG_IP_SET_HASH_IP" = "m";
+  "CONFIG_IP_SET_HASH_IPMARK" = "m";
+  "CONFIG_IP_SET_HASH_IPPORT" = "m";
+  "CONFIG_IP_SET_HASH_IPPORTIP" = "m";
+  "CONFIG_IP_SET_HASH_IPPORTNET" = "m";
+  "CONFIG_IP_SET_HASH_MAC" = "m";
+  "CONFIG_IP_SET_HASH_NETPORTNET" = "m";
+  "CONFIG_IP_SET_HASH_NET" = "m";
+  "CONFIG_IP_SET_HASH_NETNET" = "m";
+  "CONFIG_IP_SET_HASH_NETPORT" = "m";
+  "CONFIG_IP_SET_HASH_NETIFACE" = "m";
+  "CONFIG_IP_SET_LIST_SET" = "m";
+  "CONFIG_NF_DEFRAG_IPV4" = "m";
+  "CONFIG_NF_CONNTRACK_IPV4" = "m";
+  "CONFIG_NF_LOG_ARP" = "m";
+  "CONFIG_NF_LOG_IPV4" = "m";
+  "CONFIG_NF_TABLES_IPV4" = "m";
+  "CONFIG_NFT_CHAIN_ROUTE_IPV4" = "m";
+  "CONFIG_NF_REJECT_IPV4" = "y";
+  "CONFIG_NFT_REJECT_IPV4" = "m";
+  "CONFIG_NF_TABLES_ARP" = "m";
+  "CONFIG_NF_NAT_IPV4" = "m";
+  "CONFIG_NFT_CHAIN_NAT_IPV4" = "m";
+  "CONFIG_NF_NAT_MASQUERADE_IPV4" = "m";
+  "CONFIG_NFT_MASQ_IPV4" = "m";
+  "CONFIG_NFT_REDIR_IPV4" = "m";
+  "CONFIG_NF_NAT_SNMP_BASIC" = "m";
+  "CONFIG_NF_NAT_PROTO_GRE" = "m";
+  "CONFIG_NF_NAT_PPTP" = "m";
+  "CONFIG_NF_NAT_H323" = "m";
+  "CONFIG_IP_NF_IPTABLES" = "m";
+  "CONFIG_IP_NF_MATCH_AH" = "m";
+  "CONFIG_IP_NF_MATCH_ECN" = "m";
+  "CONFIG_IP_NF_MATCH_RPFILTER" = "m";
+  "CONFIG_IP_NF_MATCH_TTL" = "m";
+  "CONFIG_IP_NF_FILTER" = "m";
+  "CONFIG_IP_NF_TARGET_REJECT" = "m";
+  "CONFIG_IP_NF_TARGET_SYNPROXY" = "m";
+  "CONFIG_IP_NF_NAT" = "m";
+  "CONFIG_IP_NF_TARGET_MASQUERADE" = "m";
+  "CONFIG_IP_NF_TARGET_NETMAP" = "m";
+  "CONFIG_IP_NF_TARGET_REDIRECT" = "m";
+  "CONFIG_IP_NF_MANGLE" = "m";
+  "CONFIG_IP_NF_TARGET_CLUSTERIP" = "m";
+  "CONFIG_IP_NF_TARGET_ECN" = "m";
+  "CONFIG_IP_NF_TARGET_TTL" = "m";
+  "CONFIG_IP_NF_RAW" = "m";
+  "CONFIG_IP_NF_ARPTABLES" = "m";
+  "CONFIG_IP_NF_ARPFILTER" = "m";
+  "CONFIG_IP_NF_ARP_MANGLE" = "m";
+  "CONFIG_NF_DEFRAG_IPV6" = "m";
+  "CONFIG_NF_CONNTRACK_IPV6" = "m";
+  "CONFIG_NF_TABLES_IPV6" = "m";
+  "CONFIG_NFT_CHAIN_ROUTE_IPV6" = "m";
+  "CONFIG_NF_REJECT_IPV6" = "y";
+  "CONFIG_NFT_REJECT_IPV6" = "m";
+  "CONFIG_NF_LOG_IPV6" = "m";
+  "CONFIG_NF_NAT_IPV6" = "m";
+  "CONFIG_NFT_CHAIN_NAT_IPV6" = "m";
+  "CONFIG_NF_NAT_MASQUERADE_IPV6" = "m";
+  "CONFIG_NFT_MASQ_IPV6" = "m";
+  "CONFIG_NFT_REDIR_IPV6" = "m";
+  "CONFIG_IP6_NF_IPTABLES" = "m";
+  "CONFIG_IP6_NF_MATCH_AH" = "m";
+  "CONFIG_IP6_NF_MATCH_EUI64" = "m";
+  "CONFIG_IP6_NF_MATCH_FRAG" = "m";
+  "CONFIG_IP6_NF_MATCH_OPTS" = "m";
+  "CONFIG_IP6_NF_MATCH_HL" = "m";
+  "CONFIG_IP6_NF_MATCH_IPV6HEADER" = "m";
+  "CONFIG_IP6_NF_MATCH_MH" = "m";
+  "CONFIG_IP6_NF_MATCH_RPFILTER" = "m";
+  "CONFIG_IP6_NF_MATCH_RT" = "m";
+  "CONFIG_IP6_NF_TARGET_HL" = "m";
+  "CONFIG_IP6_NF_FILTER" = "m";
+  "CONFIG_IP6_NF_TARGET_REJECT" = "m";
+  "CONFIG_IP6_NF_TARGET_SYNPROXY" = "m";
+  "CONFIG_IP6_NF_MANGLE" = "m";
+  "CONFIG_IP6_NF_RAW" = "m";
+  "CONFIG_IP6_NF_NAT" = "m";
+  "CONFIG_IP6_NF_TARGET_MASQUERADE" = "m";
+  "CONFIG_IP6_NF_TARGET_NPT" = "m";
+  "CONFIG_NF_TABLES_BRIDGE" = "m";
+  "CONFIG_NFT_BRIDGE_META" = "m";
+  "CONFIG_NFT_BRIDGE_REJECT" = "m";
+  "CONFIG_NF_LOG_BRIDGE" = "m";
+  "CONFIG_L2TP" = "m";
+  "CONFIG_STP" = "m";
+  "CONFIG_BRIDGE" = "m";
+  "CONFIG_BRIDGE_IGMP_SNOOPING" = "y";
+  "CONFIG_HAVE_NET_DSA" = "y";
+  "CONFIG_LLC" = "m";
+  "CONFIG_NET_SCHED" = "y";
+  "CONFIG_NET_SCH_CBQ" = "m";
+  "CONFIG_NET_SCH_HTB" = "m";
+  "CONFIG_NET_SCH_HFSC" = "m";
+  "CONFIG_NET_SCH_PRIO" = "m";
+  "CONFIG_NET_SCH_MULTIQ" = "m";
+  "CONFIG_NET_SCH_RED" = "m";
+  "CONFIG_NET_SCH_SFB" = "m";
+  "CONFIG_NET_SCH_SFQ" = "m";
+  "CONFIG_NET_SCH_TEQL" = "m";
+  "CONFIG_NET_SCH_TBF" = "m";
+  "CONFIG_NET_SCH_GRED" = "m";
+  "CONFIG_NET_SCH_DSMARK" = "m";
+  "CONFIG_NET_SCH_NETEM" = "m";
+  "CONFIG_NET_SCH_DRR" = "m";
+  "CONFIG_NET_SCH_MQPRIO" = "m";
+  "CONFIG_NET_SCH_CHOKE" = "m";
+  "CONFIG_NET_SCH_QFQ" = "m";
+  "CONFIG_NET_SCH_CODEL" = "m";
+  "CONFIG_NET_SCH_FQ_CODEL" = "m";
+  "CONFIG_NET_SCH_FQ" = "m";
+  "CONFIG_NET_SCH_HHF" = "m";
+  "CONFIG_NET_SCH_PIE" = "m";
+  "CONFIG_NET_SCH_INGRESS" = "m";
+  "CONFIG_NET_SCH_PLUG" = "m";
+  "CONFIG_NET_CLS" = "y";
+  "CONFIG_NET_CLS_BASIC" = "m";
+  "CONFIG_NET_CLS_TCINDEX" = "m";
+  "CONFIG_NET_CLS_ROUTE4" = "m";
+  "CONFIG_NET_CLS_FW" = "m";
+  "CONFIG_NET_CLS_U32" = "m";
+  "CONFIG_CLS_U32_MARK" = "y";
+  "CONFIG_NET_CLS_RSVP" = "m";
+  "CONFIG_NET_CLS_RSVP6" = "m";
+  "CONFIG_NET_CLS_FLOW" = "m";
+  "CONFIG_NET_CLS_CGROUP" = "y";
+  "CONFIG_NET_CLS_BPF" = "m";
+  "CONFIG_NET_EMATCH" = "y";
+  "CONFIG_NET_EMATCH_STACK" = "32";
+  "CONFIG_NET_EMATCH_CMP" = "m";
+  "CONFIG_NET_EMATCH_NBYTE" = "m";
+  "CONFIG_NET_EMATCH_U32" = "m";
+  "CONFIG_NET_EMATCH_META" = "m";
+  "CONFIG_NET_EMATCH_TEXT" = "m";
+  "CONFIG_NET_EMATCH_IPSET" = "m";
+  "CONFIG_NET_CLS_ACT" = "y";
+  "CONFIG_NET_ACT_POLICE" = "m";
+  "CONFIG_NET_ACT_GACT" = "m";
+  "CONFIG_GACT_PROB" = "y";
+  "CONFIG_NET_ACT_MIRRED" = "m";
+  "CONFIG_NET_ACT_IPT" = "m";
+  "CONFIG_NET_ACT_NAT" = "m";
+  "CONFIG_NET_ACT_PEDIT" = "m";
+  "CONFIG_NET_ACT_SIMP" = "m";
+  "CONFIG_NET_ACT_SKBEDIT" = "m";
+  "CONFIG_NET_ACT_CSUM" = "m";
+  "CONFIG_NET_ACT_VLAN" = "m";
+  "CONFIG_NET_ACT_BPF" = "m";
+  "CONFIG_NET_ACT_CONNMARK" = "m";
+  "CONFIG_NET_CLS_IND" = "y";
+  "CONFIG_NET_SCH_FIFO" = "y";
+  "CONFIG_DNS_RESOLVER" = "y";
+  "CONFIG_BATMAN_ADV" = "m";
+  "CONFIG_BATMAN_ADV_BLA" = "y";
+  "CONFIG_OPENVSWITCH" = "m";
+  "CONFIG_OPENVSWITCH_VXLAN" = "m";
+  "CONFIG_VSOCKETS" = "m";
+  "CONFIG_NETLINK_MMAP" = "y";
+  "CONFIG_NETLINK_DIAG" = "m";
+  "CONFIG_NET_MPLS_GSO" = "m";
+  "CONFIG_HSR" = "m";
+  "CONFIG_RPS" = "y";
+  "CONFIG_RFS_ACCEL" = "y";
+  "CONFIG_XPS" = "y";
+  "CONFIG_CGROUP_NET_CLASSID" = "y";
+  "CONFIG_NET_RX_BUSY_POLL" = "y";
+  "CONFIG_BQL" = "y";
+  "CONFIG_BPF_JIT" = "y";
+  "CONFIG_NET_FLOW_LIMIT" = "y";
+  "CONFIG_NET_PKTGEN" = "m";
+  "CONFIG_CEPH_LIB" = "m";
+  "CONFIG_HAVE_BPF_JIT" = "y";
+  "CONFIG_DEVTMPFS" = "y";
+  "CONFIG_DEVTMPFS_MOUNT" = "y";
+  "CONFIG_FW_LOADER" = "y";
+  "CONFIG_FIRMWARE_IN_KERNEL" = "y";
+  "CONFIG_EXTRA_FIRMWARE" = "@extra_firmware@";
+  "CONFIG_EXTRA_FIRMWARE_DIR" = "@builtin_firmware@";
+  "CONFIG_ALLOW_DEV_COREDUMP" = "y";
+  "CONFIG_GENERIC_CPU_AUTOPROBE" = "y";
+  "CONFIG_DMA_SHARED_BUFFER" = "y";
+  "CONFIG_CONNECTOR" = "y";
+  "CONFIG_PROC_EVENTS" = "y";
+  "CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT" = "y";
+  "CONFIG_PNP" = "y";
+  "CONFIG_PNPACPI" = "y";
+  "CONFIG_BLK_DEV" = "y";
+  "CONFIG_BLK_DEV_NULL_BLK" = "m";
+  "CONFIG_ZRAM" = "y";
+  "CONFIG_ZRAM_LZ4_COMPRESS" = "y";
+  "CONFIG_BLK_DEV_LOOP" = "y";
+  "CONFIG_BLK_DEV_LOOP_MIN_COUNT" = "0";
+  "CONFIG_BLK_DEV_CRYPTOLOOP" = "m";
+  "CONFIG_CDROM_PKTCDVD" = "y";
+  "CONFIG_CDROM_PKTCDVD_BUFFERS" = "8";
+  "CONFIG_HAVE_IDE" = "y";
+  "CONFIG_SCSI_MOD" = "y";
+  "CONFIG_SCSI" = "y";
+  "CONFIG_SCSI_DMA" = "y";
+  "CONFIG_SCSI_MQ_DEFAULT" = "y";
+  "CONFIG_BLK_DEV_SD" = "y";
+  "CONFIG_BLK_DEV_SR" = "y";
+  "CONFIG_CHR_DEV_SG" = "y";
+  "CONFIG_ATA" = "y";
+  "CONFIG_ATA_ACPI" = "y";
+  "CONFIG_SATA_AHCI" = "y";
+  "CONFIG_MD" = "y";
+  "CONFIG_BLK_DEV_MD" = "y";
+  "CONFIG_MD_AUTODETECT" = "y";
+  "CONFIG_MD_RAID1" = "y";
+  "CONFIG_BLK_DEV_DM_BUILTIN" = "y";
+  "CONFIG_BLK_DEV_DM" = "y";
+  "CONFIG_DM_BUFIO" = "m";
+  "CONFIG_DM_CRYPT" = "y";
+  "CONFIG_DM_UEVENT" = "y";
+  "CONFIG_DM_FLAKEY" = "m";
+  "CONFIG_DM_VERITY" = "m";
+  "CONFIG_NETDEVICES" = "y";
+  "CONFIG_NET_CORE" = "y";
+  "CONFIG_DUMMY" = "m";
+  "CONFIG_NET_TEAM" = "m";
+  "CONFIG_NET_TEAM_MODE_BROADCAST" = "m";
+  "CONFIG_NET_TEAM_MODE_ROUNDROBIN" = "m";
+  "CONFIG_NET_TEAM_MODE_RANDOM" = "m";
+  "CONFIG_NET_TEAM_MODE_ACTIVEBACKUP" = "m";
+  "CONFIG_NET_TEAM_MODE_LOADBALANCE" = "m";
+  "CONFIG_VXLAN" = "m";
+  "CONFIG_NETCONSOLE" = "m";
+  "CONFIG_NETPOLL" = "y";
+  "CONFIG_NET_POLL_CONTROLLER" = "y";
+  "CONFIG_TUN" = "m";
+  "CONFIG_NLMON" = "m";
+  "CONFIG_VHOST_NET" = "m";
+  "CONFIG_VHOST_RING" = "m";
+  "CONFIG_VHOST" = "m";
+  "CONFIG_ETHERNET" = "y";
+  "CONFIG_NET_VENDOR_INTEL" = "y";
+  "CONFIG_E1000E" = "y";
+  "CONFIG_PPP" = "m";
+  "CONFIG_PPP_BSDCOMP" = "m";
+  "CONFIG_PPP_DEFLATE" = "m";
+  "CONFIG_PPP_FILTER" = "y";
+  "CONFIG_PPP_MPPE" = "m";
+  "CONFIG_PPPOE" = "m";
+  "CONFIG_PPP_ASYNC" = "m";
+  "CONFIG_PPP_SYNC_TTY" = "m";
+  "CONFIG_SLHC" = "m";
+  "CONFIG_USB_NET_DRIVERS" = "m";
+  "CONFIG_INPUT" = "y";
+  "CONFIG_INPUT_FF_MEMLESS" = "y";
+  "CONFIG_INPUT_MOUSEDEV" = "y";
+  "CONFIG_INPUT_MOUSEDEV_SCREEN_X" = "1600";
+  "CONFIG_INPUT_MOUSEDEV_SCREEN_Y" = "1200";
+  "CONFIG_INPUT_JOYDEV" = "y";
+  "CONFIG_INPUT_EVDEV" = "y";
+  "CONFIG_INPUT_KEYBOARD" = "y";
+  "CONFIG_KEYBOARD_ATKBD" = "y";
+  "CONFIG_INPUT_MOUSE" = "y";
+  "CONFIG_INPUT_MISC" = "y";
+  "CONFIG_INPUT_UINPUT" = "m";
+  "CONFIG_SERIO" = "y";
+  "CONFIG_ARCH_MIGHT_HAVE_PC_SERIO" = "y";
+  "CONFIG_SERIO_I8042" = "y";
+  "CONFIG_SERIO_LIBPS2" = "y";
+  "CONFIG_TTY" = "y";
+  "CONFIG_VT" = "y";
+  "CONFIG_CONSOLE_TRANSLATIONS" = "y";
+  "CONFIG_VT_CONSOLE" = "y";
+  "CONFIG_HW_CONSOLE" = "y";
+  "CONFIG_VT_HW_CONSOLE_BINDING" = "y";
+  "CONFIG_UNIX98_PTYS" = "y";
+  "CONFIG_DEVPTS_MULTIPLE_INSTANCES" = "y";
+  "CONFIG_DEVMEM" = "y";
+  "CONFIG_DEVKMEM" = "y";
+  "CONFIG_NVRAM" = "m";
+  "CONFIG_HPET" = "y";
+  "CONFIG_HPET_MMAP" = "y";
+  "CONFIG_HPET_MMAP_DEFAULT" = "y";
+  "CONFIG_HANGCHECK_TIMER" = "m";
+  "CONFIG_DEVPORT" = "y";
+  "CONFIG_I2C" = "y";
+  "CONFIG_I2C_BOARDINFO" = "y";
+  "CONFIG_I2C_CHARDEV" = "y";
+  "CONFIG_I2C_MUX" = "y";
+  "CONFIG_I2C_HELPER_AUTO" = "y";
+  "CONFIG_I2C_ALGOBIT" = "y";
+  "CONFIG_I2C_I801" = "y";
+  "CONFIG_PPS" = "y";
+  "CONFIG_PTP_1588_CLOCK" = "y";
+  "CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB" = "y";
+  "CONFIG_POWER_SUPPLY" = "y";
+  "CONFIG_HWMON" = "y";
+  "CONFIG_HWMON_VID" = "y";
+  "CONFIG_SENSORS_ASC7621" = "y";
+  "CONFIG_SENSORS_CORETEMP" = "y";
+  "CONFIG_SENSORS_W83627EHF" = "y";
+  "CONFIG_THERMAL" = "y";
+  "CONFIG_THERMAL_HWMON" = "y";
+  "CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE" = "y";
+  "CONFIG_THERMAL_GOV_STEP_WISE" = "y";
+  "CONFIG_THERMAL_GOV_USER_SPACE" = "y";
+  "CONFIG_INTEL_POWERCLAMP" = "m";
+  "CONFIG_X86_PKG_TEMP_THERMAL" = "m";
+  "CONFIG_SSB_POSSIBLE" = "y";
+  "CONFIG_BCMA_POSSIBLE" = "y";
+  "CONFIG_MEDIA_SUPPORT" = "y";
+  "CONFIG_MEDIA_CAMERA_SUPPORT" = "y";
+  "CONFIG_VIDEO_DEV" = "y";
+  "CONFIG_VIDEO_V4L2" = "y";
+  "CONFIG_VIDEOBUF2_CORE" = "y";
+  "CONFIG_VIDEOBUF2_MEMOPS" = "y";
+  "CONFIG_VIDEOBUF2_VMALLOC" = "y";
+  "CONFIG_MEDIA_USB_SUPPORT" = "y";
+  "CONFIG_USB_VIDEO_CLASS" = "y";
+  "CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV" = "y";
+  "CONFIG_USB_GSPCA" = "m";
+  "CONFIG_USB_M5602" = "m";
+  "CONFIG_USB_STV06XX" = "m";
+  "CONFIG_USB_GL860" = "m";
+  "CONFIG_USB_GSPCA_BENQ" = "m";
+  "CONFIG_USB_GSPCA_CONEX" = "m";
+  "CONFIG_USB_GSPCA_CPIA1" = "m";
+  "CONFIG_USB_GSPCA_DTCS033" = "m";
+  "CONFIG_USB_GSPCA_ETOMS" = "m";
+  "CONFIG_USB_GSPCA_FINEPIX" = "m";
+  "CONFIG_USB_GSPCA_JEILINJ" = "m";
+  "CONFIG_USB_GSPCA_JL2005BCD" = "m";
+  "CONFIG_USB_GSPCA_KINECT" = "m";
+  "CONFIG_USB_GSPCA_KONICA" = "m";
+  "CONFIG_USB_GSPCA_MARS" = "m";
+  "CONFIG_USB_GSPCA_MR97310A" = "m";
+  "CONFIG_USB_GSPCA_NW80X" = "m";
+  "CONFIG_USB_GSPCA_OV519" = "m";
+  "CONFIG_USB_GSPCA_OV534" = "m";
+  "CONFIG_USB_GSPCA_OV534_9" = "m";
+  "CONFIG_USB_GSPCA_PAC207" = "m";
+  "CONFIG_USB_GSPCA_PAC7302" = "m";
+  "CONFIG_USB_GSPCA_PAC7311" = "m";
+  "CONFIG_USB_GSPCA_SE401" = "m";
+  "CONFIG_USB_GSPCA_SN9C2028" = "m";
+  "CONFIG_USB_GSPCA_SN9C20X" = "m";
+  "CONFIG_USB_GSPCA_SONIXB" = "m";
+  "CONFIG_USB_GSPCA_SONIXJ" = "m";
+  "CONFIG_USB_GSPCA_SPCA500" = "m";
+  "CONFIG_USB_GSPCA_SPCA501" = "m";
+  "CONFIG_USB_GSPCA_SPCA505" = "m";
+  "CONFIG_USB_GSPCA_SPCA506" = "m";
+  "CONFIG_USB_GSPCA_SPCA508" = "m";
+  "CONFIG_USB_GSPCA_SPCA561" = "m";
+  "CONFIG_USB_GSPCA_SPCA1528" = "m";
+  "CONFIG_USB_GSPCA_SQ905" = "m";
+  "CONFIG_USB_GSPCA_SQ905C" = "m";
+  "CONFIG_USB_GSPCA_SQ930X" = "m";
+  "CONFIG_USB_GSPCA_STK014" = "m";
+  "CONFIG_USB_GSPCA_STK1135" = "m";
+  "CONFIG_USB_GSPCA_STV0680" = "m";
+  "CONFIG_USB_GSPCA_SUNPLUS" = "m";
+  "CONFIG_USB_GSPCA_T613" = "m";
+  "CONFIG_USB_GSPCA_TOPRO" = "m";
+  "CONFIG_USB_GSPCA_TOUPTEK" = "m";
+  "CONFIG_USB_GSPCA_TV8532" = "m";
+  "CONFIG_USB_GSPCA_VC032X" = "m";
+  "CONFIG_USB_GSPCA_VICAM" = "m";
+  "CONFIG_USB_GSPCA_XIRLINK_CIT" = "m";
+  "CONFIG_USB_GSPCA_ZC3XX" = "m";
+  "CONFIG_AGP" = "y";
+  "CONFIG_AGP_INTEL" = "y";
+  "CONFIG_INTEL_GTT" = "y";
+  "CONFIG_VGA_ARB" = "y";
+  "CONFIG_VGA_ARB_MAX_GPUS" = "2";
+  "CONFIG_DRM" = "y";
+  "CONFIG_DRM_KMS_HELPER" = "y";
+  "CONFIG_DRM_KMS_FB_HELPER" = "y";
+  "CONFIG_DRM_TTM" = "y";
+  "CONFIG_DRM_RADEON" = "y";
+  "CONFIG_DRM_BOCHS" = "m";
+  "CONFIG_FB" = "y";
+  "CONFIG_FB_CMDLINE" = "y";
+  "CONFIG_FB_CFB_FILLRECT" = "y";
+  "CONFIG_FB_CFB_COPYAREA" = "y";
+  "CONFIG_FB_CFB_IMAGEBLIT" = "y";
+  "CONFIG_FB_SYS_FILLRECT" = "m";
+  "CONFIG_FB_SYS_COPYAREA" = "m";
+  "CONFIG_FB_SYS_IMAGEBLIT" = "m";
+  "CONFIG_FB_MODE_HELPERS" = "y";
+  "CONFIG_FB_TILEBLITTING" = "y";
+  "CONFIG_BACKLIGHT_LCD_SUPPORT" = "y";
+  "CONFIG_BACKLIGHT_CLASS_DEVICE" = "y";
+  "CONFIG_HDMI" = "y";
+  "CONFIG_VGA_CONSOLE" = "y";
+  "CONFIG_VGACON_SOFT_SCROLLBACK" = "y";
+  "CONFIG_VGACON_SOFT_SCROLLBACK_SIZE" = "1024";
+  "CONFIG_DUMMY_CONSOLE" = "y";
+  "CONFIG_DUMMY_CONSOLE_COLUMNS" = "80";
+  "CONFIG_DUMMY_CONSOLE_ROWS" = "25";
+  "CONFIG_FRAMEBUFFER_CONSOLE" = "y";
+  "CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY" = "y";
+  "CONFIG_SOUND" = "y";
+  "CONFIG_SOUND_OSS_CORE" = "y";
+  "CONFIG_SOUND_OSS_CORE_PRECLAIM" = "y";
+  "CONFIG_SND" = "y";
+  "CONFIG_SND_TIMER" = "y";
+  "CONFIG_SND_PCM" = "y";
+  "CONFIG_SND_HWDEP" = "y";
+  "CONFIG_SND_RAWMIDI" = "m";
+  "CONFIG_SND_JACK" = "y";
+  "CONFIG_SND_SEQUENCER" = "y";
+  "CONFIG_SND_SEQ_DUMMY" = "m";
+  "CONFIG_SND_OSSEMUL" = "y";
+  "CONFIG_SND_MIXER_OSS" = "y";
+  "CONFIG_SND_PCM_OSS" = "y";
+  "CONFIG_SND_PCM_OSS_PLUGINS" = "y";
+  "CONFIG_SND_SEQUENCER_OSS" = "y";
+  "CONFIG_SND_HRTIMER" = "y";
+  "CONFIG_SND_SEQ_HRTIMER_DEFAULT" = "y";
+  "CONFIG_SND_DYNAMIC_MINORS" = "y";
+  "CONFIG_SND_MAX_CARDS" = "32";
+  "CONFIG_SND_VMASTER" = "y";
+  "CONFIG_SND_KCTL_JACK" = "y";
+  "CONFIG_SND_DMA_SGBUF" = "y";
+  "CONFIG_SND_RAWMIDI_SEQ" = "m";
+  "CONFIG_SND_PCI" = "y";
+  "CONFIG_SND_CTXFI" = "y";
+  "CONFIG_SND_HDA" = "y";
+  "CONFIG_SND_HDA_INTEL" = "y";
+  "CONFIG_SND_HDA_PREALLOC_SIZE" = "4096";
+  "CONFIG_SND_HDA_HWDEP" = "y";
+  "CONFIG_SND_HDA_RECONFIG" = "y";
+  "CONFIG_SND_HDA_INPUT_BEEP" = "y";
+  "CONFIG_SND_HDA_INPUT_BEEP_MODE" = "0";
+  "CONFIG_SND_HDA_INPUT_JACK" = "y";
+  "CONFIG_SND_HDA_PATCH_LOADER" = "y";
+  "CONFIG_SND_HDA_CODEC_REALTEK" = "y";
+  "CONFIG_SND_HDA_GENERIC" = "y";
+  "CONFIG_SND_HDA_POWER_SAVE_DEFAULT" = "0";
+  "CONFIG_SND_USB" = "y";
+  "CONFIG_SND_USB_AUDIO" = "m";
+  "CONFIG_HID" = "y";
+  "CONFIG_HID_BATTERY_STRENGTH" = "y";
+  "CONFIG_UHID" = "m";
+  "CONFIG_HID_GENERIC" = "y";
+  "CONFIG_HID_A4TECH" = "y";
+  "CONFIG_HID_APPLE" = "y";
+  "CONFIG_HID_BELKIN" = "y";
+  "CONFIG_HID_CHERRY" = "y";
+  "CONFIG_HID_CHICONY" = "y";
+  "CONFIG_HID_CYPRESS" = "y";
+  "CONFIG_HID_EZKEY" = "y";
+  "CONFIG_HID_KENSINGTON" = "y";
+  "CONFIG_HID_LOGITECH" = "y";
+  "CONFIG_HID_MICROSOFT" = "y";
+  "CONFIG_HID_MONTEREY" = "y";
+  "CONFIG_HID_PANTHERLORD" = "y";
+  "CONFIG_PANTHERLORD_FF" = "y";
+  "CONFIG_HID_SONY" = "m";
+  "CONFIG_SONY_FF" = "y";
+  "CONFIG_HID_GREENASIA" = "y";
+  "CONFIG_GREENASIA_FF" = "y";
+  "CONFIG_HID_WACOM" = "m";
+  "CONFIG_USB_HID" = "y";
+  "CONFIG_USB_HIDDEV" = "y";
+  "CONFIG_I2C_HID" = "m";
+  "CONFIG_USB_OHCI_LITTLE_ENDIAN" = "y";
+  "CONFIG_USB_SUPPORT" = "y";
+  "CONFIG_USB_COMMON" = "y";
+  "CONFIG_USB_ARCH_HAS_HCD" = "y";
+  "CONFIG_USB" = "y";
+  "CONFIG_USB_ANNOUNCE_NEW_DEVICES" = "y";
+  "CONFIG_USB_DEFAULT_PERSIST" = "y";
+  "CONFIG_USB_MON" = "m";
+  "CONFIG_USB_EHCI_HCD" = "y";
+  "CONFIG_USB_EHCI_ROOT_HUB_TT" = "y";
+  "CONFIG_USB_EHCI_PCI" = "y";
+  "CONFIG_USB_STORAGE" = "y";
+  "CONFIG_USB_STORAGE_REALTEK" = "m";
+  "CONFIG_REALTEK_AUTOPM" = "y";
+  "CONFIG_USB_STORAGE_DATAFAB" = "m";
+  "CONFIG_USB_STORAGE_FREECOM" = "m";
+  "CONFIG_USB_STORAGE_ISD200" = "m";
+  "CONFIG_USB_STORAGE_USBAT" = "m";
+  "CONFIG_USB_STORAGE_SDDR09" = "m";
+  "CONFIG_USB_STORAGE_SDDR55" = "m";
+  "CONFIG_USB_STORAGE_JUMPSHOT" = "m";
+  "CONFIG_USB_STORAGE_ALAUDA" = "m";
+  "CONFIG_USB_STORAGE_ONETOUCH" = "m";
+  "CONFIG_USB_STORAGE_KARMA" = "m";
+  "CONFIG_USB_STORAGE_CYPRESS_ATACB" = "m";
+  "CONFIG_USB_STORAGE_ENE_UB6250" = "m";
+  "CONFIG_USB_UAS" = "m";
+  "CONFIG_USBIP_CORE" = "m";
+  "CONFIG_USBIP_VHCI_HCD" = "m";
+  "CONFIG_USBIP_HOST" = "m";
+  "CONFIG_USB_SERIAL" = "y";
+  "CONFIG_USB_SERIAL_SIMPLE" = "m";
+  "CONFIG_USB_SERIAL_AIRCABLE" = "m";
+  "CONFIG_USB_SERIAL_ARK3116" = "m";
+  "CONFIG_USB_SERIAL_BELKIN" = "m";
+  "CONFIG_USB_SERIAL_CH341" = "m";
+  "CONFIG_USB_SERIAL_WHITEHEAT" = "m";
+  "CONFIG_USB_SERIAL_DIGI_ACCELEPORT" = "m";
+  "CONFIG_USB_SERIAL_CP210X" = "m";
+  "CONFIG_USB_SERIAL_CYPRESS_M8" = "m";
+  "CONFIG_USB_SERIAL_EMPEG" = "m";
+  "CONFIG_USB_SERIAL_FTDI_SIO" = "m";
+  "CONFIG_USB_SERIAL_VISOR" = "m";
+  "CONFIG_USB_SERIAL_IPAQ" = "m";
+  "CONFIG_USB_SERIAL_IR" = "m";
+  "CONFIG_USB_SERIAL_EDGEPORT" = "m";
+  "CONFIG_USB_SERIAL_EDGEPORT_TI" = "m";
+  "CONFIG_USB_SERIAL_F81232" = "m";
+  "CONFIG_USB_SERIAL_GARMIN" = "m";
+  "CONFIG_USB_SERIAL_IPW" = "m";
+  "CONFIG_USB_SERIAL_IUU" = "m";
+  "CONFIG_USB_SERIAL_KEYSPAN_PDA" = "m";
+  "CONFIG_USB_SERIAL_KEYSPAN" = "m";
+  "CONFIG_USB_SERIAL_KEYSPAN_MPR" = "y";
+  "CONFIG_USB_SERIAL_KEYSPAN_USA28" = "y";
+  "CONFIG_USB_SERIAL_KEYSPAN_USA28X" = "y";
+  "CONFIG_USB_SERIAL_KEYSPAN_USA28XA" = "y";
+  "CONFIG_USB_SERIAL_KEYSPAN_USA28XB" = "y";
+  "CONFIG_USB_SERIAL_KEYSPAN_USA19" = "y";
+  "CONFIG_USB_SERIAL_KEYSPAN_USA18X" = "y";
+  "CONFIG_USB_SERIAL_KEYSPAN_USA19W" = "y";
+  "CONFIG_USB_SERIAL_KEYSPAN_USA19QW" = "y";
+  "CONFIG_USB_SERIAL_KEYSPAN_USA19QI" = "y";
+  "CONFIG_USB_SERIAL_KEYSPAN_USA49W" = "y";
+  "CONFIG_USB_SERIAL_KEYSPAN_USA49WLC" = "y";
+  "CONFIG_USB_SERIAL_KLSI" = "m";
+  "CONFIG_USB_SERIAL_KOBIL_SCT" = "m";
+  "CONFIG_USB_SERIAL_MCT_U232" = "m";
+  "CONFIG_USB_SERIAL_METRO" = "m";
+  "CONFIG_USB_SERIAL_MOS7720" = "m";
+  "CONFIG_USB_SERIAL_MOS7840" = "m";
+  "CONFIG_USB_SERIAL_MXUPORT" = "m";
+  "CONFIG_USB_SERIAL_NAVMAN" = "m";
+  "CONFIG_USB_SERIAL_PL2303" = "m";
+  "CONFIG_USB_SERIAL_OTI6858" = "m";
+  "CONFIG_USB_SERIAL_QCAUX" = "m";
+  "CONFIG_USB_SERIAL_QUALCOMM" = "m";
+  "CONFIG_USB_SERIAL_SPCP8X5" = "m";
+  "CONFIG_USB_SERIAL_SAFE" = "m";
+  "CONFIG_USB_SERIAL_SIERRAWIRELESS" = "m";
+  "CONFIG_USB_SERIAL_SYMBOL" = "m";
+  "CONFIG_USB_SERIAL_TI" = "m";
+  "CONFIG_USB_SERIAL_CYBERJACK" = "m";
+  "CONFIG_USB_SERIAL_XIRCOM" = "m";
+  "CONFIG_USB_SERIAL_WWAN" = "m";
+  "CONFIG_USB_SERIAL_OPTION" = "m";
+  "CONFIG_USB_SERIAL_OMNINET" = "m";
+  "CONFIG_USB_SERIAL_OPTICON" = "m";
+  "CONFIG_USB_SERIAL_XSENS_MT" = "m";
+  "CONFIG_USB_SERIAL_WISHBONE" = "m";
+  "CONFIG_USB_SERIAL_SSU100" = "m";
+  "CONFIG_USB_SERIAL_QT2" = "m";
+  "CONFIG_USB_SERIAL_DEBUG" = "m";
+  "CONFIG_USB_EZUSB_FX2" = "m";
+  "CONFIG_NEW_LEDS" = "y";
+  "CONFIG_LEDS_CLASS" = "m";
+  "CONFIG_LEDS_CLASS_FLASH" = "m";
+  "CONFIG_RTC_LIB" = "y";
+  "CONFIG_RTC_CLASS" = "y";
+  "CONFIG_RTC_HCTOSYS" = "y";
+  "CONFIG_RTC_SYSTOHC" = "y";
+  "CONFIG_RTC_HCTOSYS_DEVICE" = "rtc0";
+  "CONFIG_RTC_INTF_SYSFS" = "y";
+  "CONFIG_RTC_INTF_PROC" = "y";
+  "CONFIG_RTC_INTF_DEV" = "y";
+  "CONFIG_RTC_DRV_CMOS" = "y";
+  "CONFIG_CLKEVT_I8253" = "y";
+  "CONFIG_I8253_LOCK" = "y";
+  "CONFIG_CLKBLD_I8253" = "y";
+  "CONFIG_EXTCON" = "m";
+  "CONFIG_RAS" = "y";
+  "CONFIG_FIRMWARE_MEMMAP" = "y";
+  "CONFIG_DMIID" = "y";
+  "CONFIG_DMI_SYSFS" = "m";
+  "CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK" = "y";
+  "CONFIG_UEFI_CPER" = "y";
+  "CONFIG_DCACHE_WORD_ACCESS" = "y";
+  "CONFIG_EXT2_FS" = "y";
+  "CONFIG_EXT3_FS" = "m";
+  "CONFIG_EXT4_FS" = "m";
+  "CONFIG_EXT4_FS_POSIX_ACL" = "y";
+  "CONFIG_JBD" = "m";
+  "CONFIG_JBD2" = "m";
+  "CONFIG_FS_MBCACHE" = "m";
+  "CONFIG_XFS_FS" = "y";
+  "CONFIG_XFS_POSIX_ACL" = "y";
+  "CONFIG_FS_POSIX_ACL" = "y";
+  "CONFIG_EXPORTFS" = "y";
+  "CONFIG_FILE_LOCKING" = "y";
+  "CONFIG_FSNOTIFY" = "y";
+  "CONFIG_DNOTIFY" = "y";
+  "CONFIG_INOTIFY_USER" = "y";
+  "CONFIG_FANOTIFY" = "y";
+  "CONFIG_AUTOFS4_FS" = "y";
+  "CONFIG_FUSE_FS" = "y";
+  "CONFIG_CUSE" = "m";
+  "CONFIG_OVERLAY_FS" = "y";
+  "CONFIG_ISO9660_FS" = "y";
+  "CONFIG_JOLIET" = "y";
+  "CONFIG_UDF_FS" = "y";
+  "CONFIG_UDF_NLS" = "y";
+  "CONFIG_FAT_FS" = "y";
+  "CONFIG_MSDOS_FS" = "y";
+  "CONFIG_VFAT_FS" = "y";
+  "CONFIG_FAT_DEFAULT_CODEPAGE" = "850";
+  "CONFIG_FAT_DEFAULT_IOCHARSET" = "iso8859-1";
+  "CONFIG_NTFS_FS" = "y";
+  "CONFIG_PROC_FS" = "y";
+  "CONFIG_PROC_SYSCTL" = "y";
+  "CONFIG_PROC_PAGE_MONITOR" = "y";
+  "CONFIG_KERNFS" = "y";
+  "CONFIG_SYSFS" = "y";
+  "CONFIG_TMPFS" = "y";
+  "CONFIG_TMPFS_POSIX_ACL" = "y";
+  "CONFIG_TMPFS_XATTR" = "y";
+  "CONFIG_CONFIGFS_FS" = "y";
+  "CONFIG_MISC_FILESYSTEMS" = "y";
+  "CONFIG_ADFS_FS" = "m";
+  "CONFIG_ADFS_FS_RW" = "y";
+  "CONFIG_AFFS_FS" = "m";
+  "CONFIG_ECRYPT_FS" = "m";
+  "CONFIG_HFS_FS" = "m";
+  "CONFIG_HFSPLUS_FS" = "m";
+  "CONFIG_BEFS_FS" = "m";
+  "CONFIG_BFS_FS" = "m";
+  "CONFIG_EFS_FS" = "m";
+  "CONFIG_LOGFS" = "m";
+  "CONFIG_CRAMFS" = "m";
+  "CONFIG_SQUASHFS" = "m";
+  "CONFIG_SQUASHFS_FILE_CACHE" = "y";
+  "CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU" = "y";
+  "CONFIG_SQUASHFS_ZLIB" = "y";
+  "CONFIG_SQUASHFS_LZ4" = "y";
+  "CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE" = "3";
+  "CONFIG_VXFS_FS" = "m";
+  "CONFIG_MINIX_FS" = "m";
+  "CONFIG_OMFS_FS" = "m";
+  "CONFIG_QNX4FS_FS" = "m";
+  "CONFIG_QNX6FS_FS" = "m";
+  "CONFIG_ROMFS_FS" = "m";
+  "CONFIG_ROMFS_BACKED_BY_BLOCK" = "y";
+  "CONFIG_ROMFS_ON_BLOCK" = "y";
+  "CONFIG_PSTORE" = "y";
+  "CONFIG_PSTORE_RAM" = "y";
+  "CONFIG_SYSV_FS" = "m";
+  "CONFIG_UFS_FS" = "m";
+  "CONFIG_UFS_FS_WRITE" = "y";
+  "CONFIG_NETWORK_FILESYSTEMS" = "y";
+  "CONFIG_NFS_FS" = "y";
+  "CONFIG_NFS_V3" = "y";
+  "CONFIG_NFS_V3_ACL" = "y";
+  "CONFIG_NFS_V4" = "y";
+  "CONFIG_NFS_USE_KERNEL_DNS" = "y";
+  "CONFIG_NFSD" = "y";
+  "CONFIG_NFSD_V2_ACL" = "y";
+  "CONFIG_NFSD_V3" = "y";
+  "CONFIG_NFSD_V3_ACL" = "y";
+  "CONFIG_NFSD_V4" = "y";
+  "CONFIG_GRACE_PERIOD" = "y";
+  "CONFIG_LOCKD" = "y";
+  "CONFIG_LOCKD_V4" = "y";
+  "CONFIG_NFS_ACL_SUPPORT" = "y";
+  "CONFIG_NFS_COMMON" = "y";
+  "CONFIG_SUNRPC" = "y";
+  "CONFIG_SUNRPC_GSS" = "y";
+  "CONFIG_RPCSEC_GSS_KRB5" = "m";
+  "CONFIG_CEPH_FS" = "m";
+  "CONFIG_CIFS" = "y";
+  "CONFIG_NLS" = "y";
+  "CONFIG_NLS_DEFAULT" = "ascii";
+  "CONFIG_NLS_CODEPAGE_437" = "m";
+  "CONFIG_NLS_CODEPAGE_850" = "m";
+  "CONFIG_NLS_CODEPAGE_852" = "m";
+  "CONFIG_NLS_ASCII" = "y";
+  "CONFIG_NLS_ISO8859_1" = "m";
+  "CONFIG_NLS_ISO8859_15" = "m";
+  "CONFIG_NLS_MAC_ROMAN" = "m";
+  "CONFIG_NLS_MAC_CELTIC" = "m";
+  "CONFIG_NLS_MAC_CENTEURO" = "m";
+  "CONFIG_NLS_MAC_CROATIAN" = "m";
+  "CONFIG_NLS_MAC_CYRILLIC" = "m";
+  "CONFIG_NLS_MAC_GAELIC" = "m";
+  "CONFIG_NLS_MAC_GREEK" = "m";
+  "CONFIG_NLS_MAC_ICELAND" = "m";
+  "CONFIG_NLS_MAC_INUIT" = "m";
+  "CONFIG_NLS_MAC_ROMANIAN" = "m";
+  "CONFIG_NLS_MAC_TURKISH" = "m";
+  "CONFIG_NLS_UTF8" = "m";
+  "CONFIG_TRACE_IRQFLAGS_SUPPORT" = "y";
+  "CONFIG_MESSAGE_LOGLEVEL_DEFAULT" = "4";
+  "CONFIG_FRAME_WARN" = "2048";
+  "CONFIG_ARCH_WANT_FRAME_POINTERS" = "y";
+  "CONFIG_MAGIC_SYSRQ" = "y";
+  "CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE" = "0x1";
+  "CONFIG_HAVE_DEBUG_KMEMLEAK" = "y";
+  "CONFIG_DEBUG_MEMORY_INIT" = "y";
+  "CONFIG_HAVE_DEBUG_STACKOVERFLOW" = "y";
+  "CONFIG_HAVE_ARCH_KMEMCHECK" = "y";
+  "CONFIG_HAVE_ARCH_KASAN" = "y";
+  "CONFIG_KASAN_SHADOW_OFFSET" = "0xdffffc0000000000";
+  "CONFIG_PANIC_ON_OOPS_VALUE" = "0";
+  "CONFIG_PANIC_TIMEOUT" = "0";
+  "CONFIG_DEBUG_BUGVERBOSE" = "y";
+  "CONFIG_RCU_CPU_STALL_TIMEOUT" = "60";
+  "CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS" = "y";
+  "CONFIG_USER_STACKTRACE_SUPPORT" = "y";
+  "CONFIG_HAVE_FUNCTION_TRACER" = "y";
+  "CONFIG_HAVE_FUNCTION_GRAPH_TRACER" = "y";
+  "CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST" = "y";
+  "CONFIG_HAVE_DYNAMIC_FTRACE" = "y";
+  "CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS" = "y";
+  "CONFIG_HAVE_FTRACE_MCOUNT_RECORD" = "y";
+  "CONFIG_HAVE_SYSCALL_TRACEPOINTS" = "y";
+  "CONFIG_HAVE_FENTRY" = "y";
+  "CONFIG_HAVE_C_RECORDMCOUNT" = "y";
+  "CONFIG_TRACING_SUPPORT" = "y";
+  "CONFIG_TEST_HEXDUMP" = "m";
+  "CONFIG_HAVE_ARCH_KGDB" = "y";
+  "CONFIG_STRICT_DEVMEM" = "y";
+  "CONFIG_X86_VERBOSE_BOOTUP" = "y";
+  "CONFIG_EARLY_PRINTK" = "y";
+  "CONFIG_DOUBLEFAULT" = "y";
+  "CONFIG_HAVE_MMIOTRACE_SUPPORT" = "y";
+  "CONFIG_IO_DELAY_TYPE_0X80" = "0";
+  "CONFIG_IO_DELAY_TYPE_0XED" = "1";
+  "CONFIG_IO_DELAY_TYPE_UDELAY" = "2";
+  "CONFIG_IO_DELAY_TYPE_NONE" = "3";
+  "CONFIG_IO_DELAY_0X80" = "y";
+  "CONFIG_DEFAULT_IO_DELAY_TYPE" = "0";
+  "CONFIG_KEYS" = "y";
+  "CONFIG_ENCRYPTED_KEYS" = "y";
+  "CONFIG_SECURITY" = "y";
+  "CONFIG_DEFAULT_SECURITY_DAC" = "y";
+  "CONFIG_DEFAULT_SECURITY" = "";
+  "CONFIG_CRYPTO" = "y";
+  "CONFIG_CRYPTO_ALGAPI" = "y";
+  "CONFIG_CRYPTO_ALGAPI2" = "y";
+  "CONFIG_CRYPTO_AEAD" = "y";
+  "CONFIG_CRYPTO_AEAD2" = "y";
+  "CONFIG_CRYPTO_BLKCIPHER" = "y";
+  "CONFIG_CRYPTO_BLKCIPHER2" = "y";
+  "CONFIG_CRYPTO_HASH" = "y";
+  "CONFIG_CRYPTO_HASH2" = "y";
+  "CONFIG_CRYPTO_RNG" = "y";
+  "CONFIG_CRYPTO_RNG2" = "y";
+  "CONFIG_CRYPTO_PCOMP" = "y";
+  "CONFIG_CRYPTO_PCOMP2" = "y";
+  "CONFIG_CRYPTO_MANAGER" = "y";
+  "CONFIG_CRYPTO_MANAGER2" = "y";
+  "CONFIG_CRYPTO_USER" = "m";
+  "CONFIG_CRYPTO_GF128MUL" = "y";
+  "CONFIG_CRYPTO_NULL" = "m";
+  "CONFIG_CRYPTO_PCRYPT" = "y";
+  "CONFIG_CRYPTO_WORKQUEUE" = "y";
+  "CONFIG_CRYPTO_CRYPTD" = "y";
+  "CONFIG_CRYPTO_MCRYPTD" = "m";
+  "CONFIG_CRYPTO_AUTHENC" = "m";
+  "CONFIG_CRYPTO_TEST" = "m";
+  "CONFIG_CRYPTO_ABLK_HELPER" = "y";
+  "CONFIG_CRYPTO_GLUE_HELPER_X86" = "y";
+  "CONFIG_CRYPTO_CCM" = "m";
+  "CONFIG_CRYPTO_GCM" = "m";
+  "CONFIG_CRYPTO_SEQIV" = "y";
+  "CONFIG_CRYPTO_CBC" = "y";
+  "CONFIG_CRYPTO_CTR" = "y";
+  "CONFIG_CRYPTO_CTS" = "m";
+  "CONFIG_CRYPTO_ECB" = "y";
+  "CONFIG_CRYPTO_LRW" = "y";
+  "CONFIG_CRYPTO_PCBC" = "y";
+  "CONFIG_CRYPTO_XTS" = "y";
+  "CONFIG_CRYPTO_CMAC" = "y";
+  "CONFIG_CRYPTO_HMAC" = "y";
+  "CONFIG_CRYPTO_XCBC" = "m";
+  "CONFIG_CRYPTO_VMAC" = "m";
+  "CONFIG_CRYPTO_CRC32C" = "y";
+  "CONFIG_CRYPTO_CRC32C_INTEL" = "y";
+  "CONFIG_CRYPTO_CRC32" = "y";
+  "CONFIG_CRYPTO_CRC32_PCLMUL" = "y";
+  "CONFIG_CRYPTO_CRCT10DIF" = "y";
+  "CONFIG_CRYPTO_CRCT10DIF_PCLMUL" = "m";
+  "CONFIG_CRYPTO_GHASH" = "y";
+  "CONFIG_CRYPTO_MD4" = "y";
+  "CONFIG_CRYPTO_MD5" = "y";
+  "CONFIG_CRYPTO_MICHAEL_MIC" = "y";
+  "CONFIG_CRYPTO_RMD128" = "m";
+  "CONFIG_CRYPTO_RMD160" = "m";
+  "CONFIG_CRYPTO_RMD256" = "m";
+  "CONFIG_CRYPTO_RMD320" = "m";
+  "CONFIG_CRYPTO_SHA1" = "y";
+  "CONFIG_CRYPTO_SHA1_SSSE3" = "y";
+  "CONFIG_CRYPTO_SHA256_SSSE3" = "y";
+  "CONFIG_CRYPTO_SHA512_SSSE3" = "y";
+  "CONFIG_CRYPTO_SHA1_MB" = "m";
+  "CONFIG_CRYPTO_SHA256" = "y";
+  "CONFIG_CRYPTO_SHA512" = "y";
+  "CONFIG_CRYPTO_TGR192" = "m";
+  "CONFIG_CRYPTO_WP512" = "m";
+  "CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL" = "m";
+  "CONFIG_CRYPTO_AES" = "y";
+  "CONFIG_CRYPTO_AES_X86_64" = "y";
+  "CONFIG_CRYPTO_AES_NI_INTEL" = "y";
+  "CONFIG_CRYPTO_ANUBIS" = "m";
+  "CONFIG_CRYPTO_ARC4" = "y";
+  "CONFIG_CRYPTO_BLOWFISH" = "y";
+  "CONFIG_CRYPTO_BLOWFISH_COMMON" = "y";
+  "CONFIG_CRYPTO_BLOWFISH_X86_64" = "y";
+  "CONFIG_CRYPTO_CAMELLIA" = "m";
+  "CONFIG_CRYPTO_CAMELLIA_X86_64" = "y";
+  "CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64" = "y";
+  "CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64" = "y";
+  "CONFIG_CRYPTO_CAST_COMMON" = "y";
+  "CONFIG_CRYPTO_CAST5" = "y";
+  "CONFIG_CRYPTO_CAST5_AVX_X86_64" = "y";
+  "CONFIG_CRYPTO_CAST6" = "y";
+  "CONFIG_CRYPTO_CAST6_AVX_X86_64" = "y";
+  "CONFIG_CRYPTO_DES" = "y";
+  "CONFIG_CRYPTO_DES3_EDE_X86_64" = "y";
+  "CONFIG_CRYPTO_FCRYPT" = "m";
+  "CONFIG_CRYPTO_KHAZAD" = "m";
+  "CONFIG_CRYPTO_SALSA20" = "m";
+  "CONFIG_CRYPTO_SALSA20_X86_64" = "m";
+  "CONFIG_CRYPTO_SEED" = "m";
+  "CONFIG_CRYPTO_SERPENT" = "y";
+  "CONFIG_CRYPTO_SERPENT_SSE2_X86_64" = "y";
+  "CONFIG_CRYPTO_SERPENT_AVX_X86_64" = "y";
+  "CONFIG_CRYPTO_SERPENT_AVX2_X86_64" = "y";
+  "CONFIG_CRYPTO_TEA" = "m";
+  "CONFIG_CRYPTO_TWOFISH" = "y";
+  "CONFIG_CRYPTO_TWOFISH_COMMON" = "y";
+  "CONFIG_CRYPTO_TWOFISH_X86_64" = "y";
+  "CONFIG_CRYPTO_TWOFISH_X86_64_3WAY" = "y";
+  "CONFIG_CRYPTO_TWOFISH_AVX_X86_64" = "y";
+  "CONFIG_CRYPTO_DEFLATE" = "y";
+  "CONFIG_CRYPTO_ZLIB" = "y";
+  "CONFIG_CRYPTO_LZO" = "y";
+  "CONFIG_CRYPTO_LZ4" = "y";
+  "CONFIG_CRYPTO_LZ4HC" = "y";
+  "CONFIG_CRYPTO_ANSI_CPRNG" = "m";
+  "CONFIG_CRYPTO_USER_API" = "m";
+  "CONFIG_CRYPTO_USER_API_HASH" = "m";
+  "CONFIG_CRYPTO_USER_API_SKCIPHER" = "m";
+  "CONFIG_CRYPTO_USER_API_RNG" = "m";
+  "CONFIG_CRYPTO_HASH_INFO" = "y";
+  "CONFIG_ASYMMETRIC_KEY_TYPE" = "y";
+  "CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE" = "y";
+  "CONFIG_PUBLIC_KEY_ALGO_RSA" = "y";
+  "CONFIG_X509_CERTIFICATE_PARSER" = "y";
+  "CONFIG_PKCS7_MESSAGE_PARSER" = "m";
+  "CONFIG_PKCS7_TEST_KEY" = "m";
+  "CONFIG_HAVE_KVM" = "y";
+  "CONFIG_HAVE_KVM_IRQCHIP" = "y";
+  "CONFIG_HAVE_KVM_IRQFD" = "y";
+  "CONFIG_HAVE_KVM_IRQ_ROUTING" = "y";
+  "CONFIG_HAVE_KVM_EVENTFD" = "y";
+  "CONFIG_KVM_APIC_ARCHITECTURE" = "y";
+  "CONFIG_KVM_MMIO" = "y";
+  "CONFIG_KVM_ASYNC_PF" = "y";
+  "CONFIG_HAVE_KVM_MSI" = "y";
+  "CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT" = "y";
+  "CONFIG_KVM_VFIO" = "y";
+  "CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT" = "y";
+  "CONFIG_KVM_COMPAT" = "y";
+  "CONFIG_VIRTUALIZATION" = "y";
+  "CONFIG_KVM" = "m";
+  "CONFIG_KVM_INTEL" = "m";
+  "CONFIG_BITREVERSE" = "y";
+  "CONFIG_GENERIC_STRNCPY_FROM_USER" = "y";
+  "CONFIG_GENERIC_STRNLEN_USER" = "y";
+  "CONFIG_GENERIC_NET_UTILS" = "y";
+  "CONFIG_GENERIC_FIND_FIRST_BIT" = "y";
+  "CONFIG_GENERIC_PCI_IOMAP" = "y";
+  "CONFIG_GENERIC_IOMAP" = "y";
+  "CONFIG_GENERIC_IO" = "y";
+  "CONFIG_ARCH_USE_CMPXCHG_LOCKREF" = "y";
+  "CONFIG_ARCH_HAS_FAST_MULTIPLIER" = "y";
+  "CONFIG_CRC_CCITT" = "y";
+  "CONFIG_CRC16" = "y";
+  "CONFIG_CRC_T10DIF" = "y";
+  "CONFIG_CRC_ITU_T" = "y";
+  "CONFIG_CRC32" = "y";
+  "CONFIG_CRC32_SELFTEST" = "y";
+  "CONFIG_CRC32_SLICEBY8" = "y";
+  "CONFIG_CRC7" = "y";
+  "CONFIG_LIBCRC32C" = "y";
+  "CONFIG_CRC8" = "y";
+  "CONFIG_RANDOM32_SELFTEST" = "y";
+  "CONFIG_ZLIB_INFLATE" = "y";
+  "CONFIG_ZLIB_DEFLATE" = "y";
+  "CONFIG_LZO_COMPRESS" = "y";
+  "CONFIG_LZO_DECOMPRESS" = "y";
+  "CONFIG_LZ4_COMPRESS" = "y";
+  "CONFIG_LZ4HC_COMPRESS" = "y";
+  "CONFIG_LZ4_DECOMPRESS" = "y";
+  "CONFIG_XZ_DEC" = "y";
+  "CONFIG_XZ_DEC_X86" = "y";
+  "CONFIG_XZ_DEC_POWERPC" = "y";
+  "CONFIG_XZ_DEC_IA64" = "y";
+  "CONFIG_XZ_DEC_ARM" = "y";
+  "CONFIG_XZ_DEC_ARMTHUMB" = "y";
+  "CONFIG_XZ_DEC_SPARC" = "y";
+  "CONFIG_XZ_DEC_BCJ" = "y";
+  "CONFIG_XZ_DEC_TEST" = "y";
+  "CONFIG_DECOMPRESS_GZIP" = "y";
+  "CONFIG_DECOMPRESS_BZIP2" = "y";
+  "CONFIG_DECOMPRESS_LZMA" = "y";
+  "CONFIG_DECOMPRESS_XZ" = "y";
+  "CONFIG_DECOMPRESS_LZO" = "y";
+  "CONFIG_DECOMPRESS_LZ4" = "y";
+  "CONFIG_REED_SOLOMON" = "y";
+  "CONFIG_REED_SOLOMON_ENC8" = "y";
+  "CONFIG_REED_SOLOMON_DEC8" = "y";
+  "CONFIG_TEXTSEARCH" = "y";
+  "CONFIG_TEXTSEARCH_KMP" = "m";
+  "CONFIG_TEXTSEARCH_BM" = "m";
+  "CONFIG_TEXTSEARCH_FSM" = "m";
+  "CONFIG_BTREE" = "y";
+  "CONFIG_INTERVAL_TREE" = "y";
+  "CONFIG_ASSOCIATIVE_ARRAY" = "y";
+  "CONFIG_HAS_IOMEM" = "y";
+  "CONFIG_HAS_IOPORT_MAP" = "y";
+  "CONFIG_HAS_DMA" = "y";
+  "CONFIG_CHECK_SIGNATURE" = "y";
+  "CONFIG_CPU_RMAP" = "y";
+  "CONFIG_DQL" = "y";
+  "CONFIG_GLOB" = "y";
+  "CONFIG_NLATTR" = "y";
+  "CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE" = "y";
+  "CONFIG_AVERAGE" = "y";
+  "CONFIG_CLZ_TAB" = "y";
+  "CONFIG_CORDIC" = "y";
+  "CONFIG_MPILIB" = "y";
+  "CONFIG_OID_REGISTRY" = "y";
+  "CONFIG_FONT_SUPPORT" = "y";
+  "CONFIG_FONT_8x8" = "y";
+  "CONFIG_FONT_8x16" = "y";
+  "CONFIG_ARCH_HAS_SG_CHAIN" = "y";
+}
diff --git a/machines/dnyarri.nix b/machines/dnyarri.nix
new file mode 100644
index 00000000..aca4d383
--- /dev/null
+++ b/machines/dnyarri.nix
@@ -0,0 +1,145 @@
+{ pkgs, ... }:
+
+with pkgs.lib;
+with import ../lib;
+
+{
+  imports = singleton ../common-workstation.nix;
+
+  nix.maxJobs = 8;
+
+  boot = let
+    patch51Name = "patch51.fw";
+    kernelParams = [ "snd-hda-intel.patch=${patch51Name}" ];
+
+    patch51 = pkgs.writeText patch51Name ''
+      [codec]
+      0x10ec0889 0x80860033 2
+
+      [pincfg]
+      0x11 0x01442130
+      0x12 0x411111f0
+      0x14 0x01014410
+      0x15 0x0321403f
+      0x16 0x40f000f0
+      0x17 0x40f000f0
+      0x18 0x03a19020
+      0x19 0x40f000f0
+      0x1a 0x01014412
+      0x1b 0x01014411
+      0x1c 0x411111f0
+      0x1d 0x411111f0
+      0x1e 0x01451140
+      0x1f 0x01c51170
+
+      [model]
+      auto
+    '';
+
+    radeonFW = [
+      "radeon/R600_rlc.bin"
+      "radeon/R700_rlc.bin"
+      "radeon/RV710_uvd.bin"
+      "radeon/RV710_smc.bin"
+      "radeon/RV730_smc.bin"
+    ];
+
+    linuxVuizvui = pkgs.buildLinux {
+      inherit (pkgs.kernelSourceVuizvui) version src;
+
+      kernelPatches = singleton pkgs.vuizvuiKernelPatches.bfqsched;
+      configfile = pkgs.substituteAll {
+        name = "vuizvui-with-firmware.kconf";
+        src = generateKConf (import ./dnyarri-kconf.nix);
+
+        extra_firmware = concatStringsSep " " (radeonFW ++ [
+          "patch51.fw"
+        ]);
+
+        builtin_firmware = pkgs.stdenv.mkDerivation {
+          name = "builtin-firmware";
+          buildCommand = let
+            firmwareBasePath = "${pkgs.firmwareLinuxNonfree}/lib/firmware";
+          in ''
+            mkdir -p "$out/radeon"
+            ${concatMapStrings (x: ''
+              cp -Lv -t "$out/radeon" "${firmwareBasePath}/${x}";
+            '') radeonFW}
+
+            cp "${patch51}" "$out/${patch51Name}"
+          '';
+        };
+      };
+      allowImportFromDerivation = true; # XXX
+    };
+  in rec {
+    kernelPackages = let
+      kpkgs = pkgs.recurseIntoAttrs
+        (pkgs.linuxPackagesFor linuxVuizvui kernelPackages);
+      virtualbox = kpkgs.virtualbox.override {
+        enableExtensionPack = true;
+      };
+    in pkgs.recurseIntoAttrs (kpkgs // { inherit virtualbox; });
+    inherit kernelParams;
+
+    initrd = {
+      mdadmConf = ''
+        ARRAY /dev/md0 metadata=1.2 UUID=f5e9de04:89efc509:4e184fcc:166b0b67
+        ARRAY /dev/md1 metadata=0.90 UUID=b85aa8be:cea0faf2:7abcbee8:eeae037b
+      '';
+      luks.devices = [
+        { name = "system_crypt";
+          device = "/dev/md1";
+          preLVM = true;
+        }
+      ];
+    };
+
+    loader.grub.devices = [
+      "/dev/disk/by-id/ata-ST31500541AS_5XW0AMNH"
+      "/dev/disk/by-id/ata-ST31500541AS_6XW0M217"
+    ];
+  };
+
+  networking.hostName = "dnyarri";
+
+  fileSystems = {
+    "/boot" = {
+      label = "boot";
+      fsType = "ext2";
+    };
+    "/" = {
+      device = "/dev/shofixti/root";
+      fsType = "xfs";
+    };
+  };
+
+  powerManagement.powerUpCommands = ''
+    ${pkgs.hdparm}/sbin/hdparm -B 255 /dev/disk/by-id/ata-ST31500541AS_5XW0AMNH
+    ${pkgs.hdparm}/sbin/hdparm -B 255 /dev/disk/by-id/ata-ST31500541AS_6XW0M217
+  '';
+
+  swapDevices = singleton {
+    device = "/dev/shofixti/swap";
+  };
+
+  # TODO: Try to avoid this, but as there is only a single user using audio on
+  # this machine, it's okay for now. But remember that this will break heavily,
+  # should there be another user accessing the audio devices.
+  users.extraUsers.aszlig.extraGroups = [ "audio" "vboxusers" ];
+
+  services.synergy.client.enable = true;
+  services.synergy.client.serverAddress = "mmrnmhrm";
+
+  systemd.services."synergy-client".serviceConfig.CPUSchedulingPolicy = "rr";
+  systemd.services."synergy-client".serviceConfig.CPUSchedulingPriority = 50;
+
+  services.xserver.videoDrivers = [ "ati" ];
+  services.xserver.xrandrHeads = [ "HDMI-0" "DVI-0" ];
+
+  vuizvui.i3.reverseHeads = true;
+  vuizvui.i3.workspaces."6" = {
+    label = "Chromium";
+    assign = singleton { class = "^Chromium(?:-browser)?\$"; };
+  };
+}
diff --git a/machines/kzerza.nix b/machines/kzerza.nix
new file mode 100644
index 00000000..c7f09526
--- /dev/null
+++ b/machines/kzerza.nix
@@ -0,0 +1,64 @@
+{ pkgs, lib, ... }:
+
+with lib;
+
+let
+  rootUUID = "ad41f848-d14a-4a89-9d04-3e48bd73dc5c";
+  diskID = "usb-0000_Removable_Drive_23372707080836980013-0:0";
+in {
+  imports = singleton ../common.nix;
+
+  services.xserver.enable = mkForce false;
+
+  boot = {
+    kernelParams = singleton "consoleblank=0";
+    initrd.kernelModules = [ "fbcon" "usb_storage" ];
+    loader.grub.device = "/dev/disk/by-id/${diskID}";
+  };
+
+  networking.hostName = "kzerza";
+
+  fileSystems."/".device = "/dev/disk/by-uuid/${rootUUID}";
+  fileSystems."/".fsType = "btrfs";
+  fileSystems."/".options = concatStringsSep "," [
+    "ssd"
+    "space_cache"
+    "compress-force=zlib"
+    "noatime"
+  ];
+
+  services.udev.extraRules = ''
+    SUBSYSTEM=="usb*|tty", ACTION=="add|change", ATTRS{idVendor}=="0403", \
+      ATTRS{idProduct}=="6001", OWNER="grandpa"
+  '';
+
+  fileSystems."/tmp".device = "none";
+  fileSystems."/tmp".fsType = "tmpfs";
+  fileSystems."/tmp".options = "nosuid,nodev,relatime";
+
+  users.extraGroups.grandpa.gid = 666;
+  users.extraUsers.grandpa = {
+    uid = 666;
+    description = "GrandPA User";
+    group = "grandpa";
+    createHome = true;
+  };
+
+  systemd.services.grandpa = {
+    description = "GrandPA Lighting Controller";
+    wantedBy = [ "multi-user.target" ];
+    preStart = "${pkgs.kbd}/bin/chvt 7";
+    serviceConfig = {
+      Type = "idle";
+      ExecStart = "${pkgs.grandpa}/bin/grandpa";
+      StandardInput = "tty";
+      StandardOutput = "tty";
+      TTYPath = "/dev/tty7";
+      TTYVTDisallocate = true;
+      User = "grandpa";
+      Group = "grandpa";
+      PrivateTmp = true;
+      PrivateNetwork = true;
+    };
+  };
+}
diff --git a/machines/mmrnmhrm-kconf.nix b/machines/mmrnmhrm-kconf.nix
new file mode 100644
index 00000000..ac37de64
--- /dev/null
+++ b/machines/mmrnmhrm-kconf.nix
@@ -0,0 +1,1220 @@
+{
+  "CONFIG_64BIT" = "y";
+  "CONFIG_X86_64" = "y";
+  "CONFIG_X86" = "y";
+  "CONFIG_INSTRUCTION_DECODER" = "y";
+  "CONFIG_PERF_EVENTS_INTEL_UNCORE" = "y";
+  "CONFIG_OUTPUT_FORMAT" = "elf64-x86-64";
+  "CONFIG_ARCH_DEFCONFIG" = "arch/x86/configs/x86_64_defconfig";
+  "CONFIG_LOCKDEP_SUPPORT" = "y";
+  "CONFIG_STACKTRACE_SUPPORT" = "y";
+  "CONFIG_HAVE_LATENCYTOP_SUPPORT" = "y";
+  "CONFIG_MMU" = "y";
+  "CONFIG_NEED_DMA_MAP_STATE" = "y";
+  "CONFIG_NEED_SG_DMA_LENGTH" = "y";
+  "CONFIG_GENERIC_ISA_DMA" = "y";
+  "CONFIG_GENERIC_BUG" = "y";
+  "CONFIG_GENERIC_BUG_RELATIVE_POINTERS" = "y";
+  "CONFIG_GENERIC_HWEIGHT" = "y";
+  "CONFIG_ARCH_MAY_HAVE_PC_FDC" = "y";
+  "CONFIG_RWSEM_XCHGADD_ALGORITHM" = "y";
+  "CONFIG_GENERIC_CALIBRATE_DELAY" = "y";
+  "CONFIG_ARCH_HAS_CPU_RELAX" = "y";
+  "CONFIG_ARCH_HAS_CACHE_LINE_SIZE" = "y";
+  "CONFIG_HAVE_SETUP_PER_CPU_AREA" = "y";
+  "CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK" = "y";
+  "CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK" = "y";
+  "CONFIG_ARCH_HIBERNATION_POSSIBLE" = "y";
+  "CONFIG_ARCH_SUSPEND_POSSIBLE" = "y";
+  "CONFIG_ARCH_WANT_HUGE_PMD_SHARE" = "y";
+  "CONFIG_ARCH_WANT_GENERAL_HUGETLB" = "y";
+  "CONFIG_ZONE_DMA32" = "y";
+  "CONFIG_AUDIT_ARCH" = "y";
+  "CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING" = "y";
+  "CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC" = "y";
+  "CONFIG_X86_64_SMP" = "y";
+  "CONFIG_X86_HT" = "y";
+  "CONFIG_ARCH_HWEIGHT_CFLAGS" = "-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11";
+  "CONFIG_ARCH_SUPPORTS_UPROBES" = "y";
+  "CONFIG_FIX_EARLYCON_MEM" = "y";
+  "CONFIG_DEFCONFIG_LIST" = "/lib/modules/$UNAME_RELEASE/.config";
+  "CONFIG_IRQ_WORK" = "y";
+  "CONFIG_BUILDTIME_EXTABLE_SORT" = "y";
+  "CONFIG_INIT_ENV_ARG_LIMIT" = "32";
+  "CONFIG_CROSS_COMPILE" = "";
+  "CONFIG_LOCALVERSION" = "";
+  "CONFIG_HAVE_KERNEL_GZIP" = "y";
+  "CONFIG_HAVE_KERNEL_BZIP2" = "y";
+  "CONFIG_HAVE_KERNEL_LZMA" = "y";
+  "CONFIG_HAVE_KERNEL_XZ" = "y";
+  "CONFIG_HAVE_KERNEL_LZO" = "y";
+  "CONFIG_HAVE_KERNEL_LZ4" = "y";
+  "CONFIG_KERNEL_XZ" = "y";
+  "CONFIG_DEFAULT_HOSTNAME" = "mmrnmhrm";
+  "CONFIG_SWAP" = "y";
+  "CONFIG_SYSVIPC" = "y";
+  "CONFIG_SYSVIPC_SYSCTL" = "y";
+  "CONFIG_POSIX_MQUEUE" = "y";
+  "CONFIG_POSIX_MQUEUE_SYSCTL" = "y";
+  "CONFIG_CROSS_MEMORY_ATTACH" = "y";
+  "CONFIG_FHANDLE" = "y";
+  "CONFIG_HAVE_ARCH_AUDITSYSCALL" = "y";
+  "CONFIG_GENERIC_IRQ_PROBE" = "y";
+  "CONFIG_GENERIC_IRQ_SHOW" = "y";
+  "CONFIG_GENERIC_IRQ_LEGACY_ALLOC_HWIRQ" = "y";
+  "CONFIG_GENERIC_PENDING_IRQ" = "y";
+  "CONFIG_IRQ_DOMAIN" = "y";
+  "CONFIG_GENERIC_MSI_IRQ" = "y";
+  "CONFIG_IRQ_FORCED_THREADING" = "y";
+  "CONFIG_SPARSE_IRQ" = "y";
+  "CONFIG_CLOCKSOURCE_WATCHDOG" = "y";
+  "CONFIG_ARCH_CLOCKSOURCE_DATA" = "y";
+  "CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE" = "y";
+  "CONFIG_GENERIC_TIME_VSYSCALL" = "y";
+  "CONFIG_GENERIC_CLOCKEVENTS" = "y";
+  "CONFIG_GENERIC_CLOCKEVENTS_BUILD" = "y";
+  "CONFIG_GENERIC_CLOCKEVENTS_BROADCAST" = "y";
+  "CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST" = "y";
+  "CONFIG_GENERIC_CMOS_UPDATE" = "y";
+  "CONFIG_TICK_ONESHOT" = "y";
+  "CONFIG_NO_HZ_COMMON" = "y";
+  "CONFIG_NO_HZ_IDLE" = "y";
+  "CONFIG_HIGH_RES_TIMERS" = "y";
+  "CONFIG_TICK_CPU_ACCOUNTING" = "y";
+  "CONFIG_BSD_PROCESS_ACCT" = "y";
+  "CONFIG_BSD_PROCESS_ACCT_V3" = "y";
+  "CONFIG_TASKSTATS" = "y";
+  "CONFIG_TASK_DELAY_ACCT" = "y";
+  "CONFIG_TASK_XACCT" = "y";
+  "CONFIG_TASK_IO_ACCOUNTING" = "y";
+  "CONFIG_PREEMPT_RCU" = "y";
+  "CONFIG_SRCU" = "y";
+  "CONFIG_RCU_STALL_COMMON" = "y";
+  "CONFIG_RCU_FANOUT" = "64";
+  "CONFIG_RCU_FANOUT_LEAF" = "16";
+  "CONFIG_RCU_BOOST" = "y";
+  "CONFIG_RCU_KTHREAD_PRIO" = "1";
+  "CONFIG_RCU_BOOST_DELAY" = "500";
+  "CONFIG_BUILD_BIN2C" = "y";
+  "CONFIG_IKCONFIG" = "y";
+  "CONFIG_IKCONFIG_PROC" = "y";
+  "CONFIG_LOG_BUF_SHIFT" = "17";
+  "CONFIG_LOG_CPU_MAX_BUF_SHIFT" = "14";
+  "CONFIG_HAVE_UNSTABLE_SCHED_CLOCK" = "y";
+  "CONFIG_ARCH_SUPPORTS_NUMA_BALANCING" = "y";
+  "CONFIG_ARCH_SUPPORTS_INT128" = "y";
+  "CONFIG_CGROUPS" = "y";
+  "CONFIG_CGROUP_FREEZER" = "y";
+  "CONFIG_CGROUP_DEVICE" = "y";
+  "CONFIG_CPUSETS" = "y";
+  "CONFIG_CGROUP_CPUACCT" = "y";
+  "CONFIG_CGROUP_SCHED" = "y";
+  "CONFIG_FAIR_GROUP_SCHED" = "y";
+  "CONFIG_CFS_BANDWIDTH" = "y";
+  "CONFIG_BLK_CGROUP" = "y";
+  "CONFIG_NAMESPACES" = "y";
+  "CONFIG_UTS_NS" = "y";
+  "CONFIG_IPC_NS" = "y";
+  "CONFIG_USER_NS" = "y";
+  "CONFIG_PID_NS" = "y";
+  "CONFIG_NET_NS" = "y";
+  "CONFIG_SCHED_AUTOGROUP" = "y";
+  "CONFIG_RELAY" = "y";
+  "CONFIG_BLK_DEV_INITRD" = "y";
+  "CONFIG_INITRAMFS_SOURCE" = "";
+  "CONFIG_RD_GZIP" = "y";
+  "CONFIG_RD_BZIP2" = "y";
+  "CONFIG_RD_LZMA" = "y";
+  "CONFIG_RD_XZ" = "y";
+  "CONFIG_RD_LZO" = "y";
+  "CONFIG_RD_LZ4" = "y";
+  "CONFIG_SYSCTL" = "y";
+  "CONFIG_ANON_INODES" = "y";
+  "CONFIG_HAVE_UID16" = "y";
+  "CONFIG_SYSCTL_EXCEPTION_TRACE" = "y";
+  "CONFIG_HAVE_PCSPKR_PLATFORM" = "y";
+  "CONFIG_BPF" = "y";
+  "CONFIG_UID16" = "y";
+  "CONFIG_SGETMASK_SYSCALL" = "y";
+  "CONFIG_SYSFS_SYSCALL" = "y";
+  "CONFIG_KALLSYMS" = "y";
+  "CONFIG_PRINTK" = "y";
+  "CONFIG_BUG" = "y";
+  "CONFIG_ELF_CORE" = "y";
+  "CONFIG_PCSPKR_PLATFORM" = "y";
+  "CONFIG_BASE_FULL" = "y";
+  "CONFIG_FUTEX" = "y";
+  "CONFIG_EPOLL" = "y";
+  "CONFIG_SIGNALFD" = "y";
+  "CONFIG_TIMERFD" = "y";
+  "CONFIG_EVENTFD" = "y";
+  "CONFIG_SHMEM" = "y";
+  "CONFIG_AIO" = "y";
+  "CONFIG_ADVISE_SYSCALLS" = "y";
+  "CONFIG_PCI_QUIRKS" = "y";
+  "CONFIG_HAVE_PERF_EVENTS" = "y";
+  "CONFIG_PERF_EVENTS" = "y";
+  "CONFIG_VM_EVENT_COUNTERS" = "y";
+  "CONFIG_SLUB_DEBUG" = "y";
+  "CONFIG_SLUB" = "y";
+  "CONFIG_SYSTEM_TRUSTED_KEYRING" = "y";
+  "CONFIG_HAVE_OPROFILE" = "y";
+  "CONFIG_OPROFILE_NMI_TIMER" = "y";
+  "CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS" = "y";
+  "CONFIG_ARCH_USE_BUILTIN_BSWAP" = "y";
+  "CONFIG_USER_RETURN_NOTIFIER" = "y";
+  "CONFIG_HAVE_IOREMAP_PROT" = "y";
+  "CONFIG_HAVE_KPROBES" = "y";
+  "CONFIG_HAVE_KRETPROBES" = "y";
+  "CONFIG_HAVE_OPTPROBES" = "y";
+  "CONFIG_HAVE_KPROBES_ON_FTRACE" = "y";
+  "CONFIG_HAVE_ARCH_TRACEHOOK" = "y";
+  "CONFIG_HAVE_DMA_ATTRS" = "y";
+  "CONFIG_HAVE_DMA_CONTIGUOUS" = "y";
+  "CONFIG_GENERIC_SMP_IDLE_THREAD" = "y";
+  "CONFIG_HAVE_REGS_AND_STACK_ACCESS_API" = "y";
+  "CONFIG_HAVE_DMA_API_DEBUG" = "y";
+  "CONFIG_HAVE_HW_BREAKPOINT" = "y";
+  "CONFIG_HAVE_MIXED_BREAKPOINTS_REGS" = "y";
+  "CONFIG_HAVE_USER_RETURN_NOTIFIER" = "y";
+  "CONFIG_HAVE_PERF_EVENTS_NMI" = "y";
+  "CONFIG_HAVE_PERF_REGS" = "y";
+  "CONFIG_HAVE_PERF_USER_STACK_DUMP" = "y";
+  "CONFIG_HAVE_ARCH_JUMP_LABEL" = "y";
+  "CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG" = "y";
+  "CONFIG_HAVE_ALIGNED_STRUCT_PAGE" = "y";
+  "CONFIG_HAVE_CMPXCHG_LOCAL" = "y";
+  "CONFIG_HAVE_CMPXCHG_DOUBLE" = "y";
+  "CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION" = "y";
+  "CONFIG_ARCH_WANT_OLD_COMPAT_IPC" = "y";
+  "CONFIG_HAVE_ARCH_SECCOMP_FILTER" = "y";
+  "CONFIG_SECCOMP_FILTER" = "y";
+  "CONFIG_HAVE_CC_STACKPROTECTOR" = "y";
+  "CONFIG_CC_STACKPROTECTOR" = "y";
+  "CONFIG_CC_STACKPROTECTOR_REGULAR" = "y";
+  "CONFIG_HAVE_CONTEXT_TRACKING" = "y";
+  "CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN" = "y";
+  "CONFIG_HAVE_IRQ_TIME_ACCOUNTING" = "y";
+  "CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE" = "y";
+  "CONFIG_HAVE_ARCH_SOFT_DIRTY" = "y";
+  "CONFIG_MODULES_USE_ELF_RELA" = "y";
+  "CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK" = "y";
+  "CONFIG_OLD_SIGSUSPEND3" = "y";
+  "CONFIG_COMPAT_OLD_SIGACTION" = "y";
+  "CONFIG_ARCH_HAS_GCOV_PROFILE_ALL" = "y";
+  "CONFIG_SLABINFO" = "y";
+  "CONFIG_RT_MUTEXES" = "y";
+  "CONFIG_BASE_SMALL" = "0";
+  "CONFIG_MODULES" = "y";
+  "CONFIG_MODULE_FORCE_LOAD" = "y";
+  "CONFIG_MODULE_UNLOAD" = "y";
+  "CONFIG_MODULE_FORCE_UNLOAD" = "y";
+  "CONFIG_MODVERSIONS" = "y";
+  "CONFIG_STOP_MACHINE" = "y";
+  "CONFIG_BLOCK" = "y";
+  "CONFIG_BLK_DEV_BSG" = "y";
+  "CONFIG_BLK_DEV_INTEGRITY" = "y";
+  "CONFIG_BLK_DEV_THROTTLING" = "y";
+  "CONFIG_MSDOS_PARTITION" = "y";
+  "CONFIG_EFI_PARTITION" = "y";
+  "CONFIG_BLOCK_COMPAT" = "y";
+  "CONFIG_IOSCHED_NOOP" = "y";
+  "CONFIG_IOSCHED_DEADLINE" = "y";
+  "CONFIG_IOSCHED_CFQ" = "y";
+  "CONFIG_CFQ_GROUP_IOSCHED" = "y";
+  "CONFIG_IOSCHED_BFQ" = "y";
+  "CONFIG_CGROUP_BFQIO" = "y";
+  "CONFIG_DEFAULT_BFQ" = "y";
+  "CONFIG_DEFAULT_IOSCHED" = "bfq";
+  "CONFIG_PREEMPT_NOTIFIERS" = "y";
+  "CONFIG_PADATA" = "y";
+  "CONFIG_ASN1" = "m";
+  "CONFIG_UNINLINE_SPIN_UNLOCK" = "y";
+  "CONFIG_ARCH_SUPPORTS_ATOMIC_RMW" = "y";
+  "CONFIG_MUTEX_SPIN_ON_OWNER" = "y";
+  "CONFIG_RWSEM_SPIN_ON_OWNER" = "y";
+  "CONFIG_LOCK_SPIN_ON_OWNER" = "y";
+  "CONFIG_ARCH_USE_QUEUE_RWLOCK" = "y";
+  "CONFIG_QUEUE_RWLOCK" = "y";
+  "CONFIG_FREEZER" = "y";
+  "CONFIG_ZONE_DMA" = "y";
+  "CONFIG_SMP" = "y";
+  "CONFIG_X86_FEATURE_NAMES" = "y";
+  "CONFIG_IOSF_MBI" = "m";
+  "CONFIG_X86_SUPPORTS_MEMORY_FAILURE" = "y";
+  "CONFIG_SCHED_OMIT_FRAME_POINTER" = "y";
+  "CONFIG_NO_BOOTMEM" = "y";
+  "CONFIG_MEMTEST" = "y";
+  "CONFIG_MCORE2" = "y";
+  "CONFIG_X86_INTERNODE_CACHE_SHIFT" = "6";
+  "CONFIG_X86_L1_CACHE_SHIFT" = "6";
+  "CONFIG_X86_INTEL_USERCOPY" = "y";
+  "CONFIG_X86_USE_PPRO_CHECKSUM" = "y";
+  "CONFIG_X86_P6_NOP" = "y";
+  "CONFIG_X86_TSC" = "y";
+  "CONFIG_X86_CMPXCHG64" = "y";
+  "CONFIG_X86_CMOV" = "y";
+  "CONFIG_X86_MINIMUM_CPU_FAMILY" = "64";
+  "CONFIG_X86_DEBUGCTLMSR" = "y";
+  "CONFIG_CPU_SUP_INTEL" = "y";
+  "CONFIG_CPU_SUP_AMD" = "y";
+  "CONFIG_CPU_SUP_CENTAUR" = "y";
+  "CONFIG_HPET_TIMER" = "y";
+  "CONFIG_HPET_EMULATE_RTC" = "y";
+  "CONFIG_DMI" = "y";
+  "CONFIG_GART_IOMMU" = "y";
+  "CONFIG_SWIOTLB" = "y";
+  "CONFIG_IOMMU_HELPER" = "y";
+  "CONFIG_NR_CPUS" = "8";
+  "CONFIG_SCHED_SMT" = "y";
+  "CONFIG_SCHED_MC" = "y";
+  "CONFIG_PREEMPT" = "y";
+  "CONFIG_PREEMPT_COUNT" = "y";
+  "CONFIG_X86_UP_APIC_MSI" = "y";
+  "CONFIG_X86_LOCAL_APIC" = "y";
+  "CONFIG_X86_IO_APIC" = "y";
+  "CONFIG_X86_MCE" = "y";
+  "CONFIG_X86_MCE_INTEL" = "y";
+  "CONFIG_X86_MCE_THRESHOLD" = "y";
+  "CONFIG_X86_THERMAL_VECTOR" = "y";
+  "CONFIG_X86_16BIT" = "y";
+  "CONFIG_X86_ESPFIX64" = "y";
+  "CONFIG_X86_VSYSCALL_EMULATION" = "y";
+  "CONFIG_MICROCODE" = "y";
+  "CONFIG_MICROCODE_INTEL" = "y";
+  "CONFIG_MICROCODE_OLD_INTERFACE" = "y";
+  "CONFIG_MICROCODE_INTEL_EARLY" = "y";
+  "CONFIG_MICROCODE_EARLY" = "y";
+  "CONFIG_X86_MSR" = "m";
+  "CONFIG_X86_CPUID" = "m";
+  "CONFIG_ARCH_PHYS_ADDR_T_64BIT" = "y";
+  "CONFIG_ARCH_DMA_ADDR_T_64BIT" = "y";
+  "CONFIG_DIRECT_GBPAGES" = "y";
+  "CONFIG_ARCH_SPARSEMEM_ENABLE" = "y";
+  "CONFIG_ARCH_SPARSEMEM_DEFAULT" = "y";
+  "CONFIG_ARCH_SELECT_MEMORY_MODEL" = "y";
+  "CONFIG_ILLEGAL_POINTER_VALUE" = "0xdead000000000000";
+  "CONFIG_SELECT_MEMORY_MODEL" = "y";
+  "CONFIG_SPARSEMEM_MANUAL" = "y";
+  "CONFIG_SPARSEMEM" = "y";
+  "CONFIG_HAVE_MEMORY_PRESENT" = "y";
+  "CONFIG_SPARSEMEM_EXTREME" = "y";
+  "CONFIG_SPARSEMEM_VMEMMAP_ENABLE" = "y";
+  "CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER" = "y";
+  "CONFIG_SPARSEMEM_VMEMMAP" = "y";
+  "CONFIG_HAVE_MEMBLOCK" = "y";
+  "CONFIG_HAVE_MEMBLOCK_NODE_MAP" = "y";
+  "CONFIG_ARCH_DISCARD_MEMBLOCK" = "y";
+  "CONFIG_MEMORY_ISOLATION" = "y";
+  "CONFIG_PAGEFLAGS_EXTENDED" = "y";
+  "CONFIG_SPLIT_PTLOCK_CPUS" = "4";
+  "CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK" = "y";
+  "CONFIG_MEMORY_BALLOON" = "y";
+  "CONFIG_BALLOON_COMPACTION" = "y";
+  "CONFIG_COMPACTION" = "y";
+  "CONFIG_MIGRATION" = "y";
+  "CONFIG_PHYS_ADDR_T_64BIT" = "y";
+  "CONFIG_ZONE_DMA_FLAG" = "1";
+  "CONFIG_BOUNCE" = "y";
+  "CONFIG_VIRT_TO_BUS" = "y";
+  "CONFIG_MMU_NOTIFIER" = "y";
+  "CONFIG_KSM" = "y";
+  "CONFIG_DEFAULT_MMAP_MIN_ADDR" = "65536";
+  "CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE" = "y";
+  "CONFIG_MEMORY_FAILURE" = "y";
+  "CONFIG_TRANSPARENT_HUGEPAGE" = "y";
+  "CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS" = "y";
+  "CONFIG_CLEANCACHE" = "y";
+  "CONFIG_FRONTSWAP" = "y";
+  "CONFIG_ZSWAP" = "y";
+  "CONFIG_ZPOOL" = "y";
+  "CONFIG_ZBUD" = "y";
+  "CONFIG_ZSMALLOC" = "y";
+  "CONFIG_GENERIC_EARLY_IOREMAP" = "y";
+  "CONFIG_X86_RESERVE_LOW" = "64";
+  "CONFIG_MTRR" = "y";
+  "CONFIG_MTRR_SANITIZER" = "y";
+  "CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT" = "0";
+  "CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT" = "1";
+  "CONFIG_X86_PAT" = "y";
+  "CONFIG_ARCH_USES_PG_UNCACHED" = "y";
+  "CONFIG_ARCH_RANDOM" = "y";
+  "CONFIG_X86_SMAP" = "y";
+  "CONFIG_SECCOMP" = "y";
+  "CONFIG_HZ_1000" = "y";
+  "CONFIG_HZ" = "1000";
+  "CONFIG_SCHED_HRTICK" = "y";
+  "CONFIG_KEXEC" = "y";
+  "CONFIG_KEXEC_FILE" = "y";
+  "CONFIG_PHYSICAL_START" = "0x1000000";
+  "CONFIG_PHYSICAL_ALIGN" = "0x1000000";
+  "CONFIG_HAVE_LIVEPATCH" = "y";
+  "CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG" = "y";
+  "CONFIG_PM" = "y";
+  "CONFIG_ACPI" = "y";
+  "CONFIG_ACPI_LEGACY_TABLES_LOOKUP" = "y";
+  "CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC" = "y";
+  "CONFIG_ACPI_BUTTON" = "y";
+  "CONFIG_ACPI_VIDEO" = "y";
+  "CONFIG_ACPI_FAN" = "y";
+  "CONFIG_ACPI_DOCK" = "y";
+  "CONFIG_ACPI_PROCESSOR" = "y";
+  "CONFIG_ACPI_THERMAL" = "y";
+  "CONFIG_ACPI_CUSTOM_DSDT_FILE" = "";
+  "CONFIG_ACPI_INITRD_TABLE_OVERRIDE" = "y";
+  "CONFIG_X86_PM_TIMER" = "y";
+  "CONFIG_ACPI_HOTPLUG_IOAPIC" = "y";
+  "CONFIG_ACPI_HED" = "y";
+  "CONFIG_HAVE_ACPI_APEI" = "y";
+  "CONFIG_HAVE_ACPI_APEI_NMI" = "y";
+  "CONFIG_ACPI_EXTLOG" = "m";
+  "CONFIG_CPU_IDLE" = "y";
+  "CONFIG_CPU_IDLE_GOV_LADDER" = "y";
+  "CONFIG_CPU_IDLE_GOV_MENU" = "y";
+  "CONFIG_INTEL_IDLE" = "y";
+  "CONFIG_PCI" = "y";
+  "CONFIG_PCI_DIRECT" = "y";
+  "CONFIG_PCI_MMCONFIG" = "y";
+  "CONFIG_PCI_DOMAINS" = "y";
+  "CONFIG_PCIEPORTBUS" = "y";
+  "CONFIG_PCIEAER" = "y";
+  "CONFIG_PCIEASPM" = "y";
+  "CONFIG_PCIEASPM_PERFORMANCE" = "y";
+  "CONFIG_PCIE_PME" = "y";
+  "CONFIG_PCI_MSI" = "y";
+  "CONFIG_HT_IRQ" = "y";
+  "CONFIG_PCI_LABEL" = "y";
+  "CONFIG_ISA_DMA_API" = "y";
+  "CONFIG_AMD_NB" = "y";
+  "CONFIG_BINFMT_ELF" = "y";
+  "CONFIG_COMPAT_BINFMT_ELF" = "y";
+  "CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE" = "y";
+  "CONFIG_BINFMT_SCRIPT" = "y";
+  "CONFIG_BINFMT_MISC" = "y";
+  "CONFIG_COREDUMP" = "y";
+  "CONFIG_IA32_EMULATION" = "y";
+  "CONFIG_X86_X32" = "y";
+  "CONFIG_COMPAT" = "y";
+  "CONFIG_COMPAT_FOR_U64_ALIGNMENT" = "y";
+  "CONFIG_SYSVIPC_COMPAT" = "y";
+  "CONFIG_KEYS_COMPAT" = "y";
+  "CONFIG_X86_DEV_DMA_OPS" = "y";
+  "CONFIG_PMC_ATOM" = "y";
+  "CONFIG_NET" = "y";
+  "CONFIG_PACKET" = "y";
+  "CONFIG_PACKET_DIAG" = "m";
+  "CONFIG_UNIX" = "y";
+  "CONFIG_UNIX_DIAG" = "y";
+  "CONFIG_XFRM" = "y";
+  "CONFIG_XFRM_ALGO" = "y";
+  "CONFIG_NET_KEY" = "y";
+  "CONFIG_INET" = "y";
+  "CONFIG_IP_MULTICAST" = "y";
+  "CONFIG_IP_ROUTE_CLASSID" = "y";
+  "CONFIG_NET_IP_TUNNEL" = "m";
+  "CONFIG_NET_UDP_TUNNEL" = "m";
+  "CONFIG_NET_FOU" = "m";
+  "CONFIG_GENEVE" = "m";
+  "CONFIG_INET_TUNNEL" = "m";
+  "CONFIG_INET_LRO" = "y";
+  "CONFIG_INET_DIAG" = "y";
+  "CONFIG_INET_TCP_DIAG" = "y";
+  "CONFIG_INET_UDP_DIAG" = "y";
+  "CONFIG_TCP_CONG_CUBIC" = "y";
+  "CONFIG_DEFAULT_TCP_CONG" = "cubic";
+  "CONFIG_IPV6" = "y";
+  "CONFIG_IPV6_ROUTER_PREF" = "y";
+  "CONFIG_INET6_TUNNEL" = "m";
+  "CONFIG_IPV6_SIT" = "m";
+  "CONFIG_IPV6_NDISC_NODETYPE" = "y";
+  "CONFIG_IPV6_TUNNEL" = "m";
+  "CONFIG_IPV6_GRE" = "m";
+  "CONFIG_NET_PTP_CLASSIFY" = "y";
+  "CONFIG_IP_SCTP" = "m";
+  "CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5" = "y";
+  "CONFIG_SCTP_COOKIE_HMAC_MD5" = "y";
+  "CONFIG_HAVE_NET_DSA" = "y";
+  "CONFIG_NET_SCHED" = "y";
+  "CONFIG_NET_SCH_CBQ" = "m";
+  "CONFIG_NET_SCH_HTB" = "m";
+  "CONFIG_NET_SCH_HFSC" = "m";
+  "CONFIG_NET_SCH_PRIO" = "m";
+  "CONFIG_NET_SCH_MULTIQ" = "m";
+  "CONFIG_NET_SCH_RED" = "m";
+  "CONFIG_NET_SCH_SFB" = "m";
+  "CONFIG_NET_SCH_SFQ" = "m";
+  "CONFIG_NET_SCH_TEQL" = "m";
+  "CONFIG_NET_SCH_TBF" = "m";
+  "CONFIG_NET_SCH_GRED" = "m";
+  "CONFIG_NET_SCH_DSMARK" = "m";
+  "CONFIG_NET_SCH_NETEM" = "m";
+  "CONFIG_NET_SCH_DRR" = "m";
+  "CONFIG_NET_SCH_MQPRIO" = "m";
+  "CONFIG_NET_SCH_CHOKE" = "m";
+  "CONFIG_NET_SCH_QFQ" = "m";
+  "CONFIG_NET_SCH_CODEL" = "m";
+  "CONFIG_NET_SCH_FQ_CODEL" = "m";
+  "CONFIG_NET_SCH_FQ" = "m";
+  "CONFIG_NET_SCH_HHF" = "m";
+  "CONFIG_NET_SCH_PIE" = "m";
+  "CONFIG_NET_SCH_INGRESS" = "m";
+  "CONFIG_NET_SCH_PLUG" = "m";
+  "CONFIG_NET_CLS" = "y";
+  "CONFIG_NET_CLS_BASIC" = "m";
+  "CONFIG_NET_CLS_TCINDEX" = "m";
+  "CONFIG_NET_CLS_ROUTE4" = "m";
+  "CONFIG_NET_CLS_FW" = "m";
+  "CONFIG_NET_CLS_U32" = "m";
+  "CONFIG_NET_CLS_RSVP" = "m";
+  "CONFIG_NET_CLS_RSVP6" = "m";
+  "CONFIG_NET_CLS_FLOW" = "m";
+  "CONFIG_NET_CLS_CGROUP" = "m";
+  "CONFIG_NET_CLS_BPF" = "m";
+  "CONFIG_NET_EMATCH" = "y";
+  "CONFIG_NET_EMATCH_STACK" = "32";
+  "CONFIG_NET_EMATCH_CMP" = "m";
+  "CONFIG_NET_EMATCH_NBYTE" = "m";
+  "CONFIG_NET_EMATCH_U32" = "m";
+  "CONFIG_NET_EMATCH_META" = "m";
+  "CONFIG_NET_EMATCH_TEXT" = "m";
+  "CONFIG_NET_CLS_ACT" = "y";
+  "CONFIG_NET_ACT_POLICE" = "m";
+  "CONFIG_NET_ACT_GACT" = "m";
+  "CONFIG_NET_ACT_MIRRED" = "m";
+  "CONFIG_NET_ACT_NAT" = "m";
+  "CONFIG_NET_ACT_PEDIT" = "m";
+  "CONFIG_NET_ACT_SIMP" = "m";
+  "CONFIG_NET_ACT_SKBEDIT" = "m";
+  "CONFIG_NET_ACT_CSUM" = "m";
+  "CONFIG_NET_ACT_VLAN" = "m";
+  "CONFIG_NET_ACT_BPF" = "m";
+  "CONFIG_NET_SCH_FIFO" = "y";
+  "CONFIG_DNS_RESOLVER" = "y";
+  "CONFIG_VSOCKETS" = "y";
+  "CONFIG_NETLINK_MMAP" = "y";
+  "CONFIG_NETLINK_DIAG" = "m";
+  "CONFIG_RPS" = "y";
+  "CONFIG_RFS_ACCEL" = "y";
+  "CONFIG_XPS" = "y";
+  "CONFIG_CGROUP_NET_CLASSID" = "y";
+  "CONFIG_NET_RX_BUSY_POLL" = "y";
+  "CONFIG_BQL" = "y";
+  "CONFIG_BPF_JIT" = "y";
+  "CONFIG_NET_FLOW_LIMIT" = "y";
+  "CONFIG_HAVE_BPF_JIT" = "y";
+  "CONFIG_DEVTMPFS" = "y";
+  "CONFIG_DEVTMPFS_MOUNT" = "y";
+  "CONFIG_FW_LOADER" = "y";
+  "CONFIG_EXTRA_FIRMWARE" = "";
+  "CONFIG_FW_LOADER_USER_HELPER" = "y";
+  "CONFIG_ALLOW_DEV_COREDUMP" = "y";
+  "CONFIG_GENERIC_CPU_AUTOPROBE" = "y";
+  "CONFIG_DMA_SHARED_BUFFER" = "y";
+  "CONFIG_CONNECTOR" = "y";
+  "CONFIG_PROC_EVENTS" = "y";
+  "CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT" = "y";
+  "CONFIG_PNP" = "y";
+  "CONFIG_PNPACPI" = "y";
+  "CONFIG_BLK_DEV" = "y";
+  "CONFIG_BLK_DEV_NULL_BLK" = "m";
+  "CONFIG_ZRAM" = "y";
+  "CONFIG_ZRAM_LZ4_COMPRESS" = "y";
+  "CONFIG_BLK_DEV_LOOP" = "y";
+  "CONFIG_BLK_DEV_LOOP_MIN_COUNT" = "0";
+  "CONFIG_BLK_DEV_CRYPTOLOOP" = "m";
+  "CONFIG_CDROM_PKTCDVD" = "y";
+  "CONFIG_CDROM_PKTCDVD_BUFFERS" = "8";
+  "CONFIG_VIRTIO_BLK" = "m";
+  "CONFIG_EEPROM_AT24" = "m";
+  "CONFIG_EEPROM_93CX6" = "m";
+  "CONFIG_HAVE_IDE" = "y";
+  "CONFIG_SCSI_MOD" = "y";
+  "CONFIG_SCSI" = "y";
+  "CONFIG_SCSI_DMA" = "y";
+  "CONFIG_SCSI_MQ_DEFAULT" = "y";
+  "CONFIG_BLK_DEV_SD" = "y";
+  "CONFIG_BLK_DEV_SR" = "y";
+  "CONFIG_CHR_DEV_SG" = "y";
+  "CONFIG_ATA" = "y";
+  "CONFIG_ATA_ACPI" = "y";
+  "CONFIG_SATA_AHCI" = "y";
+  "CONFIG_ATA_SFF" = "y";
+  "CONFIG_ATA_BMDMA" = "y";
+  "CONFIG_ATA_PIIX" = "y";
+  "CONFIG_MD" = "y";
+  "CONFIG_BLK_DEV_DM_BUILTIN" = "y";
+  "CONFIG_BLK_DEV_DM" = "y";
+  "CONFIG_DM_CRYPT" = "y";
+  "CONFIG_DM_UEVENT" = "y";
+  "CONFIG_NETDEVICES" = "y";
+  "CONFIG_NET_CORE" = "y";
+  "CONFIG_VXLAN" = "m";
+  "CONFIG_VIRTIO_NET" = "m";
+  "CONFIG_NLMON" = "m";
+  "CONFIG_VHOST_NET" = "m";
+  "CONFIG_VHOST_RING" = "m";
+  "CONFIG_VHOST" = "m";
+  "CONFIG_ETHERNET" = "y";
+  "CONFIG_NET_VENDOR_BROADCOM" = "y";
+  "CONFIG_TIGON3" = "y";
+  "CONFIG_PHYLIB" = "y";
+  "CONFIG_USB_NET_DRIVERS" = "m";
+  "CONFIG_INPUT" = "y";
+  "CONFIG_INPUT_FF_MEMLESS" = "y";
+  "CONFIG_INPUT_MATRIXKMAP" = "m";
+  "CONFIG_INPUT_MOUSEDEV" = "y";
+  "CONFIG_INPUT_MOUSEDEV_SCREEN_X" = "1024";
+  "CONFIG_INPUT_MOUSEDEV_SCREEN_Y" = "768";
+  "CONFIG_INPUT_JOYDEV" = "y";
+  "CONFIG_INPUT_EVDEV" = "y";
+  "CONFIG_INPUT_KEYBOARD" = "y";
+  "CONFIG_KEYBOARD_ATKBD" = "y";
+  "CONFIG_INPUT_MOUSE" = "y";
+  "CONFIG_INPUT_TABLET" = "y";
+  "CONFIG_SERIO" = "y";
+  "CONFIG_ARCH_MIGHT_HAVE_PC_SERIO" = "y";
+  "CONFIG_SERIO_I8042" = "y";
+  "CONFIG_SERIO_LIBPS2" = "y";
+  "CONFIG_TTY" = "y";
+  "CONFIG_VT" = "y";
+  "CONFIG_CONSOLE_TRANSLATIONS" = "y";
+  "CONFIG_VT_CONSOLE" = "y";
+  "CONFIG_HW_CONSOLE" = "y";
+  "CONFIG_VT_HW_CONSOLE_BINDING" = "y";
+  "CONFIG_UNIX98_PTYS" = "y";
+  "CONFIG_DEVPTS_MULTIPLE_INSTANCES" = "y";
+  "CONFIG_DEVMEM" = "y";
+  "CONFIG_DEVKMEM" = "y";
+  "CONFIG_HVC_DRIVER" = "y";
+  "CONFIG_VIRTIO_CONSOLE" = "m";
+  "CONFIG_NVRAM" = "m";
+  "CONFIG_HPET" = "y";
+  "CONFIG_HPET_MMAP" = "y";
+  "CONFIG_HPET_MMAP_DEFAULT" = "y";
+  "CONFIG_HANGCHECK_TIMER" = "m";
+  "CONFIG_TCG_TPM" = "y";
+  "CONFIG_TCG_TIS" = "y";
+  "CONFIG_DEVPORT" = "y";
+  "CONFIG_I2C" = "y";
+  "CONFIG_I2C_BOARDINFO" = "y";
+  "CONFIG_I2C_CHARDEV" = "y";
+  "CONFIG_I2C_MUX" = "y";
+  "CONFIG_I2C_HELPER_AUTO" = "y";
+  "CONFIG_I2C_ALGOBIT" = "y";
+  "CONFIG_I2C_I801" = "y";
+  "CONFIG_PPS" = "y";
+  "CONFIG_PTP_1588_CLOCK" = "y";
+  "CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB" = "y";
+  "CONFIG_POWER_SUPPLY" = "y";
+  "CONFIG_POWER_RESET" = "y";
+  "CONFIG_HWMON" = "y";
+  "CONFIG_SENSORS_CORETEMP" = "y";
+  "CONFIG_SENSORS_LM90" = "y";
+  "CONFIG_THERMAL" = "y";
+  "CONFIG_THERMAL_HWMON" = "y";
+  "CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE" = "y";
+  "CONFIG_THERMAL_GOV_FAIR_SHARE" = "y";
+  "CONFIG_THERMAL_GOV_STEP_WISE" = "y";
+  "CONFIG_THERMAL_GOV_BANG_BANG" = "y";
+  "CONFIG_THERMAL_GOV_USER_SPACE" = "y";
+  "CONFIG_INTEL_POWERCLAMP" = "m";
+  "CONFIG_X86_PKG_TEMP_THERMAL" = "m";
+  "CONFIG_SSB_POSSIBLE" = "y";
+  "CONFIG_BCMA_POSSIBLE" = "y";
+  "CONFIG_MFD_CORE" = "y";
+  "CONFIG_LPC_ICH" = "y";
+  "CONFIG_MEDIA_SUPPORT" = "y";
+  "CONFIG_MEDIA_CAMERA_SUPPORT" = "y";
+  "CONFIG_VIDEO_DEV" = "y";
+  "CONFIG_VIDEO_V4L2" = "y";
+  "CONFIG_VIDEOBUF2_CORE" = "m";
+  "CONFIG_VIDEOBUF2_MEMOPS" = "m";
+  "CONFIG_VIDEOBUF2_VMALLOC" = "m";
+  "CONFIG_MEDIA_USB_SUPPORT" = "y";
+  "CONFIG_USB_VIDEO_CLASS" = "m";
+  "CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV" = "y";
+  "CONFIG_AGP" = "y";
+  "CONFIG_AGP_INTEL" = "y";
+  "CONFIG_INTEL_GTT" = "y";
+  "CONFIG_VGA_ARB" = "y";
+  "CONFIG_VGA_ARB_MAX_GPUS" = "16";
+  "CONFIG_DRM" = "y";
+  "CONFIG_DRM_KMS_HELPER" = "y";
+  "CONFIG_DRM_KMS_FB_HELPER" = "y";
+  "CONFIG_DRM_TTM" = "y";
+  "CONFIG_DRM_NOUVEAU" = "y";
+  "CONFIG_NOUVEAU_DEBUG" = "5";
+  "CONFIG_NOUVEAU_DEBUG_DEFAULT" = "3";
+  "CONFIG_DRM_NOUVEAU_BACKLIGHT" = "y";
+  "CONFIG_DRM_BOCHS" = "m";
+  "CONFIG_FB" = "y";
+  "CONFIG_FB_CMDLINE" = "y";
+  "CONFIG_FB_CFB_FILLRECT" = "y";
+  "CONFIG_FB_CFB_COPYAREA" = "y";
+  "CONFIG_FB_CFB_IMAGEBLIT" = "y";
+  "CONFIG_FB_SYS_FILLRECT" = "m";
+  "CONFIG_FB_SYS_COPYAREA" = "m";
+  "CONFIG_FB_SYS_IMAGEBLIT" = "m";
+  "CONFIG_FB_BACKLIGHT" = "y";
+  "CONFIG_FB_MODE_HELPERS" = "y";
+  "CONFIG_FB_TILEBLITTING" = "y";
+  "CONFIG_BACKLIGHT_LCD_SUPPORT" = "y";
+  "CONFIG_BACKLIGHT_CLASS_DEVICE" = "y";
+  "CONFIG_HDMI" = "y";
+  "CONFIG_VGA_CONSOLE" = "y";
+  "CONFIG_VGACON_SOFT_SCROLLBACK" = "y";
+  "CONFIG_VGACON_SOFT_SCROLLBACK_SIZE" = "1024";
+  "CONFIG_DUMMY_CONSOLE" = "y";
+  "CONFIG_DUMMY_CONSOLE_COLUMNS" = "80";
+  "CONFIG_DUMMY_CONSOLE_ROWS" = "25";
+  "CONFIG_FRAMEBUFFER_CONSOLE" = "y";
+  "CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY" = "y";
+  "CONFIG_SOUND" = "y";
+  "CONFIG_SOUND_OSS_CORE" = "y";
+  "CONFIG_SOUND_OSS_CORE_PRECLAIM" = "y";
+  "CONFIG_SND" = "y";
+  "CONFIG_SND_TIMER" = "y";
+  "CONFIG_SND_PCM" = "y";
+  "CONFIG_SND_HWDEP" = "y";
+  "CONFIG_SND_RAWMIDI" = "y";
+  "CONFIG_SND_JACK" = "y";
+  "CONFIG_SND_SEQUENCER" = "y";
+  "CONFIG_SND_SEQ_DUMMY" = "m";
+  "CONFIG_SND_OSSEMUL" = "y";
+  "CONFIG_SND_MIXER_OSS" = "y";
+  "CONFIG_SND_PCM_OSS" = "y";
+  "CONFIG_SND_PCM_OSS_PLUGINS" = "y";
+  "CONFIG_SND_SEQUENCER_OSS" = "y";
+  "CONFIG_SND_HRTIMER" = "y";
+  "CONFIG_SND_SEQ_HRTIMER_DEFAULT" = "y";
+  "CONFIG_SND_DYNAMIC_MINORS" = "y";
+  "CONFIG_SND_MAX_CARDS" = "32";
+  "CONFIG_SND_VMASTER" = "y";
+  "CONFIG_SND_KCTL_JACK" = "y";
+  "CONFIG_SND_DMA_SGBUF" = "y";
+  "CONFIG_SND_RAWMIDI_SEQ" = "y";
+  "CONFIG_SND_PCI" = "y";
+  "CONFIG_SND_HDA" = "y";
+  "CONFIG_SND_HDA_INTEL" = "y";
+  "CONFIG_SND_HDA_PREALLOC_SIZE" = "64";
+  "CONFIG_SND_HDA_INPUT_BEEP" = "y";
+  "CONFIG_SND_HDA_INPUT_BEEP_MODE" = "0";
+  "CONFIG_SND_HDA_INPUT_JACK" = "y";
+  "CONFIG_SND_HDA_CODEC_SIGMATEL" = "y";
+  "CONFIG_SND_HDA_GENERIC" = "y";
+  "CONFIG_SND_HDA_POWER_SAVE_DEFAULT" = "0";
+  "CONFIG_SND_USB" = "y";
+  "CONFIG_SND_USB_AUDIO" = "y";
+  "CONFIG_HID" = "y";
+  "CONFIG_HIDRAW" = "y";
+  "CONFIG_UHID" = "m";
+  "CONFIG_HID_GENERIC" = "y";
+  "CONFIG_HID_A4TECH" = "y";
+  "CONFIG_HID_APPLE" = "y";
+  "CONFIG_HID_BELKIN" = "y";
+  "CONFIG_HID_CHERRY" = "y";
+  "CONFIG_HID_CHICONY" = "y";
+  "CONFIG_HID_CYPRESS" = "y";
+  "CONFIG_HID_EZKEY" = "y";
+  "CONFIG_HID_KENSINGTON" = "y";
+  "CONFIG_HID_LOGITECH" = "y";
+  "CONFIG_HID_MICROSOFT" = "y";
+  "CONFIG_HID_MONTEREY" = "y";
+  "CONFIG_HID_GREENASIA" = "y";
+  "CONFIG_GREENASIA_FF" = "y";
+  "CONFIG_HID_SENSOR_HUB" = "m";
+  "CONFIG_USB_HID" = "y";
+  "CONFIG_USB_HIDDEV" = "y";
+  "CONFIG_I2C_HID" = "m";
+  "CONFIG_USB_OHCI_LITTLE_ENDIAN" = "y";
+  "CONFIG_USB_SUPPORT" = "y";
+  "CONFIG_USB_COMMON" = "y";
+  "CONFIG_USB_ARCH_HAS_HCD" = "y";
+  "CONFIG_USB" = "y";
+  "CONFIG_USB_ANNOUNCE_NEW_DEVICES" = "y";
+  "CONFIG_USB_DEFAULT_PERSIST" = "y";
+  "CONFIG_USB_MON" = "m";
+  "CONFIG_USB_EHCI_HCD" = "y";
+  "CONFIG_USB_EHCI_ROOT_HUB_TT" = "y";
+  "CONFIG_USB_EHCI_TT_NEWSCHED" = "y";
+  "CONFIG_USB_EHCI_PCI" = "y";
+  "CONFIG_USB_UHCI_HCD" = "y";
+  "CONFIG_USB_STORAGE" = "y";
+  "CONFIG_USB_STORAGE_REALTEK" = "m";
+  "CONFIG_REALTEK_AUTOPM" = "y";
+  "CONFIG_USB_STORAGE_DATAFAB" = "m";
+  "CONFIG_USB_STORAGE_FREECOM" = "m";
+  "CONFIG_USB_STORAGE_ISD200" = "m";
+  "CONFIG_USB_STORAGE_USBAT" = "m";
+  "CONFIG_USB_STORAGE_SDDR09" = "m";
+  "CONFIG_USB_STORAGE_SDDR55" = "m";
+  "CONFIG_USB_STORAGE_JUMPSHOT" = "m";
+  "CONFIG_USB_STORAGE_ALAUDA" = "m";
+  "CONFIG_USB_STORAGE_ONETOUCH" = "m";
+  "CONFIG_USB_STORAGE_KARMA" = "m";
+  "CONFIG_USB_STORAGE_CYPRESS_ATACB" = "m";
+  "CONFIG_USB_STORAGE_ENE_UB6250" = "m";
+  "CONFIG_USB_UAS" = "m";
+  "CONFIG_USB_MDC800" = "m";
+  "CONFIG_USB_MICROTEK" = "m";
+  "CONFIG_USBIP_CORE" = "m";
+  "CONFIG_USBIP_VHCI_HCD" = "m";
+  "CONFIG_USBIP_HOST" = "m";
+  "CONFIG_USB_SERIAL" = "m";
+  "CONFIG_USB_SERIAL_GENERIC" = "y";
+  "CONFIG_USB_SERIAL_SIMPLE" = "m";
+  "CONFIG_USB_SERIAL_AIRCABLE" = "m";
+  "CONFIG_USB_SERIAL_ARK3116" = "m";
+  "CONFIG_USB_SERIAL_BELKIN" = "m";
+  "CONFIG_USB_SERIAL_CH341" = "m";
+  "CONFIG_USB_SERIAL_WHITEHEAT" = "m";
+  "CONFIG_USB_SERIAL_DIGI_ACCELEPORT" = "m";
+  "CONFIG_USB_SERIAL_CP210X" = "m";
+  "CONFIG_USB_SERIAL_CYPRESS_M8" = "m";
+  "CONFIG_USB_SERIAL_EMPEG" = "m";
+  "CONFIG_USB_SERIAL_FTDI_SIO" = "m";
+  "CONFIG_USB_SERIAL_VISOR" = "m";
+  "CONFIG_USB_SERIAL_IPAQ" = "m";
+  "CONFIG_USB_SERIAL_IR" = "m";
+  "CONFIG_USB_SERIAL_EDGEPORT" = "m";
+  "CONFIG_USB_SERIAL_EDGEPORT_TI" = "m";
+  "CONFIG_USB_SERIAL_F81232" = "m";
+  "CONFIG_USB_SERIAL_GARMIN" = "m";
+  "CONFIG_USB_SERIAL_IPW" = "m";
+  "CONFIG_USB_SERIAL_IUU" = "m";
+  "CONFIG_USB_SERIAL_KEYSPAN_PDA" = "m";
+  "CONFIG_USB_SERIAL_KEYSPAN" = "m";
+  "CONFIG_USB_SERIAL_KLSI" = "m";
+  "CONFIG_USB_SERIAL_KOBIL_SCT" = "m";
+  "CONFIG_USB_SERIAL_MCT_U232" = "m";
+  "CONFIG_USB_SERIAL_METRO" = "m";
+  "CONFIG_USB_SERIAL_MOS7720" = "m";
+  "CONFIG_USB_SERIAL_MOS7840" = "m";
+  "CONFIG_USB_SERIAL_MXUPORT" = "m";
+  "CONFIG_USB_SERIAL_NAVMAN" = "m";
+  "CONFIG_USB_SERIAL_PL2303" = "m";
+  "CONFIG_USB_SERIAL_OTI6858" = "m";
+  "CONFIG_USB_SERIAL_QCAUX" = "m";
+  "CONFIG_USB_SERIAL_QUALCOMM" = "m";
+  "CONFIG_USB_SERIAL_SPCP8X5" = "m";
+  "CONFIG_USB_SERIAL_SAFE" = "m";
+  "CONFIG_USB_SERIAL_SIERRAWIRELESS" = "m";
+  "CONFIG_USB_SERIAL_SYMBOL" = "m";
+  "CONFIG_USB_SERIAL_TI" = "m";
+  "CONFIG_USB_SERIAL_CYBERJACK" = "m";
+  "CONFIG_USB_SERIAL_XIRCOM" = "m";
+  "CONFIG_USB_SERIAL_WWAN" = "m";
+  "CONFIG_USB_SERIAL_OPTION" = "m";
+  "CONFIG_USB_SERIAL_OMNINET" = "m";
+  "CONFIG_USB_SERIAL_OPTICON" = "m";
+  "CONFIG_USB_SERIAL_XSENS_MT" = "m";
+  "CONFIG_USB_SERIAL_WISHBONE" = "m";
+  "CONFIG_USB_SERIAL_SSU100" = "m";
+  "CONFIG_USB_SERIAL_QT2" = "m";
+  "CONFIG_USB_EZUSB_FX2" = "m";
+  "CONFIG_NEW_LEDS" = "y";
+  "CONFIG_LEDS_CLASS" = "y";
+  "CONFIG_LEDS_CLASS_FLASH" = "m";
+  "CONFIG_EDAC" = "y";
+  "CONFIG_EDAC_MM_EDAC" = "y";
+  "CONFIG_EDAC_I82975X" = "y";
+  "CONFIG_RTC_LIB" = "y";
+  "CONFIG_RTC_CLASS" = "y";
+  "CONFIG_RTC_HCTOSYS" = "y";
+  "CONFIG_RTC_SYSTOHC" = "y";
+  "CONFIG_RTC_HCTOSYS_DEVICE" = "rtc0";
+  "CONFIG_RTC_INTF_SYSFS" = "y";
+  "CONFIG_RTC_INTF_PROC" = "y";
+  "CONFIG_RTC_INTF_DEV" = "y";
+  "CONFIG_RTC_DRV_CMOS" = "y";
+  "CONFIG_VIRT_DRIVERS" = "y";
+  "CONFIG_VIRTIO" = "m";
+  "CONFIG_VIRTIO_PCI" = "m";
+  "CONFIG_VIRTIO_BALLOON" = "m";
+  "CONFIG_VIRTIO_MMIO" = "m";
+  "CONFIG_X86_PLATFORM_DEVICES" = "y";
+  "CONFIG_ACPI_WMI" = "y";
+  "CONFIG_MXM_WMI" = "y";
+  "CONFIG_CLKEVT_I8253" = "y";
+  "CONFIG_I8253_LOCK" = "y";
+  "CONFIG_CLKBLD_I8253" = "y";
+  "CONFIG_RAS" = "y";
+  "CONFIG_FIRMWARE_MEMMAP" = "y";
+  "CONFIG_DELL_RBU" = "y";
+  "CONFIG_DCDBAS" = "y";
+  "CONFIG_DMIID" = "y";
+  "CONFIG_DMI_SYSFS" = "y";
+  "CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK" = "y";
+  "CONFIG_UEFI_CPER" = "y";
+  "CONFIG_DCACHE_WORD_ACCESS" = "y";
+  "CONFIG_EXT2_FS" = "y";
+  "CONFIG_EXT2_FS_XATTR" = "y";
+  "CONFIG_EXT2_FS_POSIX_ACL" = "y";
+  "CONFIG_FS_MBCACHE" = "y";
+  "CONFIG_BTRFS_FS" = "y";
+  "CONFIG_BTRFS_FS_POSIX_ACL" = "y";
+  "CONFIG_FS_POSIX_ACL" = "y";
+  "CONFIG_EXPORTFS" = "y";
+  "CONFIG_FILE_LOCKING" = "y";
+  "CONFIG_FSNOTIFY" = "y";
+  "CONFIG_DNOTIFY" = "y";
+  "CONFIG_INOTIFY_USER" = "y";
+  "CONFIG_FANOTIFY" = "y";
+  "CONFIG_AUTOFS4_FS" = "y";
+  "CONFIG_FUSE_FS" = "y";
+  "CONFIG_CUSE" = "m";
+  "CONFIG_OVERLAY_FS" = "y";
+  "CONFIG_FSCACHE" = "m";
+  "CONFIG_CACHEFILES" = "m";
+  "CONFIG_ISO9660_FS" = "y";
+  "CONFIG_JOLIET" = "y";
+  "CONFIG_ZISOFS" = "y";
+  "CONFIG_UDF_FS" = "y";
+  "CONFIG_UDF_NLS" = "y";
+  "CONFIG_FAT_FS" = "m";
+  "CONFIG_MSDOS_FS" = "m";
+  "CONFIG_VFAT_FS" = "m";
+  "CONFIG_FAT_DEFAULT_CODEPAGE" = "437";
+  "CONFIG_FAT_DEFAULT_IOCHARSET" = "utf8";
+  "CONFIG_NTFS_FS" = "m";
+  "CONFIG_NTFS_RW" = "y";
+  "CONFIG_PROC_FS" = "y";
+  "CONFIG_PROC_SYSCTL" = "y";
+  "CONFIG_PROC_PAGE_MONITOR" = "y";
+  "CONFIG_KERNFS" = "y";
+  "CONFIG_SYSFS" = "y";
+  "CONFIG_TMPFS" = "y";
+  "CONFIG_TMPFS_POSIX_ACL" = "y";
+  "CONFIG_TMPFS_XATTR" = "y";
+  "CONFIG_CONFIGFS_FS" = "y";
+  "CONFIG_MISC_FILESYSTEMS" = "y";
+  "CONFIG_ECRYPT_FS" = "y";
+  "CONFIG_SQUASHFS" = "m";
+  "CONFIG_SQUASHFS_FILE_CACHE" = "y";
+  "CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU" = "y";
+  "CONFIG_SQUASHFS_XATTR" = "y";
+  "CONFIG_SQUASHFS_ZLIB" = "y";
+  "CONFIG_SQUASHFS_LZ4" = "y";
+  "CONFIG_SQUASHFS_LZO" = "y";
+  "CONFIG_SQUASHFS_XZ" = "y";
+  "CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE" = "3";
+  "CONFIG_NETWORK_FILESYSTEMS" = "y";
+  "CONFIG_NFS_FS" = "y";
+  "CONFIG_NFS_V3" = "y";
+  "CONFIG_NFS_V3_ACL" = "y";
+  "CONFIG_NFS_V4" = "y";
+  "CONFIG_NFS_USE_KERNEL_DNS" = "y";
+  "CONFIG_NFSD" = "y";
+  "CONFIG_NFSD_V2_ACL" = "y";
+  "CONFIG_NFSD_V3" = "y";
+  "CONFIG_NFSD_V3_ACL" = "y";
+  "CONFIG_NFSD_V4" = "y";
+  "CONFIG_GRACE_PERIOD" = "y";
+  "CONFIG_LOCKD" = "y";
+  "CONFIG_LOCKD_V4" = "y";
+  "CONFIG_NFS_ACL_SUPPORT" = "y";
+  "CONFIG_NFS_COMMON" = "y";
+  "CONFIG_SUNRPC" = "y";
+  "CONFIG_SUNRPC_GSS" = "y";
+  "CONFIG_RPCSEC_GSS_KRB5" = "m";
+  "CONFIG_CIFS" = "y";
+  "CONFIG_CIFS_XATTR" = "y";
+  "CONFIG_CIFS_POSIX" = "y";
+  "CONFIG_NLS" = "y";
+  "CONFIG_NLS_DEFAULT" = "ascii";
+  "CONFIG_NLS_CODEPAGE_437" = "m";
+  "CONFIG_NLS_CODEPAGE_737" = "m";
+  "CONFIG_NLS_CODEPAGE_775" = "m";
+  "CONFIG_NLS_CODEPAGE_850" = "m";
+  "CONFIG_NLS_CODEPAGE_852" = "m";
+  "CONFIG_NLS_CODEPAGE_855" = "m";
+  "CONFIG_NLS_CODEPAGE_857" = "m";
+  "CONFIG_NLS_CODEPAGE_860" = "m";
+  "CONFIG_NLS_CODEPAGE_861" = "m";
+  "CONFIG_NLS_CODEPAGE_862" = "m";
+  "CONFIG_NLS_CODEPAGE_863" = "m";
+  "CONFIG_NLS_CODEPAGE_864" = "m";
+  "CONFIG_NLS_CODEPAGE_865" = "m";
+  "CONFIG_NLS_CODEPAGE_866" = "m";
+  "CONFIG_NLS_CODEPAGE_869" = "m";
+  "CONFIG_NLS_CODEPAGE_936" = "m";
+  "CONFIG_NLS_CODEPAGE_950" = "m";
+  "CONFIG_NLS_CODEPAGE_932" = "m";
+  "CONFIG_NLS_CODEPAGE_949" = "m";
+  "CONFIG_NLS_CODEPAGE_874" = "m";
+  "CONFIG_NLS_ISO8859_8" = "m";
+  "CONFIG_NLS_CODEPAGE_1250" = "m";
+  "CONFIG_NLS_CODEPAGE_1251" = "m";
+  "CONFIG_NLS_ASCII" = "y";
+  "CONFIG_NLS_ISO8859_1" = "m";
+  "CONFIG_NLS_ISO8859_2" = "m";
+  "CONFIG_NLS_ISO8859_3" = "m";
+  "CONFIG_NLS_ISO8859_4" = "m";
+  "CONFIG_NLS_ISO8859_5" = "m";
+  "CONFIG_NLS_ISO8859_6" = "m";
+  "CONFIG_NLS_ISO8859_7" = "m";
+  "CONFIG_NLS_ISO8859_9" = "m";
+  "CONFIG_NLS_ISO8859_13" = "m";
+  "CONFIG_NLS_ISO8859_14" = "m";
+  "CONFIG_NLS_ISO8859_15" = "m";
+  "CONFIG_NLS_KOI8_R" = "m";
+  "CONFIG_NLS_KOI8_U" = "m";
+  "CONFIG_NLS_MAC_ROMAN" = "m";
+  "CONFIG_NLS_MAC_CELTIC" = "m";
+  "CONFIG_NLS_MAC_CENTEURO" = "m";
+  "CONFIG_NLS_MAC_CROATIAN" = "m";
+  "CONFIG_NLS_MAC_CYRILLIC" = "m";
+  "CONFIG_NLS_MAC_GAELIC" = "m";
+  "CONFIG_NLS_MAC_GREEK" = "m";
+  "CONFIG_NLS_MAC_ICELAND" = "m";
+  "CONFIG_NLS_MAC_INUIT" = "m";
+  "CONFIG_NLS_MAC_ROMANIAN" = "m";
+  "CONFIG_NLS_MAC_TURKISH" = "m";
+  "CONFIG_NLS_UTF8" = "y";
+  "CONFIG_DLM" = "m";
+  "CONFIG_TRACE_IRQFLAGS_SUPPORT" = "y";
+  "CONFIG_MESSAGE_LOGLEVEL_DEFAULT" = "4";
+  "CONFIG_FRAME_WARN" = "2048";
+  "CONFIG_ARCH_WANT_FRAME_POINTERS" = "y";
+  "CONFIG_MAGIC_SYSRQ" = "y";
+  "CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE" = "0x1";
+  "CONFIG_HAVE_DEBUG_KMEMLEAK" = "y";
+  "CONFIG_DEBUG_MEMORY_INIT" = "y";
+  "CONFIG_HAVE_DEBUG_STACKOVERFLOW" = "y";
+  "CONFIG_HAVE_ARCH_KMEMCHECK" = "y";
+  "CONFIG_HAVE_ARCH_KASAN" = "y";
+  "CONFIG_KASAN_SHADOW_OFFSET" = "0xdffffc0000000000";
+  "CONFIG_PANIC_ON_OOPS_VALUE" = "0";
+  "CONFIG_PANIC_TIMEOUT" = "0";
+  "CONFIG_DEBUG_BUGVERBOSE" = "y";
+  "CONFIG_RCU_CPU_STALL_TIMEOUT" = "60";
+  "CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS" = "y";
+  "CONFIG_USER_STACKTRACE_SUPPORT" = "y";
+  "CONFIG_HAVE_FUNCTION_TRACER" = "y";
+  "CONFIG_HAVE_FUNCTION_GRAPH_TRACER" = "y";
+  "CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST" = "y";
+  "CONFIG_HAVE_DYNAMIC_FTRACE" = "y";
+  "CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS" = "y";
+  "CONFIG_HAVE_FTRACE_MCOUNT_RECORD" = "y";
+  "CONFIG_HAVE_SYSCALL_TRACEPOINTS" = "y";
+  "CONFIG_HAVE_FENTRY" = "y";
+  "CONFIG_HAVE_C_RECORDMCOUNT" = "y";
+  "CONFIG_TRACING_SUPPORT" = "y";
+  "CONFIG_TEST_HEXDUMP" = "m";
+  "CONFIG_HAVE_ARCH_KGDB" = "y";
+  "CONFIG_STRICT_DEVMEM" = "y";
+  "CONFIG_X86_VERBOSE_BOOTUP" = "y";
+  "CONFIG_EARLY_PRINTK" = "y";
+  "CONFIG_DOUBLEFAULT" = "y";
+  "CONFIG_HAVE_MMIOTRACE_SUPPORT" = "y";
+  "CONFIG_IO_DELAY_TYPE_0X80" = "0";
+  "CONFIG_IO_DELAY_TYPE_0XED" = "1";
+  "CONFIG_IO_DELAY_TYPE_UDELAY" = "2";
+  "CONFIG_IO_DELAY_TYPE_NONE" = "3";
+  "CONFIG_IO_DELAY_0X80" = "y";
+  "CONFIG_DEFAULT_IO_DELAY_TYPE" = "0";
+  "CONFIG_KEYS" = "y";
+  "CONFIG_ENCRYPTED_KEYS" = "y";
+  "CONFIG_SECURITYFS" = "y";
+  "CONFIG_DEFAULT_SECURITY_DAC" = "y";
+  "CONFIG_DEFAULT_SECURITY" = "";
+  "CONFIG_XOR_BLOCKS" = "y";
+  "CONFIG_CRYPTO" = "y";
+  "CONFIG_CRYPTO_ALGAPI" = "y";
+  "CONFIG_CRYPTO_ALGAPI2" = "y";
+  "CONFIG_CRYPTO_AEAD" = "y";
+  "CONFIG_CRYPTO_AEAD2" = "y";
+  "CONFIG_CRYPTO_BLKCIPHER" = "y";
+  "CONFIG_CRYPTO_BLKCIPHER2" = "y";
+  "CONFIG_CRYPTO_HASH" = "y";
+  "CONFIG_CRYPTO_HASH2" = "y";
+  "CONFIG_CRYPTO_RNG" = "y";
+  "CONFIG_CRYPTO_RNG2" = "y";
+  "CONFIG_CRYPTO_PCOMP" = "y";
+  "CONFIG_CRYPTO_PCOMP2" = "y";
+  "CONFIG_CRYPTO_MANAGER" = "y";
+  "CONFIG_CRYPTO_MANAGER2" = "y";
+  "CONFIG_CRYPTO_USER" = "m";
+  "CONFIG_CRYPTO_GF128MUL" = "y";
+  "CONFIG_CRYPTO_NULL" = "m";
+  "CONFIG_CRYPTO_PCRYPT" = "y";
+  "CONFIG_CRYPTO_WORKQUEUE" = "y";
+  "CONFIG_CRYPTO_CRYPTD" = "y";
+  "CONFIG_CRYPTO_MCRYPTD" = "m";
+  "CONFIG_CRYPTO_AUTHENC" = "m";
+  "CONFIG_CRYPTO_TEST" = "m";
+  "CONFIG_CRYPTO_ABLK_HELPER" = "y";
+  "CONFIG_CRYPTO_GLUE_HELPER_X86" = "y";
+  "CONFIG_CRYPTO_CCM" = "m";
+  "CONFIG_CRYPTO_GCM" = "m";
+  "CONFIG_CRYPTO_SEQIV" = "y";
+  "CONFIG_CRYPTO_CBC" = "y";
+  "CONFIG_CRYPTO_CTR" = "y";
+  "CONFIG_CRYPTO_CTS" = "m";
+  "CONFIG_CRYPTO_ECB" = "y";
+  "CONFIG_CRYPTO_LRW" = "y";
+  "CONFIG_CRYPTO_PCBC" = "y";
+  "CONFIG_CRYPTO_XTS" = "y";
+  "CONFIG_CRYPTO_CMAC" = "y";
+  "CONFIG_CRYPTO_HMAC" = "y";
+  "CONFIG_CRYPTO_XCBC" = "y";
+  "CONFIG_CRYPTO_VMAC" = "y";
+  "CONFIG_CRYPTO_CRC32C" = "y";
+  "CONFIG_CRYPTO_CRC32C_INTEL" = "m";
+  "CONFIG_CRYPTO_CRC32" = "y";
+  "CONFIG_CRYPTO_CRC32_PCLMUL" = "m";
+  "CONFIG_CRYPTO_CRCT10DIF" = "y";
+  "CONFIG_CRYPTO_CRCT10DIF_PCLMUL" = "m";
+  "CONFIG_CRYPTO_GHASH" = "y";
+  "CONFIG_CRYPTO_MD4" = "y";
+  "CONFIG_CRYPTO_MD5" = "y";
+  "CONFIG_CRYPTO_MICHAEL_MIC" = "y";
+  "CONFIG_CRYPTO_RMD128" = "m";
+  "CONFIG_CRYPTO_RMD160" = "m";
+  "CONFIG_CRYPTO_RMD256" = "m";
+  "CONFIG_CRYPTO_RMD320" = "m";
+  "CONFIG_CRYPTO_SHA1" = "y";
+  "CONFIG_CRYPTO_SHA1_SSSE3" = "m";
+  "CONFIG_CRYPTO_SHA256_SSSE3" = "m";
+  "CONFIG_CRYPTO_SHA512_SSSE3" = "m";
+  "CONFIG_CRYPTO_SHA1_MB" = "m";
+  "CONFIG_CRYPTO_SHA256" = "y";
+  "CONFIG_CRYPTO_SHA512" = "y";
+  "CONFIG_CRYPTO_TGR192" = "m";
+  "CONFIG_CRYPTO_WP512" = "m";
+  "CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL" = "m";
+  "CONFIG_CRYPTO_AES" = "y";
+  "CONFIG_CRYPTO_AES_X86_64" = "y";
+  "CONFIG_CRYPTO_AES_NI_INTEL" = "m";
+  "CONFIG_CRYPTO_ANUBIS" = "m";
+  "CONFIG_CRYPTO_ARC4" = "y";
+  "CONFIG_CRYPTO_BLOWFISH" = "y";
+  "CONFIG_CRYPTO_BLOWFISH_COMMON" = "y";
+  "CONFIG_CRYPTO_BLOWFISH_X86_64" = "y";
+  "CONFIG_CRYPTO_CAMELLIA" = "m";
+  "CONFIG_CRYPTO_CAMELLIA_X86_64" = "y";
+  "CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64" = "m";
+  "CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64" = "m";
+  "CONFIG_CRYPTO_CAST_COMMON" = "y";
+  "CONFIG_CRYPTO_CAST5" = "y";
+  "CONFIG_CRYPTO_CAST5_AVX_X86_64" = "y";
+  "CONFIG_CRYPTO_CAST6" = "y";
+  "CONFIG_CRYPTO_CAST6_AVX_X86_64" = "y";
+  "CONFIG_CRYPTO_DES" = "y";
+  "CONFIG_CRYPTO_DES3_EDE_X86_64" = "y";
+  "CONFIG_CRYPTO_FCRYPT" = "m";
+  "CONFIG_CRYPTO_KHAZAD" = "m";
+  "CONFIG_CRYPTO_SALSA20" = "m";
+  "CONFIG_CRYPTO_SALSA20_X86_64" = "m";
+  "CONFIG_CRYPTO_SEED" = "m";
+  "CONFIG_CRYPTO_SERPENT" = "y";
+  "CONFIG_CRYPTO_SERPENT_SSE2_X86_64" = "y";
+  "CONFIG_CRYPTO_SERPENT_AVX_X86_64" = "m";
+  "CONFIG_CRYPTO_SERPENT_AVX2_X86_64" = "m";
+  "CONFIG_CRYPTO_TEA" = "m";
+  "CONFIG_CRYPTO_TWOFISH" = "y";
+  "CONFIG_CRYPTO_TWOFISH_COMMON" = "y";
+  "CONFIG_CRYPTO_TWOFISH_X86_64" = "y";
+  "CONFIG_CRYPTO_TWOFISH_X86_64_3WAY" = "m";
+  "CONFIG_CRYPTO_TWOFISH_AVX_X86_64" = "m";
+  "CONFIG_CRYPTO_DEFLATE" = "y";
+  "CONFIG_CRYPTO_ZLIB" = "y";
+  "CONFIG_CRYPTO_LZO" = "y";
+  "CONFIG_CRYPTO_LZ4" = "y";
+  "CONFIG_CRYPTO_LZ4HC" = "y";
+  "CONFIG_CRYPTO_ANSI_CPRNG" = "m";
+  "CONFIG_CRYPTO_USER_API" = "m";
+  "CONFIG_CRYPTO_USER_API_HASH" = "m";
+  "CONFIG_CRYPTO_USER_API_SKCIPHER" = "m";
+  "CONFIG_CRYPTO_USER_API_RNG" = "m";
+  "CONFIG_CRYPTO_HASH_INFO" = "y";
+  "CONFIG_ASYMMETRIC_KEY_TYPE" = "m";
+  "CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE" = "m";
+  "CONFIG_PUBLIC_KEY_ALGO_RSA" = "m";
+  "CONFIG_X509_CERTIFICATE_PARSER" = "m";
+  "CONFIG_PKCS7_MESSAGE_PARSER" = "m";
+  "CONFIG_PKCS7_TEST_KEY" = "m";
+  "CONFIG_HAVE_KVM" = "y";
+  "CONFIG_HAVE_KVM_IRQCHIP" = "y";
+  "CONFIG_HAVE_KVM_IRQFD" = "y";
+  "CONFIG_HAVE_KVM_IRQ_ROUTING" = "y";
+  "CONFIG_HAVE_KVM_EVENTFD" = "y";
+  "CONFIG_KVM_APIC_ARCHITECTURE" = "y";
+  "CONFIG_KVM_MMIO" = "y";
+  "CONFIG_KVM_ASYNC_PF" = "y";
+  "CONFIG_HAVE_KVM_MSI" = "y";
+  "CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT" = "y";
+  "CONFIG_KVM_VFIO" = "y";
+  "CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT" = "y";
+  "CONFIG_KVM_COMPAT" = "y";
+  "CONFIG_VIRTUALIZATION" = "y";
+  "CONFIG_KVM" = "y";
+  "CONFIG_KVM_INTEL" = "y";
+  "CONFIG_RAID6_PQ" = "y";
+  "CONFIG_BITREVERSE" = "y";
+  "CONFIG_GENERIC_STRNCPY_FROM_USER" = "y";
+  "CONFIG_GENERIC_STRNLEN_USER" = "y";
+  "CONFIG_GENERIC_NET_UTILS" = "y";
+  "CONFIG_GENERIC_FIND_FIRST_BIT" = "y";
+  "CONFIG_GENERIC_PCI_IOMAP" = "y";
+  "CONFIG_GENERIC_IOMAP" = "y";
+  "CONFIG_GENERIC_IO" = "y";
+  "CONFIG_ARCH_USE_CMPXCHG_LOCKREF" = "y";
+  "CONFIG_ARCH_HAS_FAST_MULTIPLIER" = "y";
+  "CONFIG_CRC_CCITT" = "y";
+  "CONFIG_CRC16" = "y";
+  "CONFIG_CRC_T10DIF" = "y";
+  "CONFIG_CRC_ITU_T" = "y";
+  "CONFIG_CRC32" = "y";
+  "CONFIG_CRC32_SELFTEST" = "y";
+  "CONFIG_CRC32_SLICEBY8" = "y";
+  "CONFIG_CRC7" = "y";
+  "CONFIG_LIBCRC32C" = "y";
+  "CONFIG_CRC8" = "y";
+  "CONFIG_RANDOM32_SELFTEST" = "y";
+  "CONFIG_ZLIB_INFLATE" = "y";
+  "CONFIG_ZLIB_DEFLATE" = "y";
+  "CONFIG_LZO_COMPRESS" = "y";
+  "CONFIG_LZO_DECOMPRESS" = "y";
+  "CONFIG_LZ4_COMPRESS" = "y";
+  "CONFIG_LZ4HC_COMPRESS" = "y";
+  "CONFIG_LZ4_DECOMPRESS" = "y";
+  "CONFIG_XZ_DEC" = "y";
+  "CONFIG_XZ_DEC_X86" = "y";
+  "CONFIG_XZ_DEC_POWERPC" = "y";
+  "CONFIG_XZ_DEC_IA64" = "y";
+  "CONFIG_XZ_DEC_ARM" = "y";
+  "CONFIG_XZ_DEC_ARMTHUMB" = "y";
+  "CONFIG_XZ_DEC_SPARC" = "y";
+  "CONFIG_XZ_DEC_BCJ" = "y";
+  "CONFIG_XZ_DEC_TEST" = "m";
+  "CONFIG_DECOMPRESS_GZIP" = "y";
+  "CONFIG_DECOMPRESS_BZIP2" = "y";
+  "CONFIG_DECOMPRESS_LZMA" = "y";
+  "CONFIG_DECOMPRESS_XZ" = "y";
+  "CONFIG_DECOMPRESS_LZO" = "y";
+  "CONFIG_DECOMPRESS_LZ4" = "y";
+  "CONFIG_TEXTSEARCH" = "y";
+  "CONFIG_TEXTSEARCH_KMP" = "m";
+  "CONFIG_TEXTSEARCH_BM" = "m";
+  "CONFIG_TEXTSEARCH_FSM" = "m";
+  "CONFIG_ASSOCIATIVE_ARRAY" = "y";
+  "CONFIG_HAS_IOMEM" = "y";
+  "CONFIG_HAS_IOPORT_MAP" = "y";
+  "CONFIG_HAS_DMA" = "y";
+  "CONFIG_CHECK_SIGNATURE" = "y";
+  "CONFIG_CPU_RMAP" = "y";
+  "CONFIG_DQL" = "y";
+  "CONFIG_GLOB" = "y";
+  "CONFIG_NLATTR" = "y";
+  "CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE" = "y";
+  "CONFIG_AVERAGE" = "y";
+  "CONFIG_CLZ_TAB" = "y";
+  "CONFIG_CORDIC" = "y";
+  "CONFIG_MPILIB" = "m";
+  "CONFIG_OID_REGISTRY" = "y";
+  "CONFIG_FONT_SUPPORT" = "y";
+  "CONFIG_FONT_8x8" = "y";
+  "CONFIG_FONT_8x16" = "y";
+  "CONFIG_ARCH_HAS_SG_CHAIN" = "y";
+}
diff --git a/machines/mmrnmhrm.nix b/machines/mmrnmhrm.nix
new file mode 100644
index 00000000..7f966c02
--- /dev/null
+++ b/machines/mmrnmhrm.nix
@@ -0,0 +1,67 @@
+{ pkgs, ... }:
+
+with pkgs.lib;
+with import ../lib;
+
+{
+  imports = singleton ../common-workstation.nix;
+
+  nix.maxJobs = 2;
+
+  boot = let
+    linuxVuizvui = pkgs.buildLinux {
+      inherit (pkgs.kernelSourceVuizvui) version src;
+
+      kernelPatches = singleton pkgs.vuizvuiKernelPatches.bfqsched;
+      configfile = generateKConf (import ./mmrnmhrm-kconf.nix);
+      allowImportFromDerivation = true;
+    };
+  in rec {
+    kernelPackages = pkgs.recurseIntoAttrs
+      (pkgs.linuxPackagesFor linuxVuizvui kernelPackages);
+
+    loader.grub.devices = map (i: "/dev/disk/by-id/${i}") [
+      "ata-WDC_WD10EZEX-00BN5A0_WD-WCC3F5756955"
+      "ata-WDC_WD10EZEX-00BN5A0_WD-WCC3F5790537"
+    ];
+  };
+
+  networking.hostName = "mmrnmhrm";
+
+  fileSystems = {
+    "/" = {
+      label = "root";
+      fsType = "btrfs";
+      options = concatStringsSep "," [
+        "autodefrag"
+        "space_cache"
+        "compress=lzo"
+        "noatime"
+      ];
+    };
+  };
+
+  swapDevices = [
+    { label = "swap1"; }
+    { label = "swap2"; }
+  ];
+
+  services.synergy.server.enable = true;
+  services.synergy.server.configFile = ../cfgfiles/synergy.conf;
+
+  systemd.services."synergy-server".serviceConfig.CPUSchedulingPolicy = "rr";
+  systemd.services."synergy-server".serviceConfig.CPUSchedulingPriority = 50;
+
+  services.xserver.videoDrivers = [ "nouveau" ];
+  services.xserver.xrandrHeads = [ "DVI-I-1" "VGA-1" ];
+
+  vuizvui.i3.workspaces."1" = {
+    label = "XMPP";
+    assign = singleton { class = "^(?:Tkabber|Gajim)\$"; };
+  };
+
+  vuizvui.i3.workspaces."3" = {
+    label = "Chromium";
+    assign = singleton { class = "^Chromium(?:-browser)?\$"; };
+  };
+}
diff --git a/machines/tishtushi.nix b/machines/tishtushi.nix
new file mode 100644
index 00000000..3e067ca9
--- /dev/null
+++ b/machines/tishtushi.nix
@@ -0,0 +1,65 @@
+{ config, pkgs, ... }:
+
+with pkgs.lib;
+
+let
+  rootUUID = "e33a3dda-a87d-473b-b113-37783aa35667";
+  swapUUID = "e9f59283-143c-4c36-978c-c730c6ca27c7";
+  storeUUID = "ce1db87b-d717-450d-a212-3685a224f626";
+  diskID = "ata-Hitachi_HTS543232A7A384_E2P31243FGB6PJ";
+in {
+  imports = singleton ../common-workstation.nix;
+
+  boot = rec {
+    kernelPackages = with pkgs; let
+      trimVer = ver: take 2 (splitString "." (replaceChars ["-"] ["."] ver));
+      tooOld = trimVer linux_latest.version == trimVer linux_testing.version;
+      origKernel = if tooOld then linux_latest else linux_testing;
+      bfqsched = vuizvuiKernelPatches.bfqsched // {
+        extraConfig = ''
+          IOSCHED_BFQ y
+          CGROUP_BFQIO y
+          DEFAULT_BFQ y
+          DEFAULT_CFQ n
+          DEFAULT_IOSCHED "bfq"
+        '';
+      };
+      kernel = origKernel.override {
+        kernelPatches = origKernel.kernelPatches ++ singleton bfqsched;
+      };
+    in linuxPackagesFor kernel kernelPackages;
+
+    initrd.kernelModules = [ "fbcon" "usb_storage" ];
+    loader.grub.device = "/dev/disk/by-id/${diskID}";
+    loader.grub.timeout = 0;
+  };
+
+  networking.hostName = "tishtushi";
+  networking.wireless.enable = true;
+
+  fileSystems."/" = {
+    device = "/dev/disk/by-uuid/${rootUUID}";
+    fsType = "btrfs";
+    options = concatStringsSep "," [
+      "space_cache" "compress=zlib" "noatime"
+    ];
+  };
+
+  fileSystems."/nix/store" = {
+    device = "/dev/disk/by-uuid/${storeUUID}";
+    fsType = "btrfs";
+    options = concatStringsSep "," [
+      "ssd" "compress-force=zlib" "noatime"
+    ];
+  };
+
+  swapDevices = singleton {
+    device = "/dev/disk/by-uuid/${swapUUID}";
+  };
+
+  services.tlp.enable = true;
+
+  services.xserver.videoDrivers = [ "intel" ];
+
+  nix.maxJobs = 4;
+}
diff --git a/modules/git/default.nix b/modules/git/default.nix
new file mode 100644
index 00000000..65aefb45
--- /dev/null
+++ b/modules/git/default.nix
@@ -0,0 +1,72 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  genConf = attrs: let
+    escStr = s: "\"${escape [ "\"" "\\" ] s}\"";
+    mkVal = v: if isBool v && v  then "true"
+          else if isBool v && !v then "false"
+          else escStr (toString v);
+    mkLine = key: val: "${key} = ${mkVal val}";
+
+    filterNull = filterAttrs (_: v: !(isNull v));
+
+    mkSection = sect: subsect: vals: ''
+      [${sect}${optionalString (subsect != null) " ${escStr subsect}"}]
+      ${concatStringsSep "\n" (mapAttrsToList mkLine (filterNull vals))}
+    '';
+
+    mkConf = sect: content: let
+      subs = filterAttrs (_: isAttrs) content;
+      nonSubs = filterAttrs (_: s: !isAttrs s) content;
+      hasPlain = (attrNames nonSubs) != [];
+      plainSects = singleton (mkSection sect null nonSubs);
+    in mapAttrsToList (mkSection sect) subs ++ optional hasPlain plainSects;
+
+    text = concatStringsSep "\n" (flatten (mapAttrsToList mkConf attrs));
+  in pkgs.writeText "gitconfig" text;
+
+  gitPatched = overrideDerivation pkgs.gitFull (git: {
+    makeFlags = let
+      oldFlags = git.makeFlags or [];
+      newVal = "ETC_GITCONFIG=${config.vuizvui.git.config}";
+    in if isList oldFlags
+       then oldFlags ++ [ newVal ]
+       else "${oldFlags} ${newVal}";
+  });
+in {
+  options.vuizvui.git = {
+    enable = mkEnableOption "Git";
+
+    config = mkOption {
+      description = "System-wide default config for Git";
+
+      type = let
+        superType = types.attrsOf types.unspecified;
+      in mkOptionType {
+        name = "attribute set of either plain values or "
+             + "attribute sets of values (if it is a subsection)";
+        inherit (superType) check merge;
+        inherit (superType) getSubOptions getSubModules substSubModules;
+      };
+
+      default = {};
+      example = {
+        color.ui = "auto";
+        merge.tool = "vimdiff";
+        guitool.foobar.noconsole = true;
+      };
+
+      apply = genConf;
+    };
+  };
+
+  config = mkIf config.vuizvui.git.enable {
+    environment.systemPackages = [
+      gitPatched
+      pkgs.gitAndTools.git-remote-hg
+      pkgs.gitAndTools.hub
+    ];
+  };
+}
diff --git a/modules/i3/conky.nix b/modules/i3/conky.nix
new file mode 100644
index 00000000..77a63ea5
--- /dev/null
+++ b/modules/i3/conky.nix
@@ -0,0 +1,115 @@
+{ pkgs ? import <nixpkgs> {}, timeout ? 300 }:
+
+with pkgs.lib;
+
+let
+  baseConfig = pkgs.writeText "conkyrc" ''
+    cpu_avg_samples 2
+    net_avg_samples 2
+    no_buffers yes
+    out_to_console yes
+    out_to_ncurses no
+    out_to_stderr no
+    out_to_x no
+    extra_newline no
+    update_interval 1.0
+    uppercase no
+    use_spacer none
+    pad_percents 3
+    use_spacer left
+    TEXT
+  '';
+
+  optexpr = name: expr: "\${${name}_disabled:-\\\${${name} ${expr}\\}}";
+  cexpr = name: args: "${optexpr name (concatStringsSep " " args)}";
+
+  mkNetInfo = iface: let
+    upspeed = cexpr "upspeed" [ iface ];
+    downspeed = cexpr "downspeed" [ iface ];
+  in "${upspeed} ${downspeed}";
+
+  mkDiskFree = path: let
+    used = cexpr "fs_used" [ path ];
+    size = cexpr "fs_size" [ path ];
+  in "${used}/${size}";
+
+  gpuTemp = "${cexpr "hwmon" [ "0" "temp" "1" ]}C";
+
+  weather = (cexpr "weather" [
+    "http://weather.noaa.gov/pub/data/observations/metar/stations/"
+    "EDMA"
+    "temperature"
+  ]) + "C";
+
+  mkConky = args: let
+    time = cexpr "time" [ "%a %b %d %T %Z %Y" ];
+    text = concatStringsSep " | " (args ++ singleton time);
+    conky = pkgs.conky.override {
+      weatherMetar = true;
+    };
+  in pkgs.writeScript "conky-run.sh" ''
+    #!${pkgs.stdenv.shell}
+    PATH="${pkgs.coreutils}/bin"
+
+    cpuload() {
+      for i in $(seq 1 $(nproc))
+      do
+        [ $i -eq 1 ] || echo -n ' '
+        echo -n "\''${cpu cpu$i}%"
+      done
+    }
+
+    cputemp_collect() {
+      for i in /sys/bus/platform/devices/coretemp.?/hwmon/hwmon?/temp?_input
+      do
+        [ -e "$i" ] || continue
+        echo "$i" | ${pkgs.gnused}/bin/sed -re \
+          's/^.*hwmon([0-9]+)[^0-9]*([0-9]+).*$/''${hwmon \1 temp \2}/'
+      done
+    }
+
+    cputemp() {
+      echo $(cputemp_collect)
+    }
+
+    tries=0
+    while ! raw_netinfo="$(${
+      "${pkgs.iproute}/sbin/ip route get 8.8.8.8 2> /dev/null"
+    })"; do
+      if [ $tries -ge ${toString timeout} ]; then
+        upspeed_disabled=N/A
+        downspeed_disabled=N/A
+        break
+      fi
+      echo "Waiting for primary network interface to become available..."
+      tries=$(($tries + 1))
+      sleep 1
+    done
+
+    primary_netdev="$(echo "$raw_netinfo" | \
+      ${pkgs.gnused}/bin/sed -nre 's/^.*dev *([^ ]+).*$/\1/p')"
+
+    ${conky}/bin/conky -c "${baseConfig}" -t "${text}"
+  '';
+
+in {
+  left = mkConky [
+    "CPU: $(cpuload) - ${cexpr "cpu" [ "cpu0" ]}%"
+    "MEM: \\$mem/\\$memmax - \\$memperc%"
+    "SWAP: \\$swap/\\$swapmax \\$swapperc%"
+  ];
+
+  right = mkConky [
+    "NET: ${mkNetInfo "$primary_netdev"}"
+    "DF: ${mkDiskFree "/"}"
+    "LAVG: \\$loadavg"
+    "TEMP - CPU: $(cputemp) - GPU: ${gpuTemp} - OUTSIDE: ${weather}"
+  ];
+
+  single = mkConky [
+    "CPU: $(cpuload) - ${cexpr "cpu" [ "cpu0" ]}%"
+    "MEM: \\$mem/\\$memmax - \\$memperc%"
+    "NET: ${mkNetInfo "$primary_netdev"}"
+    "TEMP - CPU: $(cputemp) - OUTSIDE: ${weather}"
+  ];
+}
diff --git a/modules/i3/default.nix b/modules/i3/default.nix
new file mode 100644
index 00000000..bca88cca
--- /dev/null
+++ b/modules/i3/default.nix
@@ -0,0 +1,129 @@
+{ pkgs, lib, config, ... }:
+
+with lib;
+
+let
+  inherit (config.services.xserver) xrandrHeads;
+
+  # The symbols if you press shift and a number key.
+  wsNumberSymbols = [
+    "exclam" "at" "numbersign" "dollar" "percent"
+    "asciicircum" "ampersand" "asterisk" "parenleft" "parenright"
+  ];
+
+  wsCount = length wsNumberSymbols;
+
+  headCount = length xrandrHeads;
+  wsPerHead = wsCount / headCount;
+  excessWs = wsCount - (headCount * wsPerHead);
+  headModifier = if config.vuizvui.i3.reverseHeads then reverseList else id;
+  getHeadAt = elemAt (headModifier xrandrHeads);
+
+  mkDefaultWorkspace = number: numberSymbol: {
+    name = toString number;
+    value = mkDefault {
+      label = null;
+      labelPrefix = "${toString number}: ";
+      keys.switchTo = "$mod+${if number == 10 then "0" else toString number}";
+      keys.moveTo = "$mod+Shift+${numberSymbol}";
+      head = if headCount == 0 then null
+             else getHeadAt ((number - (excessWs + 1)) / wsPerHead);
+    };
+  };
+
+  wsCfgList = mapAttrsToList (_: getAttr "config") config.vuizvui.i3.workspaces;
+  wsConfig = concatStrings wsCfgList;
+  defaultWorkspaces = listToAttrs (imap mkDefaultWorkspace wsNumberSymbols);
+
+  conky = import ./conky.nix {
+    inherit pkgs;
+    timeout = config.vuizvui.i3.networkTimeout;
+  };
+
+  mkBar = output: statusCmd: singleton ''
+    bar {
+      ${optionalString (output != null) "output ${output}"}
+      ${optionalString (statusCmd != null) "status_command ${statusCmd}"}
+      colors {
+        focused_workspace  #5c5cff #e5e5e5
+        active_workspace   #ffffff #0000ee
+        inactive_workspace #00cdcd #0000ee
+        urgent_workspace   #ffff00 #cd0000
+      }
+    }
+  '';
+
+  barConfig = let
+    barHeads = headModifier xrandrHeads;
+    bars = if headCount == 0 then mkBar null conky.single
+      else if headCount == 1 then mkBar (head barHeads) conky.single
+      else let inner = take (length barHeads - 2) (tail barHeads);
+           in mkBar (head barHeads) conky.left
+           ++ map (flip mkBar null) inner
+           ++ mkBar (last barHeads) conky.right;
+  in concatStrings (headModifier bars);
+
+in
+{
+  options.vuizvui.i3 = {
+    enable = mkEnableOption "i3";
+
+    workspaces = mkOption {
+      type = types.attrsOf (types.submodule (import ./workspace.nix));
+      default = listToAttrs (imap mkDefaultWorkspace wsNumberSymbols);
+      description = ''
+        Workspace to monitor assignment.
+
+        Workspaces are by default assigned starting from the leftmost monitor
+        being workspace 1 and the rightmost monitor being workspace 10. The
+        workspaces are divided by the number of available heads, so if you have
+        a dual head system, you'll end up having workspace 1 to 5 on the left
+        monitor and 6 to 10 on the right.
+      '';
+    };
+
+    reverseHeads = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Reverse the order of the heads, so if enabled and you have two heads,
+        you'll end up having workspaces 1 to 5 on the right head and 6 to 10 on
+        the left head.
+      '';
+    };
+
+    networkTimeout = mkOption {
+      type = types.int;
+      default = 300;
+      description = ''
+        Maximum number of seconds to wait for network device detection.
+      '';
+    };
+  };
+
+  config.vuizvui.i3.workspaces = defaultWorkspaces;
+
+  config.services.xserver.windowManager = mkIf config.vuizvui.i3.enable {
+    default = "i3";
+
+    i3.enable = true;
+    i3.configFile = pkgs.substituteAll {
+      name = "i3.conf";
+      src = ./i3.conf;
+
+      inherit (pkgs) dmenu xterm pvolctrl;
+      inherit (pkgs.xorg) xsetroot;
+      inherit wsConfig barConfig;
+
+      lockall = pkgs.writeScript "lockvt.sh" ''
+        #!${pkgs.stdenv.shell}
+        "${pkgs.socat}/bin/socat" - UNIX-CONNECT:/run/console-lock.sock \
+          < /dev/null
+      '';
+
+      postInstall = ''
+        ${pkgs.i3}/bin/i3 -c "$target" -C
+      '';
+    };
+  };
+}
diff --git a/modules/i3/i3.conf b/modules/i3/i3.conf
new file mode 100644
index 00000000..cd14c425
--- /dev/null
+++ b/modules/i3/i3.conf
@@ -0,0 +1,131 @@
+# default modifier key
+set $mod Mod4
+
+# we want to have a VT-style font :-)
+font -dosemu-vga-medium-r-normal--17-160-75-75-c-80-ibm-cp866
+
+# Use Mouse+$mod to drag floating windows to their wanted position
+floating_modifier $mod
+
+# reasonable defaults!
+default_orientation horizontal
+workspace_layout tabbed
+popup_during_fullscreen ignore
+
+# start a terminal
+bindsym $mod+Shift+Return exec --no-startup-id @xterm@/bin/xterm
+
+# kill focused window
+bindsym $mod+Shift+C kill
+
+# start dmenu (a program launcher)
+bindsym $mod+p exec --no-startup-id @dmenu@/bin/dmenu_run
+
+# start lock screen
+bindsym $mod+Shift+Escape exec --no-startup-id @lockall@
+
+# set background
+exec @xsetroot@/bin/xsetroot -solid black
+
+# audio controls
+bindsym XF86AudioLowerVolume exec @pvolctrl@/bin/pvolctrl -10
+bindsym XF86AudioRaiseVolume exec @pvolctrl@/bin/pvolctrl 10
+bindsym XF86AudioMute exec @pvolctrl@/bin/pvolctrl 0
+
+# change/move focus
+bindsym $mod+Shift+Left move left
+bindsym $mod+Shift+H move left
+bindsym $mod+Shift+Down move down
+bindsym $mod+Shift+T move down
+bindsym $mod+Shift+Up move up
+bindsym $mod+Shift+N move up
+bindsym $mod+Shift+Right move right
+bindsym $mod+Shift+S move right
+
+bindsym $mod+Left focus left
+bindsym $mod+h focus left
+bindsym $mod+Down focus down
+bindsym $mod+t focus down
+bindsym $mod+Up focus up
+bindsym $mod+n focus up
+bindsym $mod+Right focus right
+bindsym $mod+s focus right
+
+# split in horizontal orientation
+bindsym $mod+i split h
+
+# split in vertical orientation
+bindsym $mod+d split v
+
+# enter fullscreen mode for the focused container
+bindsym $mod+f fullscreen
+
+# change container layout (stacked, tabbed, default)
+bindsym $mod+apostrophe layout stacking
+bindsym $mod+comma layout tabbed
+bindsym $mod+period layout default
+
+# toggle tiling / floating
+bindsym $mod+Shift+space floating toggle
+
+# change focus between tiling / floating windows
+bindsym $mod+space focus mode_toggle
+
+# focus the parent container
+bindsym $mod+a focus parent
+
+# focus the child container
+bindsym $mod+semicolon focus child
+
+# reload the configuration file
+bindsym $mod+Shift+L reload
+# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
+bindsym $mod+Shift+R restart
+# exit i3 (logs you out of your X session)
+bindsym $mod+Shift+Q exit
+
+# resize window (you can also use the mouse for that)
+mode "resize" {
+    # These bindings trigger as soon as you enter the resize mode
+
+    # They resize the border in the direction you pressed, e.g.
+    # when pressing left, the window is resized so that it has
+    # more space on its left
+
+    bindsym Left resize shrink left 10 px or 10 ppt
+    bindsym h resize shrink left 10 px or 10 ppt
+    bindsym Down resize shrink down 10 px or 10 ppt
+    bindsym t resize shrink down 10 px or 10 ppt
+    bindsym Up resize shrink up 10 px or 10 ppt
+    bindsym n resize shrink up 10 px or 10 ppt
+    bindsym Right resize shrink right 10 px or 10 ppt
+    bindsym s resize shrink right 10 px or 10 ppt
+
+    bindsym Shift+Left resize grow left 10 px or 10 ppt
+    bindsym Shift+H resize grow left 10 px or 10 ppt
+    bindsym Shift+Down resize grow down 10 px or 10 ppt
+    bindsym Shift+T resize grow down 10 px or 10 ppt
+    bindsym Shift+Up resize grow up 10 px or 10 ppt
+    bindsym Shift+N resize grow up 10 px or 10 ppt
+    bindsym Shift+Right resize grow right 10 px or 10 ppt
+    bindsym Shift+S resize grow right 10 px or 10 ppt
+
+    # back to normal: Enter or Escape
+    bindsym Return mode "default"
+    bindsym Escape mode "default"
+}
+
+bindsym $mod+r mode "resize"
+
+# workspace configuration
+@wsConfig@
+
+# ratmenu should be as unintrusive as possible
+for_window [class="^ratmenu$"] floating enable
+for_window [class="^ratmenu$"] border none
+
+# various app cruft
+for_window [class="^Dia$"] floating enable
+
+# bar configuration
+@barConfig@
diff --git a/modules/i3/workspace.nix b/modules/i3/workspace.nix
new file mode 100644
index 00000000..403ba57d
--- /dev/null
+++ b/modules/i3/workspace.nix
@@ -0,0 +1,107 @@
+{ name, lib, config, ... }:
+
+with lib;
+
+let
+  finalLabel =
+    if config.label == null then name
+    else config.labelPrefix + config.label;
+
+  mkDoc = anchor: "http://i3wm.org/docs/userguide.html#${anchor}";
+in
+{
+  options = {
+    labelPrefix = mkOption {
+      type = types.str;
+      default = "";
+      example = "666: ";
+      description = ''
+        The value that will be put in front of the <option>label</option>.
+        So if you have a label called <replaceable>bar</replaceable> and a
+        <option>labelPrefix</option> called <replaceable>foo</replaceable> the
+        label for the workspace will be <replaceable>foobar</replaceable>.
+      '';
+    };
+
+    label = mkOption {
+      type = types.nullOr types.str;
+      default = name;
+      description = ''
+        The label of this workspace, which is its name by default. If the value
+        is <replaceable>null</replaceable>, the resulting label of the workspace
+        is just its name and no <option>labelPrefix</option> is applied.
+      '';
+    };
+
+    assign = mkOption {
+      type = types.listOf types.attrs;
+      default = [];
+      example = [
+        { class = "^Chromium(?:-browser)?\$"; }
+        { instance = "^gajim\$"; }
+      ];
+      description = let
+        anchor = "_automatically_putting_clients_on_specific_workspaces";
+      in ''
+        Assign windows to this specific workspace using the attribute names
+        described by <link xlink:href="${mkDoc anchor}"/>.
+      '';
+    };
+
+    head = mkOption {
+      type = types.nullOr types.str;
+      default = null;
+      description = ''
+        The XRandR head this workspace will be assigned to.
+      '';
+    };
+
+    keys = let
+      commonDesc = ''
+        The <replaceable>$mod</replaceable> placeholder represents the default
+        modifier key. Details about the syntax of key combinations can be found
+        at <link xlink:href="${mkDoc "keybindings"}"/>.
+      '';
+    in {
+      switchTo = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        example = "$mod+1";
+        description = ''
+          Key combination to switch to this workspace.
+        '' + commonDesc;
+      };
+
+      moveTo = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        example = "$mod+Shift+exclam";
+        description = ''
+          Key combination to move a container to this workspace.
+        '' + commonDesc;
+      };
+    };
+
+    config = mkOption {
+      type = types.lines;
+      default = "";
+      description = ''
+        Raw configuration options for this workspace.
+      '';
+    };
+  };
+
+  config.config = let
+    mkAssign = mapAttrsToList (criteria: value: "${criteria}=\"${value}\"");
+    mkSym = sym: rest: optionalString (sym != null) "bindsym ${sym} ${rest}";
+  in ''
+    ${optionalString (config.head != null) ''
+    workspace "${finalLabel}" output ${config.head}
+    ''}
+    ${mkSym config.keys.switchTo "workspace \"${finalLabel}\""}
+    ${mkSym config.keys.moveTo "move workspace \"${finalLabel}\""}
+    ${concatMapStrings (assign: ''
+    assign [${concatStringsSep " " (mkAssign assign)}] ${finalLabel}
+    '') config.assign}
+  '';
+}
diff --git a/modules/module-list.nix b/modules/module-list.nix
index 5137c672..916e0efe 100644
--- a/modules/module-list.nix
+++ b/modules/module-list.nix
@@ -1,4 +1,7 @@
 [
-  ./config/labernix-pkgs.nix
-  ./services/postfix
+  ./git
+  ./i3
+  ./slim
+  ./vlock
+  ./zsh
 ]
diff --git a/modules/slim/default.nix b/modules/slim/default.nix
new file mode 100644
index 00000000..ca3ce8c6
--- /dev/null
+++ b/modules/slim/default.nix
@@ -0,0 +1,43 @@
+{ pkgs, config, lib, ... }:
+
+with lib;
+
+let
+  cfg = config.vuizvui.slim;
+  randrHeads = config.services.xserver.xrandrHeads;
+in {
+  options.vuizvui.slim.enable = mkEnableOption "Vuizvui SLiM";
+
+  config.services.xserver.displayManager.slim = mkIf cfg.enable {
+    enable = true;
+    theme = pkgs.stdenv.mkDerivation {
+      name = "nixos-theme-vuizvui";
+      src = pkgs.slimThemes.nixosSlim;
+      phases = [ "unpackPhase" "patchPhase" "installPhase" ];
+      patchPhase = let
+        headFactor = if randrHeads == [] then 1 else lib.length randrHeads;
+        centerLeft = 100 / (headFactor * 2);
+      in ''
+        ${pkgs.imagemagick}/bin/mogrify \
+          -fill '#080010' -draw 'color 0,0 reset' \
+          share/slim/themes/nixos-slim-testing/background.png
+        ${pkgs.imagemagick}/bin/mogrify \
+          -negate -region 100x110+0+0 -negate -fill white -colorize 20% \
+          share/slim/themes/nixos-slim-testing/panel.png
+        sed -i \
+          -e 's/^\([a-z_]\+_x[^0-9]*\)[0-9]\+%/\1${toString centerLeft}%/' \
+          share/slim/themes/nixos-slim-testing/slim.theme
+        cat >> share/slim/themes/nixos-slim-testing/slim.theme <<EOF
+        session_x      ${toString centerLeft}%
+        msg_color      #ffffff
+        username_color #ffffff
+        password_color #ffffff
+        input_color    #ffffff
+        EOF
+      '';
+      installPhase = ''
+        cp -R share/slim/themes/nixos-slim-testing "$out"
+      '';
+    };
+  };
+}
diff --git a/modules/vlock/default.nix b/modules/vlock/default.nix
new file mode 100644
index 00000000..11e9a475
--- /dev/null
+++ b/modules/vlock/default.nix
@@ -0,0 +1,51 @@
+{ pkgs, config, lib, ... }:
+
+let
+  messageFile = pkgs.runCommand "message.cat" {} ''
+    echo -en '\e[H\e[2J\e[?25l' > "$out"
+    "${pkgs.aacolorize}/bin/aacolorize" \
+      "${./message.cat}" "${./message.colmap}" \
+      >> "$out"
+  '';
+
+  esc = "\\\\033";
+  unlockCSI = "${esc}[16;39H${esc}[?25h${esc}[K";
+
+  vlock = lib.overrideDerivation pkgs.vlock (o: {
+    postPatch = (o.postPatch or "") + ''
+      echo -n '"' > src/message.h
+      sed -e ':nl;N;$!bnl;s/[\\"]/\\&/g;s/\n/\\n/g' "${messageFile}" \
+        >> src/message.h
+      sed -i -e '$s/$/"/' src/message.h
+      sed -i -e 's!getenv("VLOCK_MESSAGE")!\n#include "message.h"\n!' \
+        src/vlock-main.c
+      sed -i -re 's/(fprintf[^"]*")(.*user)/\1${unlockCSI}\2/' \
+        src/auth-pam.c
+    '';
+  });
+in {
+  options.vuizvui.vlock.enable = lib.mkEnableOption "console lock";
+
+  config.systemd.sockets.vlock = {
+    description = "Console Lock Socket";
+    wantedBy = [ "sockets.target" ];
+    socketConfig.ListenStream = "/run/console-lock.sock";
+    socketConfig.Accept = true;
+  };
+
+  config.systemd.services."vlock@" = lib.mkIf config.vuizvui.vlock.enable {
+    description = "Lock All Consoles";
+    serviceConfig.Type = "oneshot";
+
+    #environment.USER = "%i"; XXX
+    environment.USER = "aszlig";
+
+    script = ''
+      retval=0
+      oldvt="$("${pkgs.kbd}/bin/fgconsole")"
+      "${vlock}/bin/vlock" -asn || retval=$?
+      if [ $retval -ne 0 ]; then "${pkgs.kbd}/bin/chvt" "$oldvt"; fi
+      exit $retval
+    '';
+  };
+}
diff --git a/modules/vlock/message.cat b/modules/vlock/message.cat
new file mode 100644
index 00000000..f079e829
--- /dev/null
+++ b/modules/vlock/message.cat
@@ -0,0 +1,18 @@
+
+                .
+                |
+          -_    |     .           .-.  .-. ..      ,.--., ,===.
+            `-_ |     |           '||\.||' `' ,  , ||  || ;___
+    -_         >:_    |    _-      ||`\||  || `\/' ||  ||     ;
+      `-_   _-'   `-_ | _-'       .'   `|  ;' /'`\ ``=='' ,==='
+         >:'         `:'
+      _-' |           |    _-   ..              ..             ..
+    -'    |           | _-'     ||              ||             ||
+         .|.         _:<        ||  ,---. .---. ||,-. .--.  .--||
+      _-' | `-_   _-'   `-_     ||  ||"|| ||''' |.,'' |"/'  |,";|
+    -'    |    `:<         `-   ||_ ||_|| ||__  |,\\. ||__  ||_,|
+          |     | `-_           `--'`---' `---' '' `' `---' `---'
+          '     |    `-
+                |                     press ENTER to unlock
+                `
+
diff --git a/modules/vlock/message.colmap b/modules/vlock/message.colmap
new file mode 100644
index 00000000..d7e42fb6
--- /dev/null
+++ b/modules/vlock/message.colmap
@@ -0,0 +1,18 @@
+
+                c
+                c
+          cc    c     b           WWW  WWW WW      BccccB cBBBc
+            ccc c     b           WWWWWWWW WW W  W Bc  cB cccc
+    bb         ccc    b    bb      WWWWWW  WW WWWW Bc  cB     c
+      bbb   bbb   ccc b bbb       WW   WW  WW WWWW BcBBcB cBBBc
+         bbb         cbb
+      bbb c           b    cc   rr              rr             rr
+    bb    c           b ccc     rr              rr             rr
+         ccb         ccc        rr  rrrrr rrrrr rrrrr rrrr  rrrrr
+      ccc c bbb   ccc   ccc     rr  rrRrr rrRRR rrrrr rRrr  rrRrr
+    cc    c    bbb         cc   rrr rrrrr rrrr  rrrrr rrrr  rrrrr
+          c     b bbb           rrrrrrrrr rrrrr rr rr rrrrr rrrrr
+          c     b    bb
+                b                     ppppp PPPPP pp pppppp
+                b
+
diff --git a/modules/zsh/default.nix b/modules/zsh/default.nix
new file mode 100644
index 00000000..4d21e33a
--- /dev/null
+++ b/modules/zsh/default.nix
@@ -0,0 +1,106 @@
+{ config, lib, ... }:
+
+with lib;
+
+{
+  options.vuizvui.zsh = {
+    enable = mkEnableOption "zsh";
+  };
+
+  config = mkIf config.vuizvui.zsh.enable {
+    environment.shellInit = ''
+      export EDITOR="vim"
+      export EMAIL="aszlig@redmoonstudios.org"
+    '';
+
+    programs.zsh.enable = true;
+
+    programs.zsh.shellAliases.t = "task";
+
+    programs.zsh.interactiveShellInit = mkAfter ''
+      export HISTFILE=~/.histfile
+      export HISTSIZE=100000
+      export SAVEHIST=100000
+
+      unsetopt SHARE_HISTORY
+
+      setopt extendedglob
+      setopt extendedhistory
+      setopt globcomplete
+      setopt histnostore
+      setopt histreduceblanks
+      setopt correct
+      setopt dvorak
+      setopt interactivecomments
+      setopt autopushd
+      setopt autocd
+      setopt beep
+
+      bindkey -v
+      if [[ "$TERM" = xterm ]]; then
+        bindkey -v '\e[H' vi-beginning-of-line
+        bindkey -v '\e[F' vi-end-of-line
+
+        function set-title() {
+          echo -en "\e]2;$2\a"
+        }
+
+        function reset-title() {
+          echo -en "\e]2;''${(%):-%~}\a"
+        }
+
+        autoload -Uz add-zsh-hook
+        add-zsh-hook preexec set-title
+        add-zsh-hook precmd reset-title
+      else
+        bindkey -v '\e[1~' vi-beginning-of-line
+        bindkey -v '\e[4~' vi-end-of-line
+      fi
+
+      bindkey -a '/' history-incremental-pattern-search-backward
+      bindkey -a '?' history-incremental-pattern-search-forward
+      bindkey '\e[A' up-line-or-history
+      bindkey '\e[B' down-line-or-history
+
+      zstyle ':completion:*' completer _expand _complete _ignored _approximate
+      zstyle ':completion:*' expand prefix suffix
+      zstyle ':completion:*' group-name '''
+      zstyle ':completion:*' insert-unambiguous true
+      zstyle ':completion:*' list-colors '''
+      zstyle ':completion:*' list-prompt \
+        %SAt %p: Hit TAB for more, or the character to insert%s
+      zstyle ':completion:*' list-suffixes true
+      zstyle ':completion:*' matcher-list ''' \
+        'm:{[:lower:]}={[:upper:]}' \
+        'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' \
+        'l:|=* r:|=*' \
+        'r:|[._-]=** r:|=**'
+      zstyle ':completion:*' max-errors 2 numeric
+      zstyle ':completion:*' menu select=long
+      zstyle ':completion:*' original true
+      zstyle ':completion:*' preserve-prefix '//[^/]##/'
+      zstyle ':completion:*' prompt \
+        'Hm, did you mistype something? There are %e errors in the completion.'
+      zstyle ':completion:*' select-prompt \
+        %SScrolling active: current selection at %p%s
+      zstyle ':completion:*' use-compctl false
+      zstyle ':completion:*' verbose true
+
+      autoload -Uz compinit
+      compinit
+
+      autoload -Uz zmv
+    '';
+
+    programs.zsh.promptInit = ''
+      autoload -Uz prompt_special_chars
+
+      () {
+          local p_machine='%(!..%B%F{red}%n%b%F{blue}@)%b%F{red}%m'
+          local p_path='%B%F{blue}[%F{cyan}%~%B%F{blue}]'
+          local p_exitcode='%F{green}%?%(!.%F{cyan}>.%b%F{green}>)%b%f '
+          PROMPT="$p_machine$p_path$p_exitcode"
+      }
+    '';
+  };
+}
diff --git a/network.nix b/network.nix
new file mode 100644
index 00000000..038f9e73
--- /dev/null
+++ b/network.nix
@@ -0,0 +1,7 @@
+{
+  dnyarri = import ./machines/dnyarri.nix;
+  mmrnmhrm = import ./machines/mmrnmhrm.nix;
+  arilou = import ./machines/arilou.nix;
+  kzerza = import ./machines/kzerza.nix;
+  tishtushi = import ./machines/tishtushi.nix;
+}
diff --git a/nixpkgs/config.nix b/nixpkgs/config.nix
new file mode 100644
index 00000000..5edb4334
--- /dev/null
+++ b/nixpkgs/config.nix
@@ -0,0 +1,12 @@
+{
+  pulseaudio = true;
+  chromium.enablePepperFlash = true;
+  firefox.jre = true;
+
+  # Needed for CPU microcode
+  allowUnfree = true;
+
+  allowBroken = true;
+
+  packageOverrides = import ../overrides;
+}
diff --git a/overrides/default.nix b/overrides/default.nix
new file mode 100644
index 00000000..f1bf422b
--- /dev/null
+++ b/overrides/default.nix
@@ -0,0 +1,98 @@
+pkgs:
+
+with pkgs.lib;
+
+let
+  allPackages = (import ../pkgs { pkgs = everything; }).vuizvui // misc;
+  everything = pkgs // allPackages // drvOverrides // argOverrides;
+
+  mapOverride = overrideFun: includePackages: let
+    packages = pkgs // allPackages // includePackages;
+    overrideName = name: overrideFun (getAttr name packages);
+  in mapAttrs overrideName;
+
+  # input attrset overrides using pkg.override
+  argOverrides = mapOverride (getAttr "override") drvOverrides {
+    netrw.checksumType = "mhash";
+    pulseaudio.useSystemd = true;
+    w3m.graphicsSupport = true;
+    uqm.use3DOVideos = true;
+    uqm.useRemixPacks = true;
+    miro.enableBonjour = true;
+  };
+
+  gajimGtkTheme = everything.writeText "gajim.gtkrc" ''
+    style "default" {
+      fg[NORMAL] = "#d5faff"
+      fg[ACTIVE] = "#fffeff"
+      fg[SELECTED] = "#fffeff"
+      fg[INSENSITIVE] = "#85aaaf"
+      fg[PRELIGHT] = "#d7f2ff"
+
+      text[NORMAL] = "#fffefe"
+      text[ACTIVE] = "#fffeff"
+      text[SELECTED] = "#fffeff"
+      text[INSENSITIVE] = "#85aaaf"
+      text[PRELIGHT] = "#d7f2ff"
+
+      bg[NORMAL] = "#0f4866"
+      bg[ACTIVE] = "#0c232e"
+      bg[SELECTED] = "#005a56"
+      bg[INSENSITIVE] = "#103040"
+      bg[PRELIGHT] = "#1d5875"
+
+      base[NORMAL] = "#0c232e"
+      base[ACTIVE] = "#0f4864"
+      base[SELECTED] = "#005a56"
+      base[INSENSITIVE] = "#103040"
+      base[PRELIGHT] = "#1d5875"
+    }
+
+    class "GtkWidget" style "default"
+
+    gtk-enable-animations = 0
+  '';
+
+  gajimPatch = everything.substituteAll {
+    src = ../pkgs/gajim/config.patch;
+    nix_config = everything.writeText "gajim.config"
+      (import ../cfgfiles/gajim.nix);
+  };
+
+  # derivation overrides
+  drvOverrides = mapOverride overrideDerivation argOverrides {
+    gajim = o: {
+      patches = (o.patches or []) ++ singleton gajimPatch;
+      postPatch = (o.postPatch or "") + ''
+        sed -i -e '/^export/i export GTK2_RC_FILES="${gajimGtkTheme}"' \
+          scripts/gajim.in
+      '';
+    };
+
+    mpv = o: {
+      installPhase = o.installPhase + ''
+        cat > "$out/etc/mpv/mpv.conf" <<CONFIG
+        ao=pulse
+        CONFIG
+      '';
+    };
+
+    zsh = o: {
+      postConfigure = (o.postConfigure or "") + ''
+        sed -i -e '/^name=zsh\/newuser/d' config.modules
+      '';
+    };
+  };
+
+  # misc
+  misc = {
+    kernelSourceVuizvui = {
+      version = "4.0.0-rc3";
+      src = everything.fetchgit {
+        url = git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git;
+        rev = "affb8172de395a6e1db52ed9790ca0456d8c29a9";
+        sha256 = "1zqnkds0mglldm1syv17gl8n4wl1vy7rrh2vf3iga5w2psqwkyj4";
+      };
+    };
+  };
+in allPackages // drvOverrides // argOverrides
diff --git a/packages.nix b/packages.nix
new file mode 100644
index 00000000..b94baf41
--- /dev/null
+++ b/packages.nix
@@ -0,0 +1,98 @@
+{ pkgs, ... }:
+
+{
+  environment.systemPackages = with pkgs; [
+    aacolorize
+    acpi
+    apg
+    ascii
+    aspellDicts.de
+    aspellDicts.en
+    axbo
+    bc
+    beets
+    chromiumBeta
+    dash
+    dos2unix
+    erlang
+    fbida
+    ffmpeg
+    figlet
+    firefox
+    flac
+    gajim
+    gdb
+    ghostscript
+    gimp
+    glxinfo
+    gnumake
+    gnupg1compat
+    graphviz
+    haskellngPackages.cabal2nix
+    haskellngPackages.cabal-install
+    haskellngPackages.hlint
+    haskellngPackages.yesod-bin
+    haxe
+    hexedit
+    i3
+    i3lock
+    imagemagick
+    jwhois
+    keychain
+    lastwatch
+    lftp
+    ltrace
+    manpages
+    miro
+    mmv
+    mosh
+    mp3info
+    mpg321
+    mpv
+    mtr
+    mutt
+    ncdu
+    neko
+    netrw
+    nix-prefetch-scripts
+    nix-repl
+    nixops
+    nixpkgs-lint
+    nmap
+    openssh
+    openssl
+    p7zip
+    pavucontrol
+    picard
+    posix_man_pages
+    pulseaudio
+    pvolctrl
+    python
+    python3
+    pythonPackages.hetzner
+    pythonPackages.pep8
+    pythonPackages.polib
+    rlwrap
+    rtorrent
+    samplicator
+    screen
+    scrot
+    socat
+    sox
+    sqlite
+    strace
+    surfraw
+    taskwarrior
+    telnet
+    tomahawk
+    unzip
+    uqm
+    valgrind
+    vbindiff
+    vorbisTools
+    w3m
+    wireshark
+    xpdf
+    youtubeDL
+  ];
+}
diff --git a/pkgs/aacolorize/aacolorize.py b/pkgs/aacolorize/aacolorize.py
new file mode 100755
index 00000000..ff19b687
--- /dev/null
+++ b/pkgs/aacolorize/aacolorize.py
@@ -0,0 +1,182 @@
+#!/usr/bin/env python
+import os
+import sys
+
+from optparse import Option, OptionParser
+
+COLORS = {
+    "k": (30, "Black"),
+    "r": (31, "Red"),
+    "g": (32, "Green"),
+    "y": (33, "Yellow"),
+    "b": (34, "Blue"),
+    "p": (35, "Pink"),
+    "c": (36, "Cyan"),
+    "w": (37, "White"),
+}
+
+ESC = chr(27)
+
+class ColorizeError(Exception):
+    pass
+
+class Color(object):
+    def __init__(self, ident=None):
+        """
+        Initialize a color object, if no `ident` is given or it's invalid,
+        the Color object represents "no color".
+        """
+        if ident is not None:
+            spec = COLORS.get(ident.lower(), None)
+        else:
+            spec = None
+
+        if spec is None:
+            self.ident = None
+            self.bold = False
+            self.code = None
+            self.name = "None"
+        else:
+            self.ident = ident
+            self.code, self.name = spec
+
+            if ident.isupper():
+                self.bold = True
+            else:
+                self.bold = False
+
+    @property
+    def attrs(self):
+        """
+        A tuple consisting of the SGR attributes.
+        """
+        if self.ident is None:
+            return ()
+
+        if self.bold:
+            return (1, self.code)
+        else:
+            return (self.code,)
+
+    def sgr_attrs(self, *attrs):
+        """
+        Return the attributes specified by `attrs` formatted according
+        to the CSI specification.
+        """
+        return ';'.join(map(lambda c: str(c), attrs))
+
+    def sgr(self, *attrs):
+        """
+        Start Set Graphics Rendition
+        Return the CSI escape code for `attrs`.
+        """
+        return "%s[%sm" % (ESC, self.sgr_attrs(*attrs))
+
+    def sgr_start(self):
+        """
+        Start Set Graphics Rendition
+        Return the CSI start escape code for the current color.
+        """
+        return self.sgr(*self.attrs)
+
+    def sgr_stop(self):
+        """
+        Clear Set Graphics Rendition
+        """
+        return self.sgr()
+
+    def apply(self, value):
+        """
+        Apply the current color to the string in `value`.
+        """
+        return "%s%s%s" % (self.sgr_start(), value, self.sgr_stop())
+
+    def describe(self):
+        """
+        Return the description of the current color IN color :-)
+        """
+        fmt = "%c: <ESC>[%sm -> [%s]"
+        return fmt % (
+            self.ident,
+            self.sgr_attrs(*self.attrs),
+            self.apply(self.name)
+        )
+
+    def transform_to(self, new_color):
+        """
+        Return the CSI sequences needed to transform into `new_color`.
+        """
+        if self.ident is None and new_color.ident is not None:
+            return new_color.sgr_start()
+        elif self.ident is not None and new_color.ident is None:
+            return self.sgr_stop()
+        elif self.ident is None and new_color.ident is None:
+            return ''
+        elif self.code == new_color.code:
+            if not self.bold and new_color.bold:
+                return self.sgr(1)
+            elif self.bold and not new_color.bold:
+                return self.sgr(22)
+            elif self.bold == new_color.bold:
+                return ''
+        else:
+            if self.bold and new_color.bold:
+                return new_color.sgr(new_color.code)
+
+        return self.sgr_stop()+new_color.sgr_start()
+
+    def __repr__(self):
+        if self.bold:
+            return "<Bold color %s>" % self.name.lower()
+        else:
+            return "<Color %s>" % self.name.lower()
+
+def print_colortable():
+    for ident in COLORS.iterkeys():
+        normal = Color(ident).describe()
+        bold = Color(ident.upper()).describe()
+        sys.stdout.write("%-35s%s\n" % (normal, bold))
+
+def colorize_art(art, colmap):
+    if len(art) != len(colmap):
+        raise ColorizeError("Art and colormap differ in size!")
+
+    no_color = Color()
+
+    out = ""
+    last_color = no_color
+    for i, char in enumerate(colmap):
+        color = Color(char)
+        out += last_color.transform_to(color) + art[i]
+        last_color = color
+
+    last_color.transform_to(no_color)
+
+    return out
+
+def colorize_file(artfile, mapfile=None):
+    if mapfile is None:
+        mapfile = os.path.splitext(artfile)[0]+'.colmap'
+
+    asciiart = open(artfile, 'r').read()
+    colormap = open(mapfile, 'r').read()
+
+    return colorize_art(asciiart, colormap)
+
+if __name__ == "__main__":
+    parser = OptionParser(usage="%prog [options] artfile [mapfile]")
+    parser.add_option("-t", "--table", action="store_true", dest="table",
+                      help="Show color table and exit.")
+
+    (options, args) = parser.parse_args()
+
+    if options.table:
+        print_colortable()
+        parser.exit()
+
+    if not len(args) in (1, 2):
+        parser.print_help()
+        parser.exit()
+    else:
+        colorized = colorize_file(*args)
+        sys.stdout.write(colorized)
diff --git a/pkgs/aacolorize/default.nix b/pkgs/aacolorize/default.nix
new file mode 100644
index 00000000..a7a3c3f1
--- /dev/null
+++ b/pkgs/aacolorize/default.nix
@@ -0,0 +1,13 @@
+{ buildPythonPackage, runCommand }:
+
+buildPythonPackage {
+  name = "aacolorize";
+  src = runCommand "aacolorize-src" {} ''
+    mkdir -p "$out"
+    cp "${./aacolorize.py}" "$out/aacolorize"
+    cat > "$out/setup.py" <<SETUP
+    from distutils.core import setup
+    setup(name='aacolorize', scripts=['aacolorize'])
+    SETUP
+  '';
+}
diff --git a/pkgs/axbo/default.nix b/pkgs/axbo/default.nix
new file mode 100644
index 00000000..d83e891d
--- /dev/null
+++ b/pkgs/axbo/default.nix
@@ -0,0 +1,77 @@
+{ stdenv, fetchurl, oraclejre, librxtx_java, makeFontsConf, dejavu_fonts }:
+
+stdenv.mkDerivation rec {
+  name = "axbo-research-${version}";
+  version = "2.0.18";
+
+  src = fetchurl {
+    url = let
+      urlversion = stdenv.lib.replaceChars ["."] ["_"] version;
+    in "https://www.dropbox.com/s/shy0yqcyivonobi/aXbo_unix_${urlversion}.sh";
+    sha256 = "1zc3bpqfa5pdpl7masigvv98mi5phl04p80fyd2ink33xbmik70z";
+  };
+
+  buildInputs = [ oraclejre librxtx_java ];
+
+  unpackCmd = let
+    fontconfigFile = makeFontsConf {
+      fontDirectories = stdenv.lib.singleton dejavu_fonts;
+    };
+  in ''
+    datalen="$(sed -n 's/^.*totalDataLength=\([0-9]\+\).*$/\1/p' "$src")"
+    installer_offset="$(sed -n 's/^ *tail *-c *\([0-9]\+\).*$/\1/p' "$src")"
+
+    installer_dir="$(mktemp -d)"
+    mkdir -p "$installer_dir"
+    tail -c "$installer_offset" "$src" | tar xz -C "$installer_dir"
+
+    cat > "$installer_dir/responses" <<EOF
+    executeLauncherAction$Boolean=false
+    sys.programGroup.linkDir=/dev/null
+    sys.component.73$Boolean=true
+    sys.languageId=en
+    sys.installationDir=$(pwd)/${name}
+    sys.programGroup.enabled$Boolean=false
+    sys.programGroup.allUsers$Boolean=true
+    sys.programGroup.name=aXbo
+    EOF
+
+    cd "$installer_dir"
+    export FONTCONFIG_FILE="${fontconfigFile}"
+    java -client -Dinstall4j.jvmDir="${oraclejre}" \
+                 -Dexe4j.moduleName="$src" \
+                 -Dexe4j.totalDataLength="$datalen" \
+                 -Dinstall4j.cwd="$installer_dir" \
+                 -Djava.ext.dirs="${oraclejre}/lib/ext" \
+                 -Dsun.java2d.noddraw=true \
+                 -classpath i4jruntime.jar:user.jar \
+                 com.install4j.runtime.Launcher launch \
+                 com.install4j.runtime.installer.Installer \
+                 false false "" "" false true false "" true true \
+                 0 0 "" 20 20 Arial 0,0,0 8 500 'version 2.0.18' \
+                 20 40 Arial 0,0,0 8 500 \
+                 -1 -q -varfile "$installer_dir/responses"
+    cd -
+    rm -rf "$installer_dir"
+  '';
+
+  installPhase = ''
+    mkdir -p "$out/libexec/lib" "$out/bin"
+    for jarfile in lib/*; do
+      case "''${jarfile##*/}" in
+        axbo.jar) cp -vt "$out/libexec" "$jarfile";;
+        RXTXcomm.jar) ln -s "${librxtx_java}/lib/java/RXTXcomm.jar" \
+                            "$out/libexec/lib";;
+        *.jar) cp -vt "$out/libexec/lib" "$jarfile";;
+      esac
+    done
+
+    cat > "$out/bin/axbo-research" <<WRAPPER
+    #!${stdenv.shell}
+    ${oraclejre}/bin/java -Djava.library.path="${librxtx_java}/lib" \
+      -classpath "${librxtx_java}/lib/java/RXTXcomm.jar" \
+      -jar "$out/libexec/axbo.jar"
+    WRAPPER
+    chmod +x "$out/bin/axbo-research"
+  '';
+}
diff --git a/pkgs/blop/default.nix b/pkgs/blop/default.nix
new file mode 100644
index 00000000..6f1f49c5
--- /dev/null
+++ b/pkgs/blop/default.nix
@@ -0,0 +1,16 @@
+{ stdenv, fetchurl, ladspaH }:
+
+stdenv.mkDerivation rec {
+  name = "blop-${version}";
+  version = "0.2.8";
+
+  configureFlags = [
+    "--with-ladspa-prefix=${ladspaH}"
+    "--with-ladspa-plugin-dir=$(out)/lib/ladspa"
+  ];
+
+  src = fetchurl {
+    url = "mirror://sourceforge/blop/${name}.tar.gz";
+    sha256 = "02iymw84dml8glyqgx1mxq4fz2fifgi1jca28hx2r3a2mi7i71vy";
+  };
+}
diff --git a/pkgs/default.nix b/pkgs/default.nix
index 9ff952ed..d156deff 100644
--- a/pkgs/default.nix
+++ b/pkgs/default.nix
@@ -1,9 +1,27 @@
-{ pkgs ? import <nixpkgs> {} }:
+{ pkgs ? import <nixpkgs> {}
+}:
 
 let
   callPackage = pkgs.lib.callPackageWith (pkgs // self);
 
   self = {
-    beehive = callPackage ./beehive {};
+    aacolorize = callPackage ./aacolorize { };
+    axbo = callPackage ./axbo { };
+    blop = callPackage ./blop { };
+    grandpa = callPackage ./grandpa { };
+    nixops = callPackage ./nixops { };
+    libCMT = callPackage ./libcmt { };
+    librxtx_java = callPackage ./librxtx-java { };
+    lockdev = callPackage ./lockdev { };
+    pvolctrl = callPackage ./pvolctrl { };
+    sidplayfp = callPackage ./sidplayfp { };
+    tkabber_urgent_plugin = callPackage ./tkabber-urgent-plugin { };
+    tomahawk = callPackage ./tomahawk { };
+    twitchstream = callPackage ./twitchstream { };
+    vim = callPackage ./vim { };
+
+    vuizvuiKernelPatches = {
+      bfqsched = callPackage ./kpatches/bfqsched.nix { };
+    };
   };
-in self
+in { vuizvui = self; }
diff --git a/pkgs/gajim/config.patch b/pkgs/gajim/config.patch
new file mode 100644
index 00000000..fcfcc371
--- /dev/null
+++ b/pkgs/gajim/config.patch
@@ -0,0 +1,80 @@
+diff --git a/src/common/optparser.py b/src/common/optparser.py
+index f84b18a..0078317 100644
+--- a/src/common/optparser.py
++++ b/src/common/optparser.py
+@@ -30,6 +30,7 @@ import os
+ import sys
+ import locale
+ import re
++from itertools import chain
+ from time import time
+ from common import gajim
+ from common import helpers
+@@ -46,19 +47,25 @@ class OptionsParser:
+ 
+     def read(self):
+         try:
+-            fd = open(self.__filename)
++            cfg = nixfd = open("@nix_config@", 'r')
+         except Exception:
+             if os.path.exists(self.__filename):
+                 #we talk about a file
+                 print _('Error: cannot open %s for reading') % self.__filename
+             return False
+ 
++        try:
++            fd = open(self.__filename)
++            cfg = chain(cfg, fd)
++        except Exception:
++            fd = None
++
+         new_version = gajim.config.get('version')
+         new_version = new_version.split('-', 1)[0]
+         seen = set()
+         regex = re.compile(r"(?P<optname>[^.=]+)(?:(?:\.(?P<key>.+))?\.(?P<subname>[^.=]+))?\s=\s(?P<value>.*)")
+ 
+-        for line in fd:
++        for line in cfg:
+             try:
+                 line = line.decode('utf-8')
+             except UnicodeDecodeError:
+@@ -79,10 +86,13 @@ class OptionsParser:
+         self.update_config(old_version, new_version)
+         self.old_values = {} # clean mem
+ 
+-        fd.close()
++        if fd is not None:
++            fd.close()
++
++        nixfd.close()
+         return True
+ 
+-    def write_line(self, fd, opt, parents, value):
++    def write_line(self, (fd, nixcfg), opt, parents, value):
+         if value is None:
+             return
+         value = value[1]
+@@ -102,17 +112,21 @@ class OptionsParser:
+                     p = p.encode('utf-8')
+                 s += p + '.'
+         s += opt
+-        fd.write(s + ' = ' + value + '\n')
++        line = s + ' = ' + value + '\n'
++        if not nixcfg.startswith(line) and not ('\n' + line) in nixcfg:
++            fd.write(line)
+ 
+     def write(self):
+         (base_dir, filename) = os.path.split(self.__filename)
+         self.__tempfile = os.path.join(base_dir, '.' + filename)
++
+         try:
++            nixcfg = open("@nix_config@", 'r').read()
+             f = open(self.__tempfile, 'w')
+         except IOError, e:
+             return str(e)
+         try:
+-            gajim.config.foreach(self.write_line, f)
++            gajim.config.foreach(self.write_line, (f, nixcfg))
+         except IOError, e:
+             return str(e)
+         f.flush()
diff --git a/pkgs/grandpa/default.nix b/pkgs/grandpa/default.nix
new file mode 100644
index 00000000..bc68f157
--- /dev/null
+++ b/pkgs/grandpa/default.nix
@@ -0,0 +1,19 @@
+{ fetchgit, buildPythonPackage, pythonPackages, cython, gpm }:
+
+pythonPackages.buildPythonPackage {
+  name = "grandpa-0.5";
+  namePrefix = "";
+
+  src = fetchgit {
+    url = "git://github.com/aszlig/GrandPA.git";
+    rev = "41f21f67446b98f4600bc043abe32b95af6dd048";
+    sha256 = "06sgz39ri0ai3x2fck44rczk04pj8zcysbhp97x20ggmqhx5vxyh";
+  };
+
+  doCheck = false;
+
+  buildInputs = [ cython gpm ];
+  propagatedBuildInputs = with pythonPackages; [
+    bsddb curses pyserial pyglet
+  ];
+}
diff --git a/pkgs/kpatches/bfqsched.nix b/pkgs/kpatches/bfqsched.nix
new file mode 100644
index 00000000..ff7d8752
--- /dev/null
+++ b/pkgs/kpatches/bfqsched.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl }:
+
+let
+  bfqVersion = "v7r7";
+  kernelVersion = "3.19";
+  version = "${kernelVersion}.0-${bfqVersion}";
+
+  baseURL = "http://algo.ing.unimo.it/people/paolo/disk_sched/patches";
+
+  fetchPatch = { name, sha256 }: fetchurl {
+    url = "${baseURL}/${version}/${name}.patch";
+    inherit sha256;
+  };
+
+  allPatches = [
+    (fetchPatch {
+      name = "0001-block-cgroups-kconfig-build-bits-for-BFQ-"
+           + "${bfqVersion}-${kernelVersion}";
+      sha256 = "1qlk1hcirf3x9h80f9crnyqgxvw79xi89rwv0sh4hsd1lw3sbi7s";
+    })
+    (fetchPatch {
+      name = "0002-block-introduce-the-BFQ-"
+           + "${bfqVersion}-I-O-sched-for-${kernelVersion}";
+      sha256 = "04fbynd6k7g92rbyciswx3mswxr0amvp75wzdpn57wwjv5vlh7b2";
+    })
+    (fetchPatch {
+      name = "0003-block-bfq-add-Early-Queue-Merge-EQM-to-BFQ-"
+           + "${bfqVersion}-for-${kernelVersion}.0";
+      sha256 = "17ypb5y7wkr719vy00wm09szmqnlpzpvkcq5phivdxd27417828m";
+    })
+  ];
+
+  patch = stdenv.mkDerivation {
+    name = "bfqsched-${version}.patch";
+    inherit allPatches;
+    buildCommand = ''
+      cat $allPatches > "$out"
+    '';
+  };
+
+in {
+  name = "bfqsched-${version}";
+  inherit version patch;
+}
diff --git a/pkgs/libcmt/default.nix b/pkgs/libcmt/default.nix
new file mode 100644
index 00000000..e255ef25
--- /dev/null
+++ b/pkgs/libcmt/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, ladspaH }:
+
+stdenv.mkDerivation rec {
+  name = "libcmt-${version}";
+  version = "1.16";
+
+  buildInputs = [ ladspaH ];
+
+  setSourceRoot = ''
+    sourceRoot=cmt/src
+  '';
+
+  makeFlags = [
+    "INSTALL_PLUGINS_DIR=$(out)/lib/ladspa"
+  ];
+
+  preInstall = ''
+    mkdir -p "$out/lib/ladspa"
+  '';
+
+  src = fetchurl {
+    url = "http://www.ladspa.org/download/cmt_src_${version}.tgz";
+    sha256 = "0dan83pvljij3972bv214balc26p9fgw40i2d5y0x7lbd5z1saji";
+  };
+}
diff --git a/pkgs/librxtx-java/default.nix b/pkgs/librxtx-java/default.nix
new file mode 100644
index 00000000..861dc43b
--- /dev/null
+++ b/pkgs/librxtx-java/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, unzip, jdk, lockdev }:
+
+stdenv.mkDerivation rec {
+  name = "rxtx-${version}";
+  version = "2.2pre2";
+
+  src = fetchurl {
+    urls = [
+      "http://rxtx.qbang.org/pub/rxtx/${name}.zip"
+      "ftp://ftp.freebsd.org/pub/FreeBSD/ports/distfiles/${name}.zip"
+    ];
+    sha256 = "00sv9604hkq81mshih0fhqfzn4mf01d6rish6vplsi0gfqz3fc1w";
+  };
+
+  buildInputs = [ unzip jdk lockdev ];
+
+  NIX_CFLAGS_COMPILE = "-DUTS_RELEASE=\"3.8.0\"";
+
+  configureFlags = [ "--enable-liblock" ];
+
+  makeFlags = [
+    "JHOME=$(out)/lib/java"
+    "RXTX_PATH=$(out)/lib"
+  ];
+
+  preInstall = ''
+    mkdir -p "$out/lib/java"
+  '';
+}
diff --git a/pkgs/lockdev/default.nix b/pkgs/lockdev/default.nix
new file mode 100644
index 00000000..52e78eb5
--- /dev/null
+++ b/pkgs/lockdev/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, perl }:
+
+let
+  baseurl = "ftp://ftp.debian.org/debian/pool/main/l/lockdev/";
+in stdenv.mkDerivation rec {
+  name = "lockdev-${version}";
+  version = "1.0.3";
+
+  buildInputs = [ perl ];
+
+  patches = stdenv.lib.singleton (fetchurl {
+    url = baseurl + "lockdev_1.0.3-1.5.diff.gz";
+    sha256 = "1l3pq1nfb5qx3i91cjaiz3c53368gw6m28a5mv9391n5gmsdmi3r";
+  });
+
+  NIX_CFLAGS_COMPILE = "-fPIC -D_PATH_LOCK=\"/tmp\"";
+  installFlags = [ "basedir=$(out)" ];
+
+  src = fetchurl {
+    url = baseurl + "lockdev_${version}.orig.tar.gz";
+    sha256 = "10lzhq6r2dn8y3ki7wlqsa8s3ndkf842bszcjw4dbzf3g9fn7bnc";
+  };
+}
diff --git a/pkgs/nixops/default.nix b/pkgs/nixops/default.nix
new file mode 100644
index 00000000..d9d96a5b
--- /dev/null
+++ b/pkgs/nixops/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchFromGitHub, fetchpatch, git }:
+
+let
+  rev = "9d7fbce08380107d3ff6e2546add817b4ac40ee0";
+  sha256 = "167silv9p27gayrlrzpm88rj60gj3hlxhkhnsp4ccpbvq6yw1wr3";
+
+  master = stdenv.mkDerivation rec {
+    name = "nixops-upstream-patched";
+
+    src = fetchFromGitHub {
+      owner = "NixOS";
+      repo = "nixops";
+      inherit rev sha256;
+    };
+
+    phases = [ "unpackPhase" "patchPhase" "installPhase" ];
+
+    patches = [
+      (fetchpatch {
+        url = "https://github.com/NixOS/nixops/pull/201.diff";
+        sha256 = "1i5yycqayxggg3l1i6wk8lp64lqlxw5nmfya9fcrgmck8ls0rxid";
+      })
+      (fetchpatch rec {
+        name = "read-write-by-default.diff";
+        url = "https://github.com/aszlig/nixops/compare/"
+            + "NixOS:master...aszlig:${name}";
+        sha256 = "0a1jcqrqfi7dfvlha5r0609bzvin7p7nj523xxcrvwpgp6ag0zsa";
+      })
+    ];
+
+    patchFlags = "--merge -p1";
+
+    installPhase = ''
+      cp -a . "$out"
+    '';
+  };
+
+  release = import "${master}/release.nix" {
+    nixopsSrc = {
+      outPath = master;
+      inherit rev;
+      revCount = 0;
+      shortRev = builtins.substring 0 7 rev;
+    };
+    officialRelease = false;
+  };
+in stdenv.lib.getAttr stdenv.system release.build
diff --git a/pkgs/pvolctrl/default.nix b/pkgs/pvolctrl/default.nix
new file mode 100644
index 00000000..25edb27f
--- /dev/null
+++ b/pkgs/pvolctrl/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, pkgconfig, pulseaudio }:
+
+stdenv.mkDerivation rec {
+  name = "pvolctrl-0.23";
+
+  unpackPhase = let
+    baseurl = "https://sites.google.com/site/guenterbartsch/blog/"
+            + "volumecontrolutilityforpulseaudio/";
+    makefile = fetchurl {
+      url = baseurl + "Makefile";
+      sha256 = "0l2ffvb617csk6h29y64v6ywhpcp7la6vvcip1w4nq0yry6jhrqz";
+    };
+    source = fetchurl {
+      url = baseurl + "pvolctrl.c";
+      sha256 = "0vcd5dlw9l47jpabwmmzdvlkn67fz55dr3sryyh56sl263mibjda";
+    };
+  in ''
+    mkdir -p "${name}"
+    sed -e 's|/usr/bin/||' "${makefile}" > "${name}/Makefile"
+    sed -e 's/PA_VOLUME_MAX/PA_VOLUME_NORM/
+    /avg_vol += (avg_vol \* vol_mod) \/ 100;/ {
+      s/(avg_vol/((int)PA_VOLUME_NORM/
+    }
+    /if (vol_mod)/i \
+      if (info->name == NULL || strncmp(info->name, "combined", 8) != 0) \
+        return;' "${source}" > "${name}/pvolctrl.c"
+    sourceRoot="${name}"
+  '';
+
+  installPhase = ''
+    install -D -T pvolctrl "$out/bin/pvolctrl"
+  '';
+
+  buildInputs = [ pkgconfig pulseaudio ];
+}
diff --git a/pkgs/sidplayfp/default.nix b/pkgs/sidplayfp/default.nix
new file mode 100644
index 00000000..4304d4e4
--- /dev/null
+++ b/pkgs/sidplayfp/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, pkgconfig, alsaLib, pulseaudio }:
+
+let
+  libsidplayfp = stdenv.mkDerivation rec {
+    name = "libsidplayfp-${version}";
+    version = "1.3.0";
+
+    src = fetchurl {
+      url = "mirror://sourceforge/sidplay-residfp/${name}.tar.gz";
+      sha256 = "1gd4pn445v3wzr95z1b8642w016dnhq2hi8dgpc9imxig4xhx47d";
+    };
+  };
+
+in stdenv.mkDerivation rec {
+  name = "sidplayfp-${version}";
+  version = "1.1.0.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/sidplay-residfp/${name}.tar.gz";
+    sha256 = "0m8gk4xw2g4s3rcc3qy7nw6i08ivijjnbf3b6s5y3ryysyjjmc50";
+  };
+
+  postPatch = ''
+    sed -i -e '/cerr.*\(Clear screen\|Move cursor\)/d' src/menu.cpp
+  '';
+
+  buildInputs = [ pkgconfig libsidplayfp alsaLib pulseaudio ];
+}
+
diff --git a/pkgs/tkabber-urgent-plugin/default.nix b/pkgs/tkabber-urgent-plugin/default.nix
new file mode 100644
index 00000000..b39e5ea8
--- /dev/null
+++ b/pkgs/tkabber-urgent-plugin/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchsvn, xlibs }:
+
+stdenv.mkDerivation {
+  name = "tkabber-urgent-plugin";
+
+  src = fetchsvn {
+    url = "http://svn.xmpp.ru/repos/tkabber-3rd-party/trunk/plugins/urgent";
+    rev = 528;
+    sha256 = "1qr7i0559ad5y1l5h2gp8aix4nsfgm0bx7jqb030hgbxaw1xnbp5";
+  };
+
+  buildInputs = [ xlibs.libX11 ];
+
+  patchPhase = ''
+    sed -i -e 's|exec xwininfo|exec ${xlibs.xwininfo}/bin/xwininfo|' urgent.tcl
+  '';
+
+  buildPhase = ''
+    gcc -lX11 -o urgent urgent.c
+  '';
+
+  installPhase = ''
+    install -vd "$out/share/tkabber-plugins/urgent"
+    cp -vpt "$out/share/tkabber-plugins/urgent" urgent urgent.tcl
+  '';
+}
diff --git a/pkgs/tomahawk/default.nix b/pkgs/tomahawk/default.nix
new file mode 100644
index 00000000..16219e3b
--- /dev/null
+++ b/pkgs/tomahawk/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, attica, boost, gnutls, libechonest
+, liblastfm, lucenepp, vlc, qca2, qca2_ossl, qjson, qt4, qtkeychain, quazip
+, sparsehash, taglib, websocketpp, makeWrapper
+
+, enableXMPP      ? true,  libjreen     ? null
+, enableKDE       ? false, kdelibs      ? null
+, enableTelepathy ? false, telepathy_qt ? null
+}:
+
+assert enableXMPP      -> libjreen     != null;
+assert enableKDE       -> kdelibs      != null;
+assert enableTelepathy -> telepathy_qt != null;
+
+let
+  quazipQt4 = quazip.override { qt = qt4; };
+in stdenv.mkDerivation rec {
+  name = "tomahawk-${version}";
+  version = "0.9.0-git";
+
+  src = fetchFromGitHub {
+    owner = "tomahawk-player";
+    repo = "tomahawk";
+    rev = "0ec1fa0ab6fd674ca4d898c30739eb058b85dbe5";
+    sha256 = "1lfxgi7qib99zzi4byvrz0ng6l51nvfdjciyhabdlqb286wkka2f";
+  };
+
+  cmakeFlags = [
+    "-DLUCENEPP_INCLUDE_DIR=${lucenepp}/include"
+    "-DLUCENEPP_LIBRARY_DIR=${lucenepp}/lib"
+  ];
+
+  buildInputs = [
+    cmake pkgconfig attica boost gnutls libechonest liblastfm lucenepp vlc
+    qca2 qjson qt4 qtkeychain quazipQt4 sparsehash taglib websocketpp
+    makeWrapper
+  ] ++ stdenv.lib.optional enableXMPP      libjreen
+    ++ stdenv.lib.optional enableKDE       kdelibs
+    ++ stdenv.lib.optional enableTelepathy telepathy_qt;
+
+  postInstall = let
+    pluginPath = stdenv.lib.concatStringsSep ":" [
+      "${qca2_ossl}/lib/qt4/plugins"
+    ];
+  in ''
+    for i in "$out"/bin/*; do
+      wrapProgram "$i" --prefix QT_PLUGIN_PATH : "${pluginPath}"
+    done
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "A multi-source music player";
+    homepage = "http://tomahawk-player.org/";
+    license = licenses.gpl3Plus;
+    platforms = platforms.all;
+    maintainers = [ maintainers.aszlig ];
+  };
+}
diff --git a/pkgs/twitchstream/default.nix b/pkgs/twitchstream/default.nix
new file mode 100644
index 00000000..543ad261
--- /dev/null
+++ b/pkgs/twitchstream/default.nix
@@ -0,0 +1,112 @@
+{ stdenv, fetchurl, writeScriptBin, ffmpeg_2, pulseaudio }:
+
+# FIXME: Clean up this whole file!
+
+with stdenv.lib;
+
+let
+  streams = {
+    dnyarri = {
+      width = 1920;
+      height = 1080;
+      monitor = 1;
+    };
+    mmrnmhrm = {
+      width = 1600;
+      height = 1280;
+      monitor = 1;
+    };
+  };
+
+  sumAttr = name: attrs: acc: acc + (getAttr name attrs);
+  maxAttr = name: attrs: acc: let
+    current = getAttr name attrs;
+  in if acc > current then acc else current;
+
+  fullwidth = fold (sumAttr "width") 0 (attrValues streams);
+  maxheight = fold (maxAttr "height") 0 (attrValues streams);
+
+  resolution = "1920x1080";
+  fps = 15;
+  quality = "slow";
+
+  encoder = let
+    aacenc = stdenv.mkDerivation rec {
+      name = "vo-aacenc-0.1.3";
+      src = fetchurl {
+        url = "mirror://sourceforge/opencore-amr/${name}.tar.gz";
+        sha256 = "0dhghm3c8pqrriwwyj5x9i0yf52fmdfijbgqqkvqvwarldvp86p5";
+      };
+    };
+    base = ffmpeg_2.override { x11grabSupport = true; };
+  in stdenv.lib.overrideDerivation base (attrs: {
+    configureFlags = attrs.configureFlags ++ [
+      "--enable-libpulse"
+      "--enable-version3"
+      "--enable-libvo-aacenc"
+    ];
+    preConfigure = ''
+      addPkgConfigPath "${pulseaudio}"
+      addPkgConfigPath "${aacenc}"
+    '';
+    NIX_CFLAGS_COMPILE = "-I${aacenc}/include -L${aacenc}/lib";
+    buildInputs = attrs.buildInputs ++ [ pulseaudio aacenc ];
+  });
+
+  script = let
+    combine = [
+      "color=c=black:s=1248x640 [surface]"
+      "[0:v] setpts=PTS-STARTPTS, scale=680x540 [left]"
+      "[1:v] setpts=PTS-STARTPTS, scale=568x640 [right]"
+      "[surface][left] overlay=0:0 [leftonly]"
+      "[leftonly][right] overlay=680:0 [out]"
+    ];
+  /*
+    combine = [
+      "color=c=black:s=${toString fullwidth}x${toString maxheight} [surface]"
+      "[surface][0:v] overlay=0:0 [leftonly]"
+      "[leftonly][1:v] overlay=${toString streams.dnyarri.width}:0 [out]"
+    ];
+  */
+    nop = x: "\\";
+  in ''
+    #!${stdenv.shell}
+    keyfile="$HOME/.twitch.key"
+    if [ ! -e "$keyfile" ]; then
+      echo "You need to put your streaming key into $keyfile!" >&2
+      echo "To obtain the key, please visit the following URL:" >&2
+      echo "http://www.twitch.tv/broadcast/dashboard/streamkey" >&2
+      exit 1
+    fi
+
+    ${encoder}/bin/ffmpeg -loglevel warning \
+      -f x11grab -s "${resolution}" -r "${toString fps}" -i "$DISPLAY+1920,0" \
+      -f pulse -ac 2 -i default \
+      -codec:v libx264 -s 1280x720 -preset:v fast -crf 24 -pix_fmt yuv420p \
+      -codec:a libvo_aacenc -ar 44100 -threads auto -b:a 128k -bufsize 8k \
+      -f flv "rtmp://live-fra.twitch.tv/app/$(< "$keyfile")" "$@"
+  '';
+
+  disabled = ''
+    ${encoder}/bin/ffmpeg \
+      -f x11grab -s "${resolution}" -r "${toString fps}" -i "$DISPLAY+1920,0" \
+      ${nop ''
+      -i 'tcp://dnyarri:7891?listen' \
+      ''}
+      -f pulse -ac 2 -i default \
+      ${nop ''
+      -filter_complex "${concatStringsSep "; " combine}" \
+      -map "[out]" -map 2:a,0:v \
+      -c:v libx264 -preset "${quality}" -s 1280x720 \
+                   -b 2500k -minrate 2500k -maxrate 2500k \
+                   -tune film -qscale:v 1 -threads:v 4 -crf 1 -tune animation \
+      -c:a libmp3lame -ar 44100 -qscale:a 1 -bufsize 512k -threads 4 \
+      -framerate "${toString fps}" \
+      -force_key_frames 2 -b 2500k -minrate 2500k -maxrate 2500k \
+      -g 2 -keyint_min 2 \
+      ''}
+      -c:v libx264 -preset fast -pix_fmt yuv420p -s 1280x800 -threads 0 \
+      -c:a libmp3lame -ab 128k -ar 44100 -threads 0 \
+      -f flv "rtmp://live-fra.twitch.tv/app/$(< "$keyfile")" "$@"
+  '';
+in writeScriptBin "twitchstream" script
diff --git a/pkgs/vim/default.nix b/pkgs/vim/default.nix
new file mode 100644
index 00000000..f753b453
--- /dev/null
+++ b/pkgs/vim/default.nix
@@ -0,0 +1,333 @@
+{ stdenv, lib, writeTextFile, writeText, buildEnv
+, fetchurl, fetchFromGitHub, vim_configurable
+}:
+
+let
+  fetchVimScript = { srcId, sha256, type, name }: let
+    baseUrl = "http://www.vim.org/scripts/download_script.php";
+    src = fetchurl {
+      name = "script${toString srcId}.vim";
+      url = "${baseUrl}?src_id=${toString srcId}";
+      inherit sha256;
+    };
+  in stdenv.mkDerivation {
+    name = "vim-${type}-${toString srcId}";
+    buildCommand = ''
+      install -vD -m 0644 "${src}" "$out/${type}/${name}.vim"
+    '';
+  };
+
+  extractSubdir = subdir: src: stdenv.mkDerivation {
+    name = "${src.name}-subdir";
+    phases = [ "unpackPhase" "installPhase" ];
+    inherit src;
+    installPhase = ''
+      cp -Rd "${subdir}" "$out"
+    '';
+  };
+
+  mkVimPlugins = plugins: buildEnv {
+    name = "vim-plugins";
+    paths = with lib; mapAttrsToList (const id) plugins;
+    ignoreCollisions = true;
+    postBuild = ''
+      find -L "$out" -mindepth 1 -maxdepth 1 -type f -delete
+    '';
+  };
+
+  pluginDeps = {
+    vimAddonMwUtils = fetchFromGitHub {
+      owner = "MarcWeber";
+      repo = "vim-addon-mw-utils";
+      rev = "0c5612fa31ee434ba055e21c76f456244b3b5109";
+      sha256 = "147s1k4n45d3x281vj35l26sv4waxjlpqdn83z3k9n51556h1d45";
+    };
+
+    vimAddonCompletion = fetchFromGitHub {
+      owner = "MarcWeber";
+      repo = "vim-addon-completion";
+      rev = "80f717d68df5b0d7b32228229ddfd29c3e86e435";
+      sha256 = "08acffzy847w8b5j8pdw6qsidm2859ki5q351n4r7fkr969p80mi";
+    };
+
+    vimAddonActions = fetchFromGitHub {
+      owner = "MarcWeber";
+      repo = "vim-addon-actions";
+      rev = "a5d20500fb8812958540cf17862bd73e7af64936";
+      sha256 = "1wfkwr89sn2w97i94d0dqylcg9mr6pirjadi0a4l492nfnsh99bc";
+    };
+
+    vimAddonBackgroundCmd = fetchFromGitHub {
+      owner = "MarcWeber";
+      repo = "vim-addon-background-cmd";
+      rev = "14df72660a95804a57c02b9ff0ae3198608e2491";
+      sha256 = "09lh6hqbx05gm7njhpqvhqdwig3pianq9rddxmjsr6b1vylgdgg4";
+    };
+
+    vimAddonErrorFormats = fetchFromGitHub {
+      owner = "MarcWeber";
+      repo = "vim-addon-errorformats";
+      rev = "dcbb203ad5f56e47e75fdee35bc92e2ba69e1d28";
+      sha256 = "159zqm69fxbxcv3b2y99g57bf20qrzsijcvb5rzy2njxah3049m1";
+    };
+
+    vimAddonToggleBuffer = fetchFromGitHub {
+      owner = "MarcWeber";
+      repo = "vim-addon-toggle-buffer";
+      rev = "a1b38b9c5709cba666ed2d84ef06548f675c6b0b";
+      sha256 = "1xq38kfdm36c34ln66znw841q797w5gm8bpq1x64bsf2h6n3ml03";
+    };
+
+    vimAddonGotoThingAtCursor = fetchFromGitHub {
+      owner = "MarcWeber";
+      repo = "vim-addon-goto-thing-at-cursor";
+      rev = "f052e094bdb351829bf72ae3435af9042e09a6e4";
+      sha256 = "1ksm2b0j80zn8sz2y227bpcx4jsv76lwgr2gpgy2drlyqhn2vlv0";
+    };
+
+    vimAddonViews = fetchFromGitHub {
+      owner = "MarcWeber";
+      repo = "vim-addon-views";
+      rev = "d1383ad56d0a07d7350880adbadf9de501729fa8";
+      sha256 = "09gqh7w5rk4lmra706schqaj8dnisf396lpsipm7xv6gy1qbslnv";
+    };
+
+    vimAddonSwfMill = fetchFromGitHub {
+      owner = "MarcWeber";
+      repo = "vim-addon-swfmill";
+      rev = "726777e02cbe3ad8f82e37421fb37674f446a148";
+      sha256 = "0ablzl5clgfzhzwvzzbaj0cda0b4cyrj3pbv02f26hx7rfnssaqm";
+    };
+
+    vimHaxeSyntax = fetchFromGitHub {
+      owner = "MarcWeber";
+      repo = "vim-haxe-syntax";
+      rev = "500acc2f2ab92d77ff6cd04fdc7868800c033dfa";
+      sha256 = "1ipm0igplplfmscm3bk95qpf9rw71h133l9shmw54mxr4h0ymnmj";
+    };
+
+    tlib = fetchFromGitHub {
+      owner = "tomtom";
+      repo = "tlib_vim";
+      rev = "bc4097bd38c4bc040fe1e74df68dec6c9adfcb6a";
+      sha256 = "19v7bgmkk4k2g1z62bd0kky29xxfq96l7wfrl27wb2zijlhbrnpz";
+    };
+
+    vamStub = writeTextFile {
+      name = "vam-stub";
+      destination = "/autoload/vam.vim";
+      text = ''
+        fun! vam#DefineAndBind(local, global, default)
+          return ' if !exists('.string(a:global).') |
+                 \ let '.a:global.' = '.a:default.' |
+                 \ endif | let '.a:local.' = '.a:global
+        endfun
+      '';
+    };
+  };
+
+  plugins = mkVimPlugins (pluginDeps // {
+    vimErl = fetchFromGitHub {
+      owner = "jimenezrick";
+      repo = "vimerl";
+      rev = "823bf8cb515bb10396c705cdc017aa9121cc4d12";
+      sha256 = "0sybkx8iy8qhr6nlwn52j7zd5v99rn0b8wbg43d112z2px4yq5x3";
+    };
+
+    vimHaxe = fetchFromGitHub {
+      owner = "MarcWeber";
+      repo = "vim-haxe";
+      rev = "8efc705db41a01713d67d437f29866a1ff831e8a";
+      sha256 = "15kv13gvpgf23p0566qrlw7gmpir2z7g5dnkfs1knmcwzw45am5d";
+    };
+
+    factor = extractSubdir "misc/vim" (fetchFromGitHub {
+      owner = "slavapestov";
+      repo = "factor";
+      rev = "0d6f70cc7cf35cc627ee78886e2932091a651fe6";
+      sha256 = "0lmqzvrmwgmxpcpwgn59y033sf4jybmw3lffbjwww5d7ch90333q";
+    });
+
+    opaLang = extractSubdir "tools/editors/vim" (fetchFromGitHub {
+      owner = "MLstate";
+      repo = "opalang";
+      rev = "94e4e6d9d8da9a72214f4f28dd1ffa1a987997eb";
+      sha256 = "0d6b67868cfqakkz63y5ynpz549lbpfzc3c3x7kx3ffsv10xy3bb";
+    });
+
+    lslvim = fetchFromGitHub {
+      owner = "sukima";
+      repo = "LSLvim";
+      rev = "f269de39a1c713a43470e90d0ec78208c0f05e0b";
+      sha256 = "1plwx5id3jsj4y6yhshlf3rishxhf1b9k47g2cpzaczvqb5bl40w";
+    };
+
+    vimSyntaxShakespeare = fetchFromGitHub {
+      owner = "pbrisbin";
+      repo = "vim-syntax-shakespeare";
+      rev = "29085ae94ee3dbd7f39f2a7705d86692ef5bc365";
+      sha256 = "0kvys81jiwqzwmpbk1lvbciw28yha4shd1xby5saiy4b68l6d8rk";
+    };
+
+    glsl = fetchVimScript {
+      name = "glsl";
+      srcId = 3194;
+      sha256 = "1vqfcpjmfyjc95wns3i84kgd1k5r2lwjjvjcprygi9g9vng7i5xc";
+      type = "syntax";
+    };
+
+    actionScript = fetchVimScript {
+      name = "actionscript";
+      srcId = 1205;
+      sha256 = "0pdzqg678lhn7lmqf3z9icpj6ff2nnghsxy983kxkn8sblnzlhfs";
+      type = "syntax";
+    };
+
+    indentPython = fetchVimScript {
+      name = "python";
+      srcId = 4316;
+      sha256 = "1pgdiaqd1hm0qpspy1asj7i103pq0846lnjrxvl6pk17ymww9pmk";
+      type = "indent";
+    };
+
+    nixAddon = fetchFromGitHub {
+      owner = "MarcWeber";
+      repo = "vim-addon-nix";
+      rev = "7b0a376bb1797fef8da2dc14e768f318bcb671e8";
+      sha256 = "00dsba2a0az9bw1sni12km1vdga9x32dapxaj5gmq98hzqlhklyp";
+    };
+
+    urwebAddon = fetchFromGitHub {
+      owner = "MarcWeber";
+      repo = "vim-addon-urweb";
+      rev = "49ea3960a9924a5dd7ff70956d1a7c0479a55773";
+      sha256 = "090ww8nxqsabrwf4r8g7a93kawnp6zwpsx65yxpacwwwlbc73m7s";
+    };
+
+    indentHaskell = fetchVimScript {
+      name = "haskell";
+      srcId = 7407;
+      sha256 = "1lj44jkyihmcnj2kcfckhqzr9gfipda9frbzicix2wrc5728kjsv";
+      type = "indent";
+    };
+
+    fishSyntax = fetchVimScript {
+      name = "fish";
+      srcId = 20242;
+      sha256 = "12gfmyxxf84f19bp8xfmkb9phbfkifn89sjgi8hnv6dn0a5y1zpj";
+      type = "syntax";
+    };
+
+    elmVim = fetchFromGitHub {
+      owner = "lambdatoast";
+      repo = "elm.vim";
+      rev = "ad556c97e26072b065825852ceead0fe6a1f7d7c";
+      sha256 = "19k6b6m5ngm5qn2f3p13hzjyvha53fpdgq691z8n0lwfn8831b21";
+    };
+
+    flake8 = fetchFromGitHub {
+      owner = "nvie";
+      repo = "vim-flake8";
+      rev = "293613dbe731a2875ce93739e7b64ee504d8bbab";
+      sha256 = "0xmqmbh66g44vhx9769mzs820k6ksbpfnsfvivmbhzlps2hjqpqg";
+    };
+  });
+
+  generic = ''
+    syntax on
+    colorscheme elflord
+
+    " boolean
+    set nocompatible
+    set showcmd
+    set showmatch
+    set ignorecase
+    set smartcase
+    set incsearch
+    set modeline
+    set smarttab
+    set expandtab
+    set smartindent
+    set ruler
+
+    " non-boolean
+    set tabstop=4
+    set softtabstop=4
+    set shiftwidth=4
+    set textwidth=80
+    set termencoding=ascii
+    set backspace=indent,eol,start
+    set background=dark
+  '';
+
+  plugin = ''
+    " erlang
+    let erlang_folding = 0
+    let erlang_highlight_bif = 1
+    let erlang_force_use_vimerl_indent = 1
+
+    " python
+    let python_highlight_numbers = 1
+    let python_highlight_builtins = 1
+    let python_highlight_exceptions = 1
+
+    " all plugins
+    set runtimepath^=${plugins}
+    set runtimepath+=${plugins}/after
+  '';
+
+  autocmd = ''
+    " jump to last position
+    au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") |
+                   \ exe "normal! g'\"zz" | endif
+
+    " filetype defaults
+    filetype plugin indent on
+    au BufNewFile,BufRead *.as set filetype=actionscript
+    au BufNewFile,BufRead *.html set tabstop=4|set shiftwidth=4|set expandtab
+    au FileType python set textwidth=79
+    au FileType gitcommit set textwidth=72
+
+    " highlight unnecessary whitespace
+    highlight ExtraWhitespace ctermbg=red guibg=red
+    match ExtraWhitespace /\s\+$/
+    au BufWinEnter,InsertLeave * match ExtraWhitespace /\s\+$/
+    au InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
+    " prevent colorscheme from overriding these highlights
+    au ColorScheme * highlight ExtraWhitespace ctermbg=red guibg=red
+
+    " highlight everything exceeding 80 characters
+    au BufWinEnter * let w:m2=matchadd('ErrorMsg', '\%>80v.\+', -1)
+  '';
+
+  misc = ''
+    " ASCII art mode
+    fun! AAMode()
+      highlight clear ExtraWhitespace
+      for m in getmatches()
+        if m.group == 'ErrorMsg' && m.pattern == '\%>80v.\+'
+          call matchdelete(m.id)
+        endif
+      endfor
+    endfun
+
+    " flake everything that has been *detected* as python (not just by suffix).
+    autocmd BufWritePost * if &ft ==# 'python' | call Flake8() | endif
+  '';
+
+  vimrc = writeText "vimrc" ''
+    ${generic}
+    ${plugin}
+
+    if has("autocmd")
+      ${autocmd}
+    endif
+
+    ${misc}
+  '';
+
+in lib.overrideDerivation vim_configurable (o: {
+  postInstall = (o.postInstall or "") + ''
+    ln -sf "${vimrc}" "$out/share/vim/vimrc"
+  '';
+})
diff --git a/release.nix b/release.nix
index 1edf284a..df248706 100644
--- a/release.nix
+++ b/release.nix
@@ -1,22 +1,67 @@
-with import <nixpkgs/lib>;
-
 let
   system = "x86_64-linux";
+  pkgs = import <nixpkgs> { inherit system; };
+
+in with pkgs.lib; with builtins; {
 
-  genMachine = name: cfg: (import <nixpkgs/nixos/lib/eval-config.nix> {
-    inherit system;
-    modules = [ cfg ];
-  }).config.system.build.toplevel;
+  machines = mapAttrs (name: configuration: (import <nixpkgs/nixos> {
+    inherit configuration;
+  }).system) (import ./network.nix);
 
-in {
-  machines = mapAttrs genMachine (import ./default.nix).machines;
   tests = {
-    heinrich = import ./tests/heinrich.nix { inherit system; };
+    i3 = import ./tests/i3.nix { inherit system; };
   };
 
-  pkgs = import ./pkgs {
-    pkgs = import <nixpkgs> {
+  manual = let
+    modules = import <nixpkgs/nixos/lib/eval-config.nix> {
+      modules = import ./modules/module-list.nix;
+      check = false;
       inherit system;
     };
+
+    isVuizvui = opt: head (splitString "." opt.name) == "vuizvui";
+    filterDoc = filter (opt: isVuizvui opt && opt.visible && !opt.internal);
+    optionsXML = toXML (filterDoc (optionAttrSetToDocList modules.options));
+    optionsFile = toFile "options.xml" (unsafeDiscardStringContext optionsXML);
+  in pkgs.stdenv.mkDerivation {
+    name = "vuizvui-options";
+
+    buildInputs = singleton pkgs.libxslt;
+
+    xsltFlags = ''
+      --param section.autolabel 1
+      --param section.label.includes.component.label 1
+      --param html.stylesheet 'style.css'
+      --param xref.with.number.and.title 1
+      --param admon.style '''
+    '';
+
+    buildCommand = ''
+      xsltproc -o options-db.xml \
+        ${<nixpkgs/nixos/doc/manual/options-to-docbook.xsl>} \
+        ${optionsFile}
+
+      cat > manual.xml <<XML
+      <book xmlns="http://docbook.org/ns/docbook"
+            xmlns:xlink="http://www.w3.org/1999/xlink"
+            xmlns:xi="http://www.w3.org/2001/XInclude">
+        <title>Vuizvui-specific NixOS options</title>
+        <para>
+          The following NixOS options are specific to Vuizvui:
+        </para>
+        <xi:include href="options-db.xml" />
+      </book>
+      XML
+
+      xsltproc -o "$out/manual.html" $xsltFlags -nonet -xinclude \
+        ${pkgs.docbook5_xsl}/xml/xsl/docbook/xhtml/docbook.xsl \
+        manual.xml
+
+      cp "${<nixpkgs/nixos/doc/manual/style.css>}" "$out/style.css"
+
+      mkdir -p "$out/nix-support"
+      echo "doc manual $out manual.html" \
+        > "$out/nix-support/hydra-build-products"
+    '';
   };
 }
diff --git a/tests/i3.nix b/tests/i3.nix
new file mode 100644
index 00000000..0505b67f
--- /dev/null
+++ b/tests/i3.nix
@@ -0,0 +1,31 @@
+import <nixpkgs/nixos/tests/make-test.nix> ({ pkgs, ... }: {
+  name = "i3";
+
+  machine = { lib, ... }: {
+    imports = [
+      ../common.nix
+      <nixpkgs/nixos/tests/common/x11.nix>
+    ];
+    services.xserver.windowManager.default = lib.mkForce "i3";
+    /* XXX */
+    fonts = {
+      enableCoreFonts = true;
+      enableFontDir = true;
+      enableGhostscriptFonts = true;
+      fonts = [
+        pkgs.dosemu_fonts
+        pkgs.liberation_ttf
+      ];
+    };
+    /* !XXX */
+    vuizvui = {
+      i3.enable = true;
+    };
+  };
+
+  testScript = { nodes, ... }: ''
+    $machine->waitForX;
+    $machine->sleep(20);
+    $machine->screenshot("i3");
+  '';
+})