diff --git a/system/essentials.nix b/common/essentials.nix similarity index 69% rename from system/essentials.nix rename to common/essentials.nix index 593aadce..cd68822d 100644 --- a/system/essentials.nix +++ b/common/essentials.nix @@ -7,14 +7,20 @@ file wget curl - (pkgs.neovim.override {vimAlias = true;}) + (pkgs.neovim.override { + vimAlias = true; + withPython3 = true; + }) + gnupg + mutt ]; + extra = pkgs: with pkgs; [ git-crypt htop tree rxvt_unicode.terminfo - st.terminfo + st socat nmap @@ -29,5 +35,9 @@ pythonPackages.qrcode ranger + + pass + sshuttle + mtr ]; } diff --git a/system/modules/private-options.nix b/common/private-options.nix similarity index 100% rename from system/modules/private-options.nix rename to common/private-options.nix diff --git a/system/secret/.gitattributes b/common/secret/.gitattributes similarity index 100% rename from system/secret/.gitattributes rename to common/secret/.gitattributes diff --git a/common/secret/default.nix b/common/secret/default.nix new file mode 100644 index 00000000..eeeeeb8e Binary files /dev/null and b/common/secret/default.nix differ diff --git a/home-manager/default.nix b/home-manager/default.nix index b47746db..3315fc0c 100644 --- a/home-manager/default.nix +++ b/home-manager/default.nix @@ -1,116 +1,124 @@ { pkgs, config, ... }: -{ - imports = [ - ./zsh - ./modules/taskwarrior.nix - ./modules/force-copies.nix - ./modules/battery.nix - ./modules/laptop.nix - ./modules/accounting.nix - ./modules/rustdev.nix - ./modules/latex.nix - ./modules/sleep-nag.nix - ./modules/graphical - ./modules/home-options.nix +let + me = config.m-0.private.me; + meWork = config.m-0.private.meWork; +in { + +imports = [ + ./zsh + ./modules/taskwarrior.nix + ./modules/force-copies.nix + ./modules/battery.nix + ./modules/laptop.nix + ./modules/accounting.nix + ./modules/rustdev.nix + ./modules/latex.nix + ./modules/sleep-nag.nix + ./modules/graphical + ./modules/home-options.nix + ./modules/eventd.nix + ../common/private-options.nix + ../common/secret # ./sort-mail.nix # ./morgenreport.nix # ./my-systems.nix - ]; +]; - nixpkgs.config.packageOverrides = pkgs: with pkgs; { - tasktree = callPackage ./packages/tasktree {}; - rust-scripts = callPackage ./packages/rust-scripts {}; - jali = with pkgs; callPackage ./packages/jali {}; - eventd = (import {}).callPackage ./packages/eventd {}; - st = (import packages/st) pkgs config.common.colors; - neovim = (import ./nvim) pkgs config.m-0.rustdev.enable; +nixpkgs.config.packageOverrides = pkgs: with pkgs; { + tasktree = callPackage ./packages/tasktree {}; + rust-scripts = callPackage ./packages/rust-scripts {}; + jali = with pkgs; callPackage ./packages/jali {}; + eventd = (import {}).callPackage ./packages/eventd {}; + st = (import packages/st) pkgs config.m-0.colors; + neovim = (import ./nvim) pkgs config.m-0.rustdev.enable; +}; + + +home.file.".tmux.conf".text = '' + set -g default-terminal "st-256color" + set -ga terminal-overrides ",st-256color:Tc" + set -g history-limit 50000 + set -g status off + set -g escape-time 1 +''; + +programs = { + home-manager = { + enable = true; + path = https://github.com/rycee/home-manager/archive/master.tar.gz; }; - - - home.file.".tmux.conf".text = '' - set -g default-terminal "st-256color" - set -ga terminal-overrides ",st-256color:Tc" - set -g history-limit 50000 - set -g status off - set -g escape-time 1 - ''; - - programs = { - home-manager = { - enable = true; - path = https://github.com/rycee/home-manager/archive/master.tar.gz; - }; - git = { - enable = true; - ignores = [ - ".syncthing*.tmp" - "*.swp" - "*.autosave~" - "*.aux" - "*.bbl" - "*.fls" - "*.idx" - "*.ilg" - "*.ind" - "*.log" - "*.out" - "*.toc" - "*.bcf" - "*.blg" - "*.fdb*" - "*.thm" - "*.run.xml" - "*.slnc" - "*.glade~" - "__pycache__" - ".hledger-web_client_session_key.aes" - ".nix-gc-roots" + git = { + enable = true; + ignores = [ + ".syncthing*.tmp" + "*.swp" + "*.autosave~" + "*.aux" + "*.bbl" + "*.fls" + "*.idx" + "*.ilg" + "*.ind" + "*.log" + "*.out" + "*.toc" + "*.bcf" + "*.blg" + "*.fdb*" + "*.thm" + "*.run.xml" + "*.slnc" + "*.glade~" + "__pycache__" + ".hledger-web_client_session_key.aes" + ".nix-gc-roots" + ]; + userEmail = me.mail; + userName = me.name; + }; + htop = { + enable = true; + hideThreads = true; + hideUserlandThreads = true; + highlightBaseName = true; + shadowOtherUsers = true; + showProgramPath = false; + treeView = true; + }; + ssh = { + controlMaster = "yes"; + enable = true; + matchBlocks = let + matheGwProxy = "ssh -q gw nc -q0 %h %p"; + kivaHost = "fb04386.mathematik.tu-darmstadt.de"; + agHost = "fb04217.mathematik.tu-darmstadt.de"; + in [ + { host = "charon"; hostname = "charon.olymp.space"; } + { host = "*.olymp.space"; user = me.user; } + { host = "ag-forward"; hostname = agHost; proxyCommand = matheGwProxy; user = meWork.user; } + { host = "ag"; hostname = agHost; user = meWork.user; } + { host = "kiva-forward"; hostname = kivaHost; proxyCommand = matheGwProxy; user = meWork.user; } + { host = "kiva"; hostname = kivaHost; user = meWork.user; } + { host = "gw"; hostname = "gwres4.mathematik.tu-darmstadt.de"; user = meWork.user; } + { host = "shells"; hostname = "shells.darmstadt.ccc.de"; } + { host = "vorstand"; hostname = "vorstand.darmstadt.ccc.de"; } + { host = "*.darmstadt.ccc.de"; user = me.user; } + { host = "whisky"; hostname = "whisky.w17.io"; user = "chaos"; } + { host = "kitchen"; hostname = "kitchen.w17.io"; user = "chaos"; } + { host = "door.w17.io"; identityFile = "~/.ssh/door_rsa";} ]; - userEmail = "malte.brandy@maralorn.de"; - userName = "Malte Brandy"; - }; - htop = { - enable = true; - hideThreads = true; - hideUserlandThreads = true; - highlightBaseName = true; - shadowOtherUsers = true; - showProgramPath = false; - treeView = true; - }; - ssh = { - controlMaster = "yes"; - enable = true; - matchBlocks = let - matheGwProxy = "ssh -q gw nc -q0 %h %p"; - kivaHost = "fb04386.mathematik.tu-darmstadt.de"; - agHost = "fb04217.mathematik.tu-darmstadt.de"; - in [ - { host = "charon"; hostname = "charon.olymp.space"; } - { host = "*.olymp.space"; user = "maralorn"; } - { host = "ag-forward"; hostname = agHost; proxyCommand = matheGwProxy;user="brandy";} - { host = "ag"; hostname = agHost;user="brandy";} - { host = "kiva-forward"; hostname = kivaHost; proxyCommand = matheGwProxy;user="brandy";} - { host = "kiva"; hostname = kivaHost;user="brandy";} - { host = "gw"; hostname = "gwres4.mathematik.tu-darmstadt.de";user="brandy";} - { host = "shells"; hostname = "shells.darmstadt.ccc.de"; } - { host = "vorstand"; hostname = "vorstand.darmstadt.ccc.de"; } - { host = "*.darmstadt.ccc.de"; user = "maralorn"; } - { host = "whisky"; hostname = "whisky.w17.io"; user = "chaos"; } - { host = "door.w17.io"; identityFile = "~/.ssh/door_rsa";} - ]; - }; }; +}; - home.sessionVariables = { - BROWSER="${pkgs.firefox}/bin/firefox"; - EDITOR="${pkgs.neovim}/bin/nvim"; - TERMINAL=config.common.terminal; - }; - systemd.user.startServices = true; +home.sessionVariables = { + BROWSER="${pkgs.firefox}/bin/firefox"; + EDITOR="${pkgs.neovim}/bin/nvim"; + TERMINAL=config.m-0.terminal; +}; +systemd.user.startServices = true; - home.packages = with pkgs; [ - neovim - ]; - xdg.enable = true; +home.packages = with pkgs; [ + neovim +]; +xdg.enable = true; } diff --git a/home-manager/modules/battery.nix b/home-manager/modules/battery.nix index 96351a6f..415c34b8 100644 --- a/home-manager/modules/battery.nix +++ b/home-manager/modules/battery.nix @@ -1,4 +1,4 @@ -{ lib, pkgs, ... }: +{ lib, pkgs, config, ... }: with lib; let battery-watch = pkgs.writeShellScriptBin "battery-watch" '' diff --git a/home-manager/modules/graphical/eventd.nix b/home-manager/modules/eventd.nix similarity index 96% rename from home-manager/modules/graphical/eventd.nix rename to home-manager/modules/eventd.nix index 918a5c8e..f0ed4859 100644 --- a/home-manager/modules/graphical/eventd.nix +++ b/home-manager/modules/eventd.nix @@ -1,7 +1,12 @@ { pkgs, lib, config, ... }: +with lib; let - colors = config.common.colors; + colors = config.m-0.colors; in { + +options.m-0.eventd.enable = mkEnableOption "Eventd"; + +config = mkIf config.m-0.eventd.enable { home = { packages = with pkgs; [ eventd @@ -164,4 +169,6 @@ in { }; }; }; +}; + } diff --git a/home-manager/modules/graphical/default.nix b/home-manager/modules/graphical/default.nix index 3b059144..7737f8a2 100644 --- a/home-manager/modules/graphical/default.nix +++ b/home-manager/modules/graphical/default.nix @@ -4,7 +4,10 @@ with lib; options.m-0.graphical.enable = mkEnableOption "Window Manager"; -#imports = if config.m-0.graphical.enable then [ ./i3.nix ] else []; +imports = [ + ./i3.nix + ./rofi +]; config = mkIf config.m-0.graphical.enable { m-0 = { diff --git a/home-manager/modules/graphical/i3.nix b/home-manager/modules/graphical/i3.nix index 88b4b0cf..e8cbdb0f 100644 --- a/home-manager/modules/graphical/i3.nix +++ b/home-manager/modules/graphical/i3.nix @@ -1,8 +1,7 @@ { pkgs, lib, config, ... }: +with lib; let - colors = config.m-0.colors; - workspaces = config.m-0.workspaces; - terminal = config.m-0.terminal; + inherit (config.m-0) colors workspaces terminal; exec = "exec --no-startup-id"; taskstatus = pkgs.writeShellScriptBin "taskstatus" '' while true; @@ -24,11 +23,8 @@ let {} (builtins.attrNames oldbindings); in { - imports = [ - ./eventd.nix - ./rofi - ./urxvt.nix - ]; + +config = mkIf config.m-0.graphical.enable { xsession = { windowManager.i3 = { enable = true; @@ -109,12 +105,12 @@ in { titlebar = false; border = 1; }; -# gaps = { -# inner = 0; -# outer = 0; -# smartBorders = "off"; -# smartGaps = false; -# }; + gaps = { + inner = 0; + outer = 0; + smartBorders = "off"; + smartGaps = false; + }; keybindings = { "XF86AudioMute" = "exec pactl set-sink-mute '@DEFAULT_SINK@' toggle"; "XF86AudioLowerVolume" = "exec pactl set-sink-volume '@DEFAULT_SINK@' -5%"; @@ -160,4 +156,6 @@ in { }; }; }; +}; + } diff --git a/home-manager/modules/graphical/rofi/default.nix b/home-manager/modules/graphical/rofi/default.nix index 6461d175..823f0b15 100644 --- a/home-manager/modules/graphical/rofi/default.nix +++ b/home-manager/modules/graphical/rofi/default.nix @@ -1,14 +1,13 @@ { pkgs, lib, config, ... }: +with lib; let - workspaces = config.m-0.workspaces; - terminal = config.m-0.terminal; - colors = config.m-0.colors; - rofiTask = pkgs.writeScriptBin "tasklauncher" (builtins.readFile ./tasklauncher.py); + inherit (config.m-0) colors workspaces terminal; in { + +config = mkIf config.m-0.graphical.enable { home = { packages = with pkgs; [ - rofi - rofiTask + (writeScriptBin "tasklauncher" (builtins.readFile ./tasklauncher.py)) rofi-pass ]; }; @@ -67,4 +66,6 @@ in { }; }; }; +}; + } diff --git a/home-manager/modules/laptop.nix b/home-manager/modules/laptop.nix index c1cfc417..3b593c56 100644 --- a/home-manager/modules/laptop.nix +++ b/home-manager/modules/laptop.nix @@ -67,6 +67,7 @@ config = mkIf config.m-0.laptop.enable { gmpc calibre mpv + youtubeDL ]; }; diff --git a/home-manager/modules/latex.nix b/home-manager/modules/latex.nix index 8849b63c..36c2dcdf 100644 --- a/home-manager/modules/latex.nix +++ b/home-manager/modules/latex.nix @@ -14,7 +14,7 @@ config = mkIf config.m-0.latex.enable { collection-latexextra collection-bibtexextra collection-luatex - collection-scimath + collection-mathscience collection-fontsextra; }; }; diff --git a/home-manager/modules/rustdev.nix b/home-manager/modules/rustdev.nix index d033947b..cbd879a1 100644 --- a/home-manager/modules/rustdev.nix +++ b/home-manager/modules/rustdev.nix @@ -8,6 +8,11 @@ config = mkIf config.m-0.rustdev.enable { home.packages = with pkgs; [ gnome3.glade rustracer + cargo + gcc + binutils-unwrapped + rustfmt + carnix ]; }; diff --git a/home-manager/unused/my-systems.nix b/home-manager/unused/my-systems.nix deleted file mode 100644 index 95a588a8..00000000 --- a/home-manager/unused/my-systems.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ pkgs, ... }: -{ - home.packages = with pkgs; [ - gnupg - pass - mutt - sshuttle - mtr - youtubeDL - - cargo - gcc - binutils-unwrapped - rustfmt - carnix - ]; -} diff --git a/home-manager/modules/graphical/urxvt.nix b/home-manager/unused/urxvt.nix similarity index 100% rename from home-manager/modules/graphical/urxvt.nix rename to home-manager/unused/urxvt.nix diff --git a/hosts/apollo/configuration.nix b/hosts/apollo/configuration.nix index f2e1056d..3ea424bc 100644 --- a/hosts/apollo/configuration.nix +++ b/hosts/apollo/configuration.nix @@ -1,12 +1,12 @@ { config, pkgs, ... }: +# You need pw-files for every configured user in ./secret/pw-useralias for login to work. + let me = config.m-0.private.me; in { imports = [ - - ./secret ./hardware-configuration.nix ../../system ]; @@ -33,7 +33,7 @@ boot = { cdark_net = { enable = true; hostName = "${me.user}_${config.networking.hostName}"; - ed25519PrivateKeyFile = /etc/nixos/hosts/apollo/secret/tinc/ed25519_key.priv; + ed25519PrivateKeyFile = builtins.toPath "/etc/nixos/hosts/${config.networking.hostName}/secret/tinc/ed25519_key.priv"; hostsDirectory = /etc/nixos/system/modules/cdarknet/hosts; ip6address = "fd23:42:cda:4342::2"; ip4address = "172.20.71.2"; @@ -43,7 +43,7 @@ services = { mpd = { enable = true; network.listenAddress = "::0"; - musicDirectory = "/home/maralorn/data/aktuell/media/musik"; + musicDirectory = "/home/${me.user}/data/aktuell/media/musik"; }; }; diff --git a/hosts/apollo/home.nix b/hosts/apollo/home.nix index 523b0b3b..052f0014 100644 --- a/hosts/apollo/home.nix +++ b/hosts/apollo/home.nix @@ -13,5 +13,6 @@ m-0.accounting.enable = true; m-0.graphical.enable = true; m-0.rustdev.enable = true; m-0.taskwarrior.enable = true; +m-0.eventd.enable = true; } diff --git a/result b/result new file mode 120000 index 00000000..e083bfac --- /dev/null +++ b/result @@ -0,0 +1 @@ +/nix/store/cwarhn9pblxia1qk1cn7y38kdqxg2x8a-nixos-system-apollo-18.03.132535.2ee48415afc \ No newline at end of file diff --git a/system/admin.nix b/system/admin.nix index 97c1588d..8f01542f 100644 --- a/system/admin.nix +++ b/system/admin.nix @@ -4,16 +4,16 @@ let in { users.users = { "${me.user}" = { - description = "${me.name}"; + description = me.name; isNormalUser = true; uid = 1000; extraGroups = [ "wheel" "systemd-journal" "networkmanager" "docker" ]; openssh.authorizedKeys.keys = me.keys; - passwordFile = "${me.pw-file}"; + passwordFile = me.pw-file; }; root = { openssh.authorizedKeys.keys = me.keys; - passwordFile = "${me.pw-file}"; + passwordFile = me.pw-file; }; }; } diff --git a/system/default.nix b/system/default.nix index 3ee3ce81..a6c7b73c 100644 --- a/system/default.nix +++ b/system/default.nix @@ -3,11 +3,12 @@ # channel = 18.03 imports = [ - ./secret - ./modules/private-options.nix + + ../common/secret + ../common/private-options.nix ./modules/laptop.nix ./admin.nix -# ./syncthing.nix + ./syncthing.nix ./modules/cdarknet ]; @@ -39,7 +40,7 @@ environment = { # Put these into an extra file so the essential packages can also be included on non selfadminstrated systems from home-manager - systemPackages = let essentials = import ../system/essentials.nix; + systemPackages = let essentials = import ../common/essentials.nix; in (essentials.core pkgs) ++ (essentials.extra pkgs); sessionVariables = { TERMINFO = "/run/current-system/sw/share/terminfo"; diff --git a/system/secret/default.nix b/system/secret/default.nix deleted file mode 100644 index a20cc1ef..00000000 Binary files a/system/secret/default.nix and /dev/null differ