1
0
Fork 0
This commit is contained in:
Malte Brandy 2018-05-31 12:34:48 +02:00
parent 53f162839a
commit c18bcabd31
No known key found for this signature in database
GPG key ID: 226A2D41EF5378C9
51 changed files with 425 additions and 468 deletions

4
.gitmodules vendored
View file

@ -11,8 +11,8 @@
path = home-common/graphical/rofi/zzzfoo path = home-common/graphical/rofi/zzzfoo
url = https://github.com/andersju/zzzfoo.git url = https://github.com/andersju/zzzfoo.git
[submodule "modules/cdarknet/hosts"] [submodule "modules/cdarknet/hosts"]
path = system/cdarknet/hosts path = system/modules/cdarknet/hosts
url = git@git.darmstadt.ccc.de:cdark.net/hosts url = git@git.darmstadt.ccc.de:cdark.net/hosts
[submodule "modules/cdarknet/nixdark"] [submodule "modules/cdarknet/nixdark"]
path = system/cdarknet/nixdark path = system/modules/cdarknet/nixdark
url = git@git.darmstadt.ccc.de:cdark.net/nixdark url = git@git.darmstadt.ccc.de:cdark.net/nixdark

View file

@ -1,12 +1,32 @@
{ pkgs, config, ... }: { pkgs, config, ... }:
{ {
nixpkgs.config.packageOverrides = pkgs: { imports = [
rust-scripts = pkgs.callPackage ./packages/rust-scripts {}; ./zsh
jali = pkgs.callPackage ./packages/jali {}; ./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
# ./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 <unstable> {}).callPackage ./packages/eventd {}; eventd = (import <unstable> {}).callPackage ./packages/eventd {};
st = (import graphical/st) pkgs config.common.colors; st = (import packages/st) pkgs config.common.colors;
neovim = (import ./nvim) pkgs config.m-0.rustdev.enable;
}; };
home.file.".tmux.conf".text = '' home.file.".tmux.conf".text = ''
set -g default-terminal "st-256color" set -g default-terminal "st-256color"
set -ga terminal-overrides ",st-256color:Tc" set -ga terminal-overrides ",st-256color:Tc"
@ -80,20 +100,6 @@
{ host = "door.w17.io"; identityFile = "~/.ssh/door_rsa";} { host = "door.w17.io"; identityFile = "~/.ssh/door_rsa";}
]; ];
}; };
zsh = {
enable = true;
enableAutosuggestions = true;
enableCompletion = true;
history = {
save = 100000;
size = 100000;
};
initExtra = builtins.readFile ./configs/zshrc;
oh-my-zsh = {
enable = true;
plugins = [ "colored-man-pages" "git-prompt" ];
};
};
}; };
home.sessionVariables = { home.sessionVariables = {
@ -103,66 +109,8 @@
}; };
systemd.user.startServices = true; systemd.user.startServices = true;
imports = [
./taskwarrior.nix
./force-copies.nix
];
home.packages = with pkgs; [ home.packages = with pkgs; [
htop neovim
tree
st.terminfo
most
socat
nmap
tcpdump
git-crypt
rcm
tmux
tig
exa
fzf
ag
pythonPackages.qrcode
ranger
(pkgs.neovim.override {
vimAlias = true;
withPython3 = true;
configure = {
customRC = ''
let $RUST_SRC_PATH="${pkgs.rustPlatform.rustcSrc}"
let g:rustfmt_command = "${pkgs.rustfmt}/bin/rustfmt"
let g:racer_cmd = "${pkgs.rustracer}/bin/racer"
let g:deoplete#sources#rust#racer_binary='${pkgs.rustracer}/bin/racer'
let g:syntastic_rust_rustc_exe = '${pkgs.cargo}/bin/cargo check'
${builtins.readFile ./configs/vimrc}
'';
packages.myVimPackage = with pkgs.vimPlugins; {
start = [
vim-nix
ctrlp
vimtex
Syntastic
UltiSnips
airline
rust-vim
fugitive
airline
vim-trailing-whitespace
vim-polyglot
nvim-cm-racer
nvim-completion-manager
vim-pandoc
nerdcommenter
vim-signify
];
};
};
})
]; ];
xdg.enable = true; xdg.enable = true;
} }

