diff options
| author | nin <nin@c-base.org> | 2018-01-30 23:06:17 +0100 | 
|---|---|---|
| committer | nin <nin@c-base.org> | 2018-01-30 23:06:17 +0100 | 
| commit | c9a3eda0f4fc31f58d464b8d6b2e5eff9fd31719 (patch) | |
| tree | 7c921eda2f01125bbae1c391c9c5d08b6b9c41ca | |
| parent | 3ee37b596f64f01865cd3f7f9c32e75cebae9fae (diff) | |
| parent | 482ea9732dde1aae5a5424b1298fa1b00f956e5d (diff) | |
Merge remote-tracking branch 'prism/master'
| -rw-r--r-- | jeschli/1systems/bln/config.nix | 1 | ||||
| -rw-r--r-- | jeschli/1systems/bolide/config.nix | 142 | ||||
| -rw-r--r-- | jeschli/1systems/bolide/hardware-configuration.nix | 32 | ||||
| -rw-r--r-- | jeschli/1systems/bolide/source.nix | 4 | ||||
| -rw-r--r-- | jeschli/1systems/brauerei/config.nix | 7 | ||||
| -rw-r--r-- | jeschli/1systems/enklave/config.nix | 1 | ||||
| -rw-r--r-- | jeschli/2configs/IM.nix | 56 | ||||
| -rw-r--r-- | jeschli/2configs/default.nix | 3 | ||||
| -rw-r--r-- | jeschli/2configs/vim.nix | 158 | ||||
| -rw-r--r-- | jeschli/2configs/virtualbox.nix | 23 | ||||
| -rw-r--r-- | tv/2configs/vim.nix | 4 | 
11 files changed, 372 insertions, 59 deletions
diff --git a/jeschli/1systems/bln/config.nix b/jeschli/1systems/bln/config.nix index 9e5f8c5..9c491c8 100644 --- a/jeschli/1systems/bln/config.nix +++ b/jeschli/1systems/bln/config.nix @@ -8,6 +8,7 @@    imports =      [ # Include the results of the hardware scan.        <stockholm/jeschli> +      <stockholm/jeschli/2configs/virtualbox.nix>        ./hardware-configuration.nix        # ./dcso-vpn.nix      ]; diff --git a/jeschli/1systems/bolide/config.nix b/jeschli/1systems/bolide/config.nix new file mode 100644 index 0000000..8364080 --- /dev/null +++ b/jeschli/1systems/bolide/config.nix @@ -0,0 +1,142 @@ +# Edit this configuration file to define what should be installed on +# your system.  Help is available in the configuration.nix(5) man page +# and in the NixOS manual (accessible by running ‘nixos-help’). + +{ config, pkgs, ... }: + +{ +  imports = +    [ +      ./hardware-configuration.nix +      <stockholm/jeschli> +      <stockholm/jeschli/2configs/urxvt.nix> +    ]; + +  krebs.build.host = config.krebs.hosts.bolide; +  # Use the GRUB 2 boot loader. +  boot.loader.grub.enable = true; +  boot.loader.grub.version = 2; +  # boot.loader.grub.efiSupport = true; +  # boot.loader.grub.efiInstallAsRemovable = true; +  # boot.loader.efi.efiSysMountPoint = "/boot/efi"; +  # Define on which hard drive you want to install Grub. +  boot.loader.grub.device = "/dev/sdb"; # or "nodev" for efi only +  boot.initrd.luks.devices = [ { +    name = "bla"; +    device = "/dev/disk/by-uuid/53f1eeaf-a7ac-456c-a2af-778dd8b8d5b0"; +    preLVM = true; +    allowDiscards = true; +  } ]; +#  networking.hostName = "bolide"; # Define your hostname. +  networking.wireless.enable = true;  # Enables wireless support via wpa_supplicant. + +  # Select internationalisation properties. +  # i18n = { +  #   consoleFont = "Lat2-Terminus16"; +  #   consoleKeyMap = "us"; +  #   defaultLocale = "en_US.UTF-8"; +  # }; + +  # Set your time zone. +  # time.timeZone = "Europe/Amsterdam"; + +  # List packages installed in system profile. To search by name, run: +  # $ nix-env -qaP | grep wget +  environment.shellAliases = { +    n = "nix-shell"; +    stocki = pkgs.writeDash "deploy" '' +      cd ~/stockholm +      exec nix-shell -I stockholm="$PWD" --run 'deploy  --system="bolide"' +    ''; +  }; +  nixpkgs.config.allowUnfree = true; +  environment.systemPackages = with pkgs; [ +    wget vim +  # system helper +    ag +    curl +    copyq +    dmenu +    git +    i3lock +    keepass +    networkmanagerapplet +    rsync +    terminator +    tmux +    wget +  #  rxvt_unicode +  # editors +    emacs +  # internet +    thunderbird +    chromium +    google-chrome +  # programming languages +    go +    gcc +    ghc +    python35 +    python35Packages.pip +  # go tools +    golint +    gotools +  # dev tools +    elmPackages.elm +    gnumake +    jetbrains.pycharm-professional +    jetbrains.webstorm +    jetbrains.goland +  # document viewer +    zathura +  ]; + + # Some programs need SUID wrappers, can be configured further or are + # started in user sessions. + # programs.bash.enableCompletion = true; + # programs.mtr.enable = true; + # programs.gnupg.agent = { enable = true; enableSSHSupport = true; }; + + # List services that you want to enable: + + # Enable the OpenSSH daemon. + services.openssh.enable = true; + + # Open ports in the firewall. + # networking.firewall.allowedTCPPorts = [ ... ]; + # networking.firewall.allowedUDPPorts = [ ... ]; + # Or disable the firewall altogether. + # networking.firewall.enable = false; + + # Enable CUPS to print documents. + # services.printing.enable = true; + + # Enable the X11 windowing system. + services.xserver.enable = true; + # services.xserver.layout = "us"; + # services.xserver.xkbOptions = "eurosign:e"; + + services.xserver.displayManager.sddm.enable = true; + services.xserver.windowManager.xmonad.enable = true; + services.xserver.windowManager.xmonad.enableContribAndExtras = true; + # Enable touchpad support. + # services.xserver.libinput.enable = true; + + # Enable the KDE Desktop Environment. + # services.xserver.displayManager.sddm.enable = true; + # services.xserver.desktopManager.plasma5.enable = true; + + # Define a user account. Don't forget to set a password with ‘passwd’. +  users.extraUsers.jeschli = { +    isNormalUser = true; +    uid = 1000; +  }; + + # This value determines the NixOS release with which your system is to be + # compatible, in order to avoid breaking some software such as database + # servers. You should change this only after NixOS release notes say you + # should. + system.stateVersion = "17.09"; # Did you read the comment? + +} + diff --git a/jeschli/1systems/bolide/hardware-configuration.nix b/jeschli/1systems/bolide/hardware-configuration.nix new file mode 100644 index 0000000..183b29e --- /dev/null +++ b/jeschli/1systems/bolide/hardware-configuration.nix @@ -0,0 +1,32 @@ +# Do not modify this file!  It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations.  Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, ... }: + +{ +  imports = +    [ <nixpkgs/nixos/modules/installer/scan/not-detected.nix> +    ]; + +  boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ]; +  boot.kernelModules = [ "kvm-intel" "wl" ]; +  boot.extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ]; + +  fileSystems."/" = +    { device = "/dev/bolide-pool/bolide-root"; +      fsType = "ext4"; +    }; + +  fileSystems."/home" = +    { device = "/dev/bolide-pool/bolide-home"; +      fsType = "ext4"; +    }; +  fileSystems."/boot" = +    { device = "/dev/disk/by-uuid/3aeb67c4-5b6e-4df2-8013-607fe0fb8525"; +      fsType = "ext4"; +    }; +  swapDevices = [ ]; + +  nix.maxJobs = lib.mkDefault 8; +  powerManagement.cpuFreqGovernor = "powersave"; +} diff --git a/jeschli/1systems/bolide/source.nix b/jeschli/1systems/bolide/source.nix new file mode 100644 index 0000000..0bd7af5 --- /dev/null +++ b/jeschli/1systems/bolide/source.nix @@ -0,0 +1,4 @@ +import <stockholm/jeschli/source.nix> { +  name = "bolide"; +  secure = true; +} diff --git a/jeschli/1systems/brauerei/config.nix b/jeschli/1systems/brauerei/config.nix index 2dec457..e4109c6 100644 --- a/jeschli/1systems/brauerei/config.nix +++ b/jeschli/1systems/brauerei/config.nix @@ -35,6 +35,13 @@    time.timeZone = "Europe/Amsterdam";    nixpkgs.config.allowUnfree = true;    # List packages installed in system profile. To search by name, run: # $ nix-env -qaP | grep wget +  environment.shellAliases = { +    n = "nix-shell"; +    stocki = pkgs.writeDash "deploy" '' +      cd ~/stockholm +      exec nix-shell -I stockholm="$PWD" --run 'deploy  --system="brauerei"' +    ''; +  };    environment.systemPackages = with pkgs; [    # system helper      ag diff --git a/jeschli/1systems/enklave/config.nix b/jeschli/1systems/enklave/config.nix index 0100890..76e7186 100644 --- a/jeschli/1systems/enklave/config.nix +++ b/jeschli/1systems/enklave/config.nix @@ -4,6 +4,7 @@    imports = [      <stockholm/jeschli>      <stockholm/jeschli/2configs/retiolum.nix> +    <stockholm/jeschli/2configs/IM.nix>      <stockholm/jeschli/2configs/os-templates/CentOS-7-64bit.nix>      {        networking.dhcpcd.allowInterfaces = [ diff --git a/jeschli/2configs/IM.nix b/jeschli/2configs/IM.nix new file mode 100644 index 0000000..171b782 --- /dev/null +++ b/jeschli/2configs/IM.nix @@ -0,0 +1,56 @@ +with (import <stockholm/lib>); +{ config, lib, pkgs, ... }: +let +  tmux = pkgs.writeDashBin "tmux" '' +    export TERM=xterm-256color +    exec ${pkgs.tmux}/bin/tmux -f ${pkgs.writeText "tmux.conf" '' +      set-option -g default-terminal screen-256color +    ''} "$@" +  ''; +in { + +  services.bitlbee = { +    enable = true; +    portNumber = 6666; +    plugins = [ +      pkgs.bitlbee-facebook +      pkgs.bitlbee-steam +      pkgs.bitlbee-discord +    ]; +    libpurple_plugins = [ pkgs.telegram-purple ]; +  }; + +  users.extraUsers.chat = { +    home = "/home/chat"; +    uid = genid "chat"; +    useDefaultShell = true; +    createHome = true; +    openssh.authorizedKeys.keys = with config.krebs.users; [ +      jeschli.pubkey +      jeschli-bln.pubkey +      jeschli-brauerei.pubkey +    ]; +    packages = [ tmux ];  +  }; + + +  systemd.services.chat = { +    description = "chat environment setup"; +    after = [ "network.target" ]; +    wantedBy = [ "multi-user.target" ]; + +    restartIfChanged = false; + +    path = [ +      pkgs.rxvt_unicode.terminfo +    ]; + +    serviceConfig = { +      User = "chat"; +      RemainAfterExit = true; +      Type = "oneshot"; +      ExecStart = "${tmux}/bin/tmux -2 new-session -d -s IM ${pkgs.weechat}/bin/weechat"; +      ExecStop = "${tmux}/bin/tmux kill-session -t IM"; +    }; +  }; +} diff --git a/jeschli/2configs/default.nix b/jeschli/2configs/default.nix index 6d788d2..0ac3708 100644 --- a/jeschli/2configs/default.nix +++ b/jeschli/2configs/default.nix @@ -23,6 +23,9 @@ with import <stockholm/lib>;      proot      populate +  # aliases +    (writeDashBin "irc" "ssh chat@enklave -t tmux a") +    #style      most      rxvt_unicode.terminfo diff --git a/jeschli/2configs/vim.nix b/jeschli/2configs/vim.nix index 1a2231a..7721b1d 100644 --- a/jeschli/2configs/vim.nix +++ b/jeschli/2configs/vim.nix @@ -1,5 +1,6 @@  { config, pkgs, ... }: +with import <stockholm/lib>;  let    customPlugins.vim-javascript = pkgs.vimUtils.buildVimPlugin {      name = "vim-javascript"; @@ -16,72 +17,84 @@ let         owner = "mxw";         repo = "vim-jsx";         rev = "5b968dfa512c57c38ad7fe420f3e8ab75a73949a"; -       sha256 = "1z3yhhbmbzfw68qjzyvpbmlyv2a1p814sy5q2knn04kcl30vx94a";  +       sha256 = "1z3yhhbmbzfw68qjzyvpbmlyv2a1p814sy5q2knn04kcl30vx94a";       };     }; +  in { -# {    environment.systemPackages = [      (pkgs.vim_configurable.customize {        name = "vim"; - -    vimrcConfig.customRC = '' -  set nocompatible  - -	:imap jk <Esc> -	:vmap v v -	:map gr :GoRun<Enter> -	:nnoremap <S-TAB> :bnext<CR> -	:nnoremap <C-TAB> <c-w><c-w> -  :map nf :NERDTreeToggle<CR> -	set autowrite -	set number -	set ruler -  set path+=**  -  set wildmenu - -	noremap x "_x -	set clipboard=unnamedplus - -  let g:jsx_ext_required = 0 - -	let g:go_list_type = "quickfix" -	let g:go_test_timeout = '10s' -	let g:go_fmt_command = "goimports" -	let g:go_snippet_case_type = "camelcase" -	let g:go_highlight_types = 1 -	let g:go_highlight_fields = 1 -	let g:go_highlight_functions = 1 -	let g:go_highlight_methods = 1 -  let g:go_highlight_extra_types = 1 -  autocmd BufNewFile,BufRead *.go setlocal noexpandtab tabstop=4 shiftwidth=4  -  let g:rehash256 = 1 -  let g:molokai_original = 1 -  colorscheme molokai -	let g:go_metalinter_enabled = ['vet', 'golint', 'errcheck'] -	let g:go_metalinter_autosave = 1 -	" let g:go_metalinter_autosave_enabled = ['vet', 'golint'] -	" let g:go_def_mode = 'godef' -	" let g:go_decls_includes = "func,type" - - -	" Trigger configuration. Do not use <tab> if you use https://github.com/Valloric/YouCompleteMe. -	let g:UltiSnipsExpandTrigger="<c-e>" -	let g:UltiSnipsJumpForwardTrigger="<c-t>" -	let g:UltiSnipsJumpBackwardTrigger="<c-q>" - -	" If you want :UltiSnipsEdit to split your window. -	let g:UltiSnipsEditSplit="vertical" - -	if has('persistent_undo')      "check if your vim version supports it -	set undofile                 "turn on the feature   -	set undodir=$HOME/.vim/undo  "directory where the undo files will be stored -	endif      +      vimrcConfig.customRC = let +        colorscheme = ''colorscheme molokai''; +        setStatements = '' +          set autowrite +          set clipboard=unnamedplus +          set nocompatible +          set path+=** +          set ruler +          set undodir=$HOME/.vim/undo  "directory where the undo files will be stored +          set undofile                 "turn on the feature +          set wildignore+=*.o,*.class,*.hi,*.dyn_hi,*.dyn_o +          set wildmenu +          set listchars=trail:¶          ''; - +        remapStatements = '' +          imap jk <Esc> +          map gr :GoRun<Enter>         " Map gr to execute go run +          map nf :NERDTreeToggle<CR> +          nnoremap <C-TAB> <c-w><c-w> +          nnoremap <S-TAB> :bnext<CR> +          noremap x "_x +          vmap v v +        ''; +        settingsForGo = '' +          let g:go_decls_includes = "func,type" +          let g:go_def_mode = 'godef' +          let g:go_fmt_command = "goimports" +          let g:go_highlight_extra_types = 1 +          let g:go_highlight_fields = 1 +          let g:go_highlight_functions = 1 +          let g:go_highlight_methods = 1 +          let g:go_highlight_types = 1 +          let g:go_list_type = "quickfix" +          let g:go_metalinter_autosave = 1 +          let g:go_metalinter_enabled = ['vet', 'golint', 'errcheck'] +          let g:go_snippet_case_type = "camelcase" +          let g:go_test_timeout = '10s' +          let g:jsx_ext_required = 0 +          let g:molokai_original = 1 +          let g:rehash256 = 1 +        ''; +        settingsForElm = '' +          let g:polyglot_disabled = ['elm'] +          let g:elm_detailed_complete = 1 +          let g:elm_format_autosave = 1 +          let g:elm_syntastic_show_warnings = 1 +        ''; +      in '' +        ${colorscheme} +        ${remapStatements} +        ${setStatements} +        ${settingsForElm} +        ${settingsForGo} +        " I dont know what this line is about +        autocmd BufNewFile,BufRead *.go setlocal noexpandtab tabstop=4 shiftwidth=4 +      '';         vimrcConfig.vam.knownPlugins = pkgs.vimPlugins // customPlugins;         vimrcConfig.vam.pluginDictionaries = [ -         { names = [ "undotree" "molokai" "Syntastic" "ctrlp" "surround" "snipmate" "nerdtree" "easymotion"]; }  +         { names = [ +            "ctrlp" +            "easymotion" +            "molokai" +            "nerdtree" +            "snipmate" +            "surround" +            "Syntastic" +            "undotree" +            "elm-vim" +           ]; +         }           { names = [ "vim-addon-nix" ]; ft_regex = "^nix\$"; }           { names = [ "vim-go" ]; ft_regex = "^go\$"; } # wanted: nsf/gocode           { names = [ "vim-javascript" ]; ft_regex = "^js\$"; } @@ -89,4 +102,35 @@ in {         ];      })    ]; + +  # set up the directories up if they are not there. +# Needs to be changed. +#  vim = let +#    dirs = { +#      backupdir = "$HOME/.cache/vim/backup"; +#      swapdir   = "$HOME/.cache/vim/swap"; +#      undodir   = "$HOME/.cache/vim/undo"; +#    }; +#    files = { +#      viminfo   = "$HOME/.cache/vim/info"; +#    }; +# +#    mkdirs = let +#      dirOf = s: let out = concatStringsSep "/" (init (splitString "/" s)); +#                 in assert out != ""; out; +#      alldirs = attrValues dirs ++ map dirOf (attrValues files); +#    in unique (sort lessThan alldirs); +#  in +#    pkgs.symlinkJoin { +#      name = "vim"; +#      paths = [ +#        (pkgs.writeDashBin "vim" '' +#          set -efu +#          (umask 0077; exec ${pkgs.coreutils}/bin/mkdir -p ${toString mkdirs}) +#          exec ${pkgs.vim}/bin/vim "$@" +#        '') +#        pkgs.vim +#      ]; +#    }; +  } diff --git a/jeschli/2configs/virtualbox.nix b/jeschli/2configs/virtualbox.nix new file mode 100644 index 0000000..b2cb851 --- /dev/null +++ b/jeschli/2configs/virtualbox.nix @@ -0,0 +1,23 @@ +{ config, pkgs, ... }: + +let +  mainUser = config.users.extraUsers.markus; + +in { +  #services.virtualboxHost.enable = true; +  virtualisation.virtualbox.host.enable = true; + +  users.extraUsers = { +    virtual = { +      name = "virtual"; +      description = "user for running VirtualBox"; +      home = "/home/virtual"; +      useDefaultShell = true; +      extraGroups = [ "vboxusers" "audio" ]; +      createHome = true; +    }; +  }; +  security.sudo.extraConfig = '' +    ${mainUser.name} ALL=(virtual) NOPASSWD: ALL +  ''; +} diff --git a/tv/2configs/vim.nix b/tv/2configs/vim.nix index 59619f9..6598393 100644 --- a/tv/2configs/vim.nix +++ b/tv/2configs/vim.nix @@ -297,7 +297,7 @@ let {      viminfo   = "$HOME/.cache/vim/info";    }; -  mkdirs = let +  need-dirs = let      dirOf = s: let out = concatStringsSep "/" (init (splitString "/" s));                 in assert out != ""; out;      alldirs = attrValues dirs ++ map dirOf (attrValues files); @@ -308,7 +308,7 @@ let {      paths = [        (pkgs.writeDashBin "vim" ''          set -efu -        (umask 0077; exec ${pkgs.coreutils}/bin/mkdir -p ${toString mkdirs}) +        (umask 0077; exec ${pkgs.coreutils}/bin/mkdir -p ${toString need-dirs})          exec ${pkgs.vim}/bin/vim "$@"        '')        pkgs.vim  | 