View file

@ -1,115 +0,0 @@
{ pkgs, lib, config, ... }:
let
workspaces = config.common.workspaces;
terminal = config.common.terminal;
colors = config.common.colors;
#rofiScriptWeb = pkgs.writeShellScriptBin "rofi-script-web" ''
#if [[ -z $@ ]]; then
#sed 's/^[0-9]*\(-r\)\? \?//;s/^\([^[:space:]]*\).*$/\1/' $HOME/.local/share/qutebrowser/history | tac
#else
#${pkgs.qutebrowser}/bin/qutebrowser "$1" > /dev/null &
#fi
#'';
#rofiScriptI3 = pkgs.writeShellScriptBin "rofi-script-i3" ''
#if [ -z $@ ]; then
#(i3-msg -t get_workspaces | tr ',' '\n' | grep "name" | sed 's/"name":"\(.*\)"/\1/g';
#echo "${builtins.concatStringsSep "\n" (builtins.foldl' (labels: name: let
#number = toString (builtins.length labels);
#in
#labels ++ [ "${number}:${name}" ]
#) [] workspaces)}") | sort -u
#else
#i3-msg workspace "$@" >/dev/null
#fi
#'';
rofiTask = pkgs.writeScriptBin "tasklauncher" (builtins.readFile ./tasklauncher.py);
# recollPython = pkgs.python2.withPackages (ps: [
# pkgs.recoll
# ]);
# rofiFind = pkgs.writeScriptBin "zzzfoo" (builtins.replaceStrings [ "/usr/bin/env python" ] [ "${recollPython}/bin/python" ] (builtins.readFile ./zzzfoo/zzzfoo));
in {
home = {
packages = with pkgs; [
rofi
#rofiScriptWeb
#rofiScriptI3
rofiTask
# rofiFind
rofi-pass
# recoll
];
};
programs = {
rofi = {
enable = true;
extraConfig = ''
rofi.modi: combi,window,drun,run,ssh,keys
rofi.combi-modi: window,drun,run
'';
borderWidth = 0;
separator = "none";
fullscreen = false;
terminal = terminal;
yoffset = 19;
location = "top";
scrollbar = false;
padding = 10;
cycle = false;
lines = 30;
colors = {
window = {
background = "argb:c0${builtins.substring 1 6 colors.background}";
border = colors.blue;
separator = colors.blue;
};
rows = {
normal = {
background = colors.background;
foreground = colors.foreground;
backgroundAlt = colors.black;
highlight = {
background = colors.blue;
foreground = colors.white;
};
};
active = {
background = colors.background;
foreground = colors.foreground;
backgroundAlt = colors.black;
highlight = {
background = colors.blue;
foreground = colors.white;
};
};
urgent = {
background = colors.background;
foreground = colors.foreground;
backgroundAlt = colors.black;
highlight = {
background = colors.blue;
foreground = colors.white;
};
};
};
#colors = {
#window = {
#background = "argb:${builtins.substring 1 6 colors.background}22";
#border = colors.blue;
#separator = colors.blue;
#};
#rows = {
#normal = {
#background = colors.background;
#foreground = colors.foreground;
#backgroundAlt = colors.black;
#highlight = {
#background = colors.blue;
#foreground = colors.white;
#};
#};
#};
};
};
};
}

View file

@ -1,26 +0,0 @@
{ pkgs, ... }:
let
habitask = with pkgs; with rustPlatform; buildRustPackage rec {
name = "habitask";
version = "0.1.0";
src = ~/data/aktuell/it/code/habitask;
depsSha256 = "0clac943ajxns64jkdcg312a4x4jgd239jb4yd5qm32nnkj62ym7";
cargoSha256 = "0clac943ajxns64jkdcg312a4x4jgd239jb4yd5qm32nnkj62ym7";
buildInputs = [ openssl pkgconfig ];
};
in {
systemd.user = {
services.habitask = {
Unit = {
Description = "Update habitica Tasks";
};
Service = {
Type = "oneshot";
ExecStart="{habitask}/bin/habitask";
};
};
timers.habitask = {
Timer.OnCalendar = "6:00";
};
};
}

View file

@ -0,0 +1,16 @@
{ lib, pkgs, config, ...}:
with lib;
{
options.m-0.accounting.enable = mkEnableOption "Accounting";
config = mkIf config.m-0.accounting.enable {
home.packages = with pkgs; [
hledger
haskellPackages.hledger-ui
ledger
jali
];
};
}

View file

@ -1,4 +1,5 @@
{pkgs, ... }: { lib, pkgs, ... }:
with lib;
let let
battery-watch = pkgs.writeShellScriptBin "battery-watch" '' battery-watch = pkgs.writeShellScriptBin "battery-watch" ''
critical_level=20 #percent critical_level=20 #percent
@ -18,6 +19,10 @@ do
done done
''; '';
in { in {
options.m-0.battery.enable = mkEnableOption "Battery";
config = mkIf config.m-0.battery.enable {
systemd.user = { systemd.user = {
services.battery = { services.battery = {
Unit = { Unit = {
@ -31,4 +36,6 @@ in {
}; };
}; };
}; };
};
} }

View file

@ -1,12 +1,13 @@
{ pkgs, lib, ... }: { pkgs, lib, config, ... }:
let with lib;
tasktree = with pkgs; callPackage ../../packages/tasktree {}; {
in {
imports = [ options.m-0.graphical.enable = mkEnableOption "Window Manager";
./i3.nix
../../modules/home-options.nix #imports = if config.m-0.graphical.enable then [ ./i3.nix ] else [];
];
common = { config = mkIf config.m-0.graphical.enable {
m-0 = {
workspaces = [ workspaces = [
"tasks" "tasks"
"chat" "chat"
@ -20,26 +21,26 @@ in {
"config" "config"
]; ];
terminal = "${pkgs.st}/bin/st"; terminal = "${pkgs.st}/bin/st";
colors = { colors = {
"foreground" = "#dddbff"; "foreground" = "#dddbff";
"background" = "#05004a"; "background" = "#05004a";
"black" = "#030031"; "black" = "#030031";
"brightBlack" = "#55508f"; "brightBlack" = "#55508f";
"red" = "#e34b4f"; "red" = "#e34b4f";
"brightRed" = "#e34b4f"; "brightRed" = "#e34b4f";
"green" = "#67b779"; "green" = "#67b779";
"brightGreen" = "#45b75e"; "brightGreen" = "#45b75e";
"yellow" = "#ff9c00"; "yellow" = "#ff9c00";
"brightYellow" = "#ff9c00"; "brightYellow" = "#ff9c00";
"blue" = "#5c67ff"; "blue" = "#5c67ff";
"brightBlue" = "#5c67ff"; "brightBlue" = "#5c67ff";
"magenta" = "#cb85ff"; "magenta" = "#cb85ff";
"brightMagenta" = "#cb85ff"; "brightMagenta" = "#cb85ff";
"cyan" = "#17d0f4"; "cyan" = "#17d0f4";
"brightCyan" = "#17d0f4"; "brightCyan" = "#17d0f4";
"white" = "#dddbff"; "white" = "#dddbff";
"brightWhite" = "#ffffff"; "brightWhite" = "#ffffff";
}; };
}; };
home = { home = {
packages = with pkgs; [ packages = with pkgs; [
@ -99,4 +100,6 @@ in {
}; };
}; };
xsession.enable = true; xsession.enable = true;
};
} }

View file

@ -1,8 +1,8 @@
{ pkgs, lib, config, ... }: { pkgs, lib, config, ... }:
let let
colors = config.common.colors; colors = config.m-0.colors;
workspaces = config.common.workspaces; workspaces = config.m-0.workspaces;
terminal = config.common.terminal; terminal = config.m-0.terminal;
exec = "exec --no-startup-id"; exec = "exec --no-startup-id";
taskstatus = pkgs.writeShellScriptBin "taskstatus" '' taskstatus = pkgs.writeShellScriptBin "taskstatus" ''
while true; while true;
@ -29,7 +29,6 @@ in {
./rofi ./rofi
./urxvt.nix ./urxvt.nix
]; ];
home.packages = [ pkgs.skippy-xd ];
xsession = { xsession = {
windowManager.i3 = { windowManager.i3 = {
enable = true; enable = true;
@ -123,7 +122,7 @@ in {
"XF86AudioMicMute" = "exec pactl set-source-mute '@DEFAULT_SOURCE@' toggle"; "XF86AudioMicMute" = "exec pactl set-source-mute '@DEFAULT_SOURCE@' toggle";
"XF86MonBrightnessUp" = "exec xbacklight +5"; "XF86MonBrightnessUp" = "exec xbacklight +5";
"XF86MonBrightnessDown" = "exec xbacklight -5"; "XF86MonBrightnessDown" = "exec xbacklight -5";
"XF86Display" = "exec arandr"; "XF86Display" = "${exec} ${pkgs.arandr}/bin/arandr";
"Ctrl+Escape" = "${exec} loginctl lock-session;"; "Ctrl+Escape" = "${exec} loginctl lock-session;";
} // } //
addMods ({ addMods ({
@ -131,7 +130,7 @@ in {
"Down" = "focus down"; "Down" = "focus down";
"Up" = "focus up"; "Up" = "focus up";
"Right" = "focus right"; "Right" = "focus right";
"Tab" = "${exec} skippy-xd"; "Tab" = "${exec} ${pkgs.skippy-xd}/bin/skippy-xd";
"Prior" = "focus parent"; "Prior" = "focus parent";
"Next" = "focus child"; "Next" = "focus child";
"Return" = "${exec} ${terminal}"; "Return" = "${exec} ${terminal}";

View file

@ -0,0 +1,70 @@
{ pkgs, lib, config, ... }:
let
workspaces = config.m-0.workspaces;
terminal = config.m-0.terminal;
colors = config.m-0.colors;
rofiTask = pkgs.writeScriptBin "tasklauncher" (builtins.readFile ./tasklauncher.py);
in {
home = {
packages = with pkgs; [
rofi
rofiTask
rofi-pass
];
};
programs = {
rofi = {
enable = true;
extraConfig = ''
rofi.modi: combi,window,drun,run,ssh,keys
rofi.combi-modi: window,drun,run
'';
borderWidth = 0;
separator = "none";
fullscreen = false;
terminal = terminal;
yoffset = 19;
location = "top";
scrollbar = false;
padding = 10;
cycle = false;
lines = 30;
colors = {
window = {
background = "argb:c0${builtins.substring 1 6 colors.background}";
border = colors.blue;
separator = colors.blue;
};
rows = {
normal = {
background = colors.background;
foreground = colors.foreground;
backgroundAlt = colors.black;
highlight = {
background = colors.blue;
foreground = colors.white;
};
};
active = {
background = colors.background;
foreground = colors.foreground;
backgroundAlt = colors.black;
highlight = {
background = colors.blue;
foreground = colors.white;
};
};
urgent = {
background = colors.background;
foreground = colors.foreground;
backgroundAlt = colors.black;
highlight = {
background = colors.blue;
foreground = colors.white;
};
};
};
};
};
};
}

View file

@ -1,21 +1,22 @@
{ lib, config, pkgs, ... }: { lib, config, pkgs, ... }:
with lib; with lib;
{ {
options = {
common = { options = {
terminal = mkOption { m-0 = {
default = "urxvt"; terminal = mkOption {
type = types.str; default = "urxvt";
}; type = types.str;
colors = mkOption { };
default = {}; colors = mkOption {
type = types.attrs; default = {};
}; type = types.attrs;
workspaces = mkOption { };
default = [ "configure some workspaces" ]; workspaces = mkOption {
type = types.listOf types.str; default = [ "configure some workspaces" ];
}; type = types.listOf types.str;
}; };
}; };
};
} }

View file

@ -0,0 +1,73 @@
{ lib, pkgs, config, ...}:
with lib;
{
options.m-0.laptop.enable = mkEnableOption "Laptop";
config = mkIf config.m-0.laptop.enable {
programs = {
firefox = {
enable = true;
};
git = {
signing = {
signByDefault = true;
key = "6C3D12CD88CDF46C5EAF4D12226A2D41EF5378C9";
};
};
};
home.sessionVariables = {
MOZ_USE_XINPUT2 = "1";
};
services = {
udiskie = {
enable = true;
notify = true;
};
};
home.packages = with pkgs; [
chromium
signal-desktop
tdesktop
acpi
dino
arandr
mumble
xorg.xev
xorg.xbacklight
meld
icedtea8_web
# tools & office
feh
gimp
imagemagick
libreoffice-fresh
pandoc
xournal
musescore
handbrake
octave
# look & feel
libertine
nerdfonts
# media
ncmpcpp
pavucontrol
deluge
mpd
gmpc
calibre
mpv
];
};
}

View file

@ -1,5 +1,10 @@
{ pkgs, ... }: { lib, pkgs, config, ... }:
with lib;
{ {
options.m-0.latex.enable = mkEnableOption "Latex";
config = mkIf config.m-0.latex.enable {
programs = { programs = {
texlive = { texlive = {
enable = true; enable = true;
@ -9,7 +14,7 @@
collection-latexextra collection-latexextra
collection-bibtexextra collection-bibtexextra
collection-luatex collection-luatex
# collection-math collection-scimath
collection-fontsextra; collection-fontsextra;
}; };
}; };
@ -17,4 +22,6 @@
home.packages = [ home.packages = [
pkgs.biber pkgs.biber
]; ];
};
} }

View file

@ -1,40 +0,0 @@
{ lib, config, pkgs, ... }:
with lib;
{
options = {
mpd = {
mkOption {
default = false;
type = types.bool;
};
};
};
systemd.user = {
services.morgenreport =
let
morgenreport-script = pkgs.writeShellScriptBin "morgenreport" ''
cd $HOME/data/aktuell/media/ebooks/morgenreport/
DATE=`date +%Y-%m-%d`
${pkgs.calibre}/bin/ebook-convert $HOME/data/aktuell/it/code/calibre-recipes/morgenreport.recipe morgenreport-$DATE.mobi --output-profile=kindle_pw3
echo "File created, sending to kindle now "
PATH=$PATH:/run/wrappers/bin/
echo 'Siehe Anhang' | ${pkgs.mutt}/bin/mutt -s "Morgenreport $DATE" -a morgenreport-$DATE.mobi -- maralorn@kindle.com
'';
in {
Unit = {
Description = "Send morgenreport to kindle";
};
Service = {
Type = "oneshot";
ExecStart="/bin/sh ${morgenreport-script}/bin/morgenreport";
};
};
timers.morgenreport = {
Timer = {
OnCalendar = "20:00";
};
};
};
}

View file

@ -0,0 +1,14 @@
{ lib, pkgs, config, ...}:
with lib;
{
options.m-0.rustdev.enable = mkEnableOption "Rust Dev";
config = mkIf config.m-0.rustdev.enable {
home.packages = with pkgs; [
gnome3.glade
rustracer
];
};
}

View file

@ -1,4 +1,5 @@
{pkgs, ... }: { lib, pkgs, config, ... }:
with lib;
let let
sleep-nag = pkgs.writeShellScriptBin "sleep-nag" '' sleep-nag = pkgs.writeShellScriptBin "sleep-nag" ''
while true while true
@ -10,6 +11,10 @@ do
done done
''; '';
in { in {
options.m-0.sleep-nag.enable = mkEnableOption "Sleep Nag";
config = mkIf config.m-0.sleep-nag.enable {
systemd.user = { systemd.user = {
services.sleep-nag = { services.sleep-nag = {
Unit = { Unit = {
@ -23,4 +28,6 @@ in {
}; };
}; };
}; };
};
} }

View file

@ -1,5 +1,8 @@
{ pkgs, lib, ... }: { lib, pkgs, config, ...}:
with lib;
{ {
options.m-0.taskwarrior.enable = mkEnableOption "Taskwarrior";
config = mkIf config.m-0.taskwarrior.enable {
home = { home = {
packages = [ pkgs.taskwarrior ]; packages = [ pkgs.taskwarrior ];
file = { file = {
@ -53,7 +56,7 @@
}; };
xdg = let xdg = let
taskAction = name: template: { taskAction = name: template: {
"eventd/task-${name}.action".text = lib.generators.toINI {} { "eventd/task-${name}.action".text = generators.toINI {} {
Action = { Action = {
Name = "task-${name}"; Name = "task-${name}";
}; };
@ -67,7 +70,7 @@
}; };
in { in {
configFile = { configFile = {
"eventd/task.event".text = lib.generators.toINI {} { "eventd/task.event".text = generators.toINI {} {
"Event task add" = { "Event task add" = {
Actions = "task-new"; Actions = "task-new";
}; };
@ -79,4 +82,6 @@
taskAction "changed" "Changes in task:\\n<b>\${description}</b>\${status:+\\nStatus: }\${status}\${tags:+\\nTags: }\${tags}\${project:+\\nProject: }\${project}" // taskAction "changed" "Changes in task:\\n<b>\${description}</b>\${status:+\\nStatus: }\${status}\${tags:+\\nTags: }\${tags}\${project:+\\nProject: }\${project}" //
taskAction "new" "New \${status} task\${tags:! in inbox}:\\n<b>\${description}</b>\${tags:+\\nTags: }\${tags}\${project:+\\nProject: }\${project}"; taskAction "new" "New \${status} task\${tags:! in inbox}:\\n<b>\${description}</b>\${tags:+\\nTags: }\${tags}\${project:+\\nProject: }\${project}";
}; };
};
} }

View file

@ -0,0 +1,39 @@
pkgs: mkRust:
pkgs.neovim.override {
vimAlias = true;
withPython3 = true;
configure = {
customRC = if mkRust then ''
let $RUST_SRC_PATH="${pkgs.rustPlatform.rustcSrc}"
let g:rustfmt_command = "${pkgs.rustfmt}/bin/rustfmt"
let g:racer_cmd = "${pkgs.rustracer}/bin/racer"
let g:deoplete#sources#rust#racer_binary='${pkgs.rustracer}/bin/racer'
let g:syntastic_rust_rustc_exe = '${pkgs.cargo}/bin/cargo check'
let g:rustfmt_autosave = 1
let g:syntastic_rust_checkers = [ 'cargo']
let g:rust_recommend_style = 1
let g:rust_fold =1
${builtins.readFile ./vimrc}
'' else builtins.readFile ./vimrc;
packages.myVimPackage = with pkgs.vimPlugins; {
start = [
vim-nix
ctrlp
vimtex
Syntastic
UltiSnips
airline
rust-vim
fugitive
airline
vim-trailing-whitespace
vim-polyglot
nvim-cm-racer
nvim-completion-manager
vim-pandoc
nerdcommenter
vim-signify
];
};
};
}

View file

@ -54,17 +54,5 @@ let g:syntastic_check_on_wq = 0
let g:syntastic_aggregate_errors = 1 let g:syntastic_aggregate_errors = 1
let g:syntastic_enable_highlighting = 1 let g:syntastic_enable_highlighting = 1
let g:syntastic_loc_list_height = 5 let g:syntastic_loc_list_height = 5
let g:rustfmt_autosave = 1
"let g:ycm_rust_src_path = '/usr/src/rust/src'
"let g:ftplugin_rust_source_path = '/usr/src/rust/src'
let g:syntastic_rust_checkers = [ 'cargo']
let g:rust_recommend_style = 1
let g:rust_fold =1
"let g:syntastic_rust_rustc_exe = 'cargo check'
let g:deoplete#enable_at_startup = 1 let g:deoplete#enable_at_startup = 1
let g:deoplete#auto_complete_start_length = 1 let g:deoplete#auto_complete_start_length = 1
"let g:deoplete#sources#rust#racer_binary='racer'
"let g:rustfmt_command = "rustfmt"
"let g:racer_cmd = "racer"

View file

@ -1,4 +1,4 @@
{ jinja2, pendulum, GitPython, aqbanking, python36Packages, fetchgit }: { aqbanking, python36Packages, fetchgit }:
with python36Packages; buildPythonApplication rec { with python36Packages; buildPythonApplication rec {
name = "${pname}-${version}"; name = "${pname}-${version}";
pname = "jali"; pname = "jali";

View file

@ -0,0 +1,20 @@
{
programs = {
zsh = {
enable = true;
enableAutosuggestions = true;
enableCompletion = true;
history = {
save = 100000;
size = 100000;
};
initExtra = builtins.readFile ./zshrc;
oh-my-zsh = {
enable = true;
plugins = [ "colored-man-pages" "git-prompt" ];
};
};
};
}

View file

@ -1,10 +1,14 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
{
imports = [ let
<home-manager/nixos> me = config.m-0.private.me;
./hardware-configuration.nix in {
../../system
imports = [
<home-manager/nixos>
./secret
./hardware-configuration.nix
../../system
]; ];
networking = { networking = {
@ -15,9 +19,7 @@ m-0 = {
laptop.enable = true; laptop.enable = true;
}; };
home-manager.users.maralorn = { home-manager.users."${me.user}" = (import ./home.nix);
imports = [ ./home.nix ];
};
# Use the systemd-boot EFI boot loader. # Use the systemd-boot EFI boot loader.
boot = { boot = {
@ -30,11 +32,20 @@ boot = {
cdark_net = { cdark_net = {
enable = true; enable = true;
hostName = "maralorn_apollo"; hostName = "${me.user}_${config.networking.hostName}";
ed25519PrivateKeyFile = /etc/nixos/hosts/apollo/secret/tinc/ed25519_key.priv; ed25519PrivateKeyFile = /etc/nixos/hosts/apollo/secret/tinc/ed25519_key.priv;
hostsDirectory = /etc/nixos/system/modules/cdarknet/hosts; hostsDirectory = /etc/nixos/system/modules/cdarknet/hosts;
ip6address = "fd23:42:cda:4342::2"; ip6address = "fd23:42:cda:4342::2";
ip4address = "172.20.71.2"; ip4address = "172.20.71.2";
}; };
services = {
mpd = {
enable = true;
network.listenAddress = "::0";
musicDirectory = "/home/maralorn/data/aktuell/media/musik";
};
};
} }

View file

@ -1,108 +1,17 @@
{ pkgs, ... }: { pkgs, ... }:
let
jali = with pkgs.python36Packages; buildPythonApplication rec {
name = "${pname}-${version}";
pname = "jali";
doCheck = false;
version = "1d1c5d0a";
src = pkgs.fetchgit {
url = "https://git.darmstadt.ccc.de/jali/jali.git";
rev = version;
sha256 = "1nzzangp7yr2gq66qz7wk2cqqwjlhrfaqmc85qigjv4vpfmlphl0";
};
propagatedBuildInputs = with pkgs; [ jinja2 pendulum GitPython aqbanking ];
};
in
{ {
imports = [ imports = [
../../home-manager ../../home-manager
../../home-common/my-systems.nix ];
../../home-common/graphical
../../home-common/latex.nix
./battery.nix
./sleep-nag.nix
];
programs = { m-0.laptop.enable = true;
firefox = { m-0.sleep-nag.enable = true;
enable = true; m-0.battery.enable = true;
}; m-0.latex.enable = true;
git = { m-0.accounting.enable = true;
signing = { m-0.graphical.enable = true;
signByDefault = true; m-0.rustdev.enable = true;
key = "6C3D12CD88CDF46C5EAF4D12226A2D41EF5378C9"; m-0.taskwarrior.enable = true;
};
};
};
home.sessionVariables = {
MOZ_USE_XINPUT2 = "1";
};
services = {
udiskie = {
enable = true;
notify = true;
};
};
home.packages = with pkgs.gnome3; [
glade
] ++ (with pkgs; [
# web
chromium
signal-desktop
tdesktop
acpi
dino
rustracer
arandr
qutebrowser
mumble
xorg.xev
xorg.xbacklight
meld
icedtea8_web
hledger
haskellPackages.hledger-ui
ledger
jali
# tools & office
feh
gimp
imagemagick
libreoffice-fresh
pandoc
xournal
musescore
handbrake
octave
# look & feel
libertine
nerdfonts
dina-font
envypn-font
google-fonts
gnome3.gnome-font-viewer
unscii
xfontsel
# media
ncmpcpp
pavucontrol
deluge
mpd
gmpc
calibre
mpv
]);
} }

Binary file not shown.

View file

@ -1,17 +1,18 @@
{config, ...}:
let let
in me = config.m-0.private.me;
{ in {
users.users = { users.users = {
"${me}" = { "${me.user}" = {
description = "${me.name}"; description = "${me.name}";
isNormalUser = true; isNormalUser = true;
uid = 1000; uid = 1000;
extraGroups = [ "wheel" "systemd-journal" "networkmanager" "docker" ]; extraGroups = [ "wheel" "systemd-journal" "networkmanager" "docker" ];
openssh.authorizedKeys.keys = keys; openssh.authorizedKeys.keys = me.keys;
passwordFile = "${me.pw-file}"; passwordFile = "${me.pw-file}";
}; };
root = { root = {
openssh.authorizedKeys.keys = keys; openssh.authorizedKeys.keys = me.keys;
passwordFile = "${me.pw-file}"; passwordFile = "${me.pw-file}";
}; };
}; };

View file

@ -3,11 +3,12 @@
# channel = 18.03 # channel = 18.03
imports = [ imports = [
./secret-option.nix ./secret
./laptop.nix ./modules/private-options.nix
./modules/laptop.nix
./admin.nix ./admin.nix
./syncthing.nix # ./syncthing.nix
./cdarknet ./modules/cdarknet
]; ];
i18n = { i18n = {
@ -37,22 +38,9 @@
}; };
environment = { environment = {
systemPackages = with pkgs; [ # Put these into an extra file so the essential packages can also be included on non selfadminstrated systems from home-manager
git-crypt systemPackages = let essentials = import ../system/essentials.nix;
git in (essentials.core pkgs) ++ (essentials.extra pkgs);
gnumake
python3
mkpasswd
rxvt_unicode.terminfo
htop
file
tmux
socat
tcpdump
wget
curl
neovim
];
sessionVariables = { sessionVariables = {
TERMINFO = "/run/current-system/sw/share/terminfo"; TERMINFO = "/run/current-system/sw/share/terminfo";
}; };
@ -65,6 +53,5 @@
enableCompletion = true; enableCompletion = true;
syntaxHighlighting.enable = true; syntaxHighlighting.enable = true;
}; };
vim.defaultEditor = true;
}; };
} }

33
system/essentials.nix Normal file
View file

@ -0,0 +1,33 @@
{
core = pkgs: with pkgs; [
git
gnumake
python3
mkpasswd
file
wget
curl
(pkgs.neovim.override {vimAlias = true;})
];
extra = pkgs: with pkgs; [
git-crypt
htop
tree
rxvt_unicode.terminfo
st.terminfo
socat
nmap
tcpdump
git-crypt
tmux
tig
exa
fzf
ag
pythonPackages.qrcode
ranger
];
}

View file

@ -2,7 +2,7 @@
with lib; with lib;
{ {
options = { options = {
m-0.secrets = mkOption { m-0.private = mkOption {
default = {}; default = {};
type = types.attrs; type = types.attrs;
}; };

Binary file not shown.