1
0
Fork 0

Tons of refactor

This commit is contained in:
Malte Brandy 2019-07-31 22:36:41 +02:00
parent c7720b7035
commit 4793a68ed5
No known key found for this signature in database
GPG key ID: 226A2D41EF5378C9
31 changed files with 325 additions and 376 deletions

13
cachix/cachix.nix Normal file
View file

@ -0,0 +1,13 @@
{
nix = {
binaryCaches = [
"https://cachix.cachix.org"
];
binaryCachePublicKeys = [
"cachix.cachix.org-1:eWNHQldwUO7G2VkjpnjDbWwy4KQ/HNxht7H4SSoMckM="
];
trustedUsers = [ "root" "maralorn" ];
};
}

13
cachix/nixfmt.nix Normal file
View file

@ -0,0 +1,13 @@
{
nix = {
binaryCaches = [
"https://nixfmt.cachix.org"
];
binaryCachePublicKeys = [
"nixfmt.cachix.org-1:uyEQg16IhCFeDpFV07aL+Dbmh18XHVUqpkk/35WAgJI="
];
trustedUsers = [ "root" "maralorn" ];
};
}

View file

@ -1,70 +0,0 @@
let
inherit (import ../common/lib.nix) niv;
pkgs = import <nixpkgs> {};
unstable = import <unstable> {};
lorriSrc = (import ../nix/sources.nix).lorri;
lorri = import lorriSrc { src = lorriSrc; pkgs = unstable; };
neovim = pkgs.neovim.override {
vimAlias = true;
withPython3 = true;
};
in
{
core = builtins.attrValues {
inherit neovim;
inherit (pkgs)
gitFull
gnumake
python3
mkpasswd
file
wget
curl
wireguard
gnupg
mutt
bind
liboping
psmisc
unzip
rename
whois
lsof;
};
extra = builtins.attrValues {
inherit lorri niv;
inherit (pkgs.gitAndTools) git-annex;
inherit (pkgs.rxvt_unicode) terminfo;
inherit (pkgs.pythonPackages) qrcode;
inherit (pkgs)
git-crypt
htop
tree
pwgen
borgbackup
inotifyTools
direnv
socat
nmap
tcpdump
tmux
tig
exa
fzf
ag
fd
bat
ripgrep
ranger
pass
sshuttle;
};
}

176
common/pkgs.nix Normal file
View file

@ -0,0 +1,176 @@
rec {
inherit (import ../common/lib.nix) niv;
pkgs = import <nixpkgs> {};
unstable = import <unstable> {};
lorriSrc = (import ../nix/sources.nix).lorri;
lorri = import lorriSrc { src = lorriSrc; pkgs = unstable; };
tasktree = pkgs.callPackage ../packages/tasktree {};
neovim = pkgs.neovim.override {
vimAlias = true;
withPython3 = true;
};
home-neovim = (import ../home-manager/nvim) neovim;
# pkgs assumed to be present on a non nixos host
core-system-pkgs = {
inherit neovim;
inherit (pkgs)
gitFull
gnumake
python3
mkpasswd
file
wget
curl
wireguard
gnupg
mutt
bind
liboping
psmisc
unzip
rename
whois
lsof;
};
extra-system-pkgs = {
inherit lorri niv;
inherit (pkgs.gitAndTools) git-annex;
inherit (pkgs.rxvt_unicode) terminfo;
inherit (pkgs.pythonPackages) qrcode;
inherit (pkgs)
git-crypt
htop
tree
pwgen
borgbackup
inotifyTools
direnv
socat
nmap
tcpdump
tmux
tig
exa
fzf
ag
fd
bat
ripgrep
ranger
pass
sshuttle;
};
laptop-home-pkgs = {
maintenance = pkgs.writeShellScriptBin "maintenance" ''
git -C ~/git/nixos/config pull
update-home
sudo system-maintenance
'';
rewlan = pkgs.writeShellScriptBin "rewlan" ''
nmcli r wifi off;
sleep 0.1s;
nmcli r wifi on;
'';
cachix = import (import ../nix/sources.nix).cachix {};
nixfmt = import (import ../nix/sources.nix).nixfmt {};
inherit (pkgs.gnome3) nautilus;
inherit (unstable.haskellPackages) brittany;
inherit (pkgs.xorg) xev xbacklight;
inherit (pkgs)
# web
chromium
# communication
signal-desktop
tdesktop
acpi
dino
mumble
# config
arandr
#dev
meld
icedtea8_web
octave
filezilla
# tools & office
feh
gimp
imagemagick
ghostscript
libreoffice-fresh
pandoc
xournal
musescore
handbrake
evince
networkmanagerapplet
# teamviewer
# media
ncpamixer
pavucontrol
deluge
mpd
gmpc
calibre
mpv
youtubeDL
minetest
;};
my-home-pkgs = {
print215 = pkgs.writeShellScriptBin "print215" ''
scp "$@" ag-forward:
ssh ag-forward lpr -Zduplex -r "$@"
'';
print215single = pkgs.writeShellScriptBin "print215single" ''
scp "$@" ag-forward:
ssh ag-forward lpr -r "$@"
'';
};
urxvt = pkgs.rxvt_unicode-with-plugins;
terminal = pkgs.writeShellScriptBin "terminal" ''
${urxvt}/bin/urxvtc "$@"
if [ $? -eq 2 ]; then
${urxvt}/bin/urxvtd -q -o -f
${urxvt}/bin/urxvtc "$@"
fi
'';
desktop-pkgs = {
inherit urxvt tasktree terminal;
inherit (pkgs) xautolock;
inherit (pkgs.gnome3) dconf;
};
home-pkgs = {
inherit (pkgs) ncmpcpp;
inherit home-neovim;
};
accounting-pkgs = {
jali = pkgs.callPackage ../packages/jali {};
inherit (pkgs.haskellPackages) hledger hledger-ui;
inherit (pkgs) ledger;
};
system-pkgs = core-system-pkgs // extra-system-pkgs // {
inherit (import ./test-lib.nix) test-system-config test-home-config test-and-bump-config;
inherit (import ../common/lib.nix) home-manager;
};
foreign-home-pkgs = extra-system-pkgs;
eventd = pkgs.callPackage ../packages/eventd {};
}

View file

@ -1,6 +1,6 @@
{ lib, pkgs, config, ... }: { lib, pkgs, config, ... }:
with lib;
let let
inherit (import ../common/pkgs.nix) eventd;
battery-watch = pkgs.writeScript "battery-watch" '' battery-watch = pkgs.writeScript "battery-watch" ''
#!${pkgs.stdenv.shell} #!${pkgs.stdenv.shell}
@ -11,9 +11,9 @@ do
if [ "$(${pkgs.acpi}/bin/acpi -a | grep -o off)" == "off" ]; then if [ "$(${pkgs.acpi}/bin/acpi -a | grep -o off)" == "off" ]; then
battery_level=`${pkgs.acpi}/bin/acpi -b | sed 's/.*[dg], //g;s/\%,.*//g'` battery_level=`${pkgs.acpi}/bin/acpi -b | sed 's/.*[dg], //g;s/\%,.*//g'`
if [ $battery_level -le $critical_level ]; then if [ $battery_level -le $critical_level ]; then
${pkgs.eventd}/bin/eventc critical battery -d "title='Battery level is low!'" -d "message='Only $battery_level% of the charge remains.'" ${eventd}/bin/eventc critical battery -d "title='Battery level is low!'" -d "message='Only $battery_level% of the charge remains.'"
else else
${pkgs.eventd}/bin/eventc notification battery -d "title='Battery is discharging!'" -d "message='Only $battery_level% of the charge remains.'" ${eventd}/bin/eventc notification battery -d "title='Battery is discharging!'" -d "message='Only $battery_level% of the charge remains.'"
sleep 18m sleep 18m
fi fi
fi fi
@ -22,9 +22,6 @@ 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 = {
@ -38,6 +35,5 @@ config = mkIf config.m-0.battery.enable {
}; };
}; };
}; };
};
} }

View file

@ -8,30 +8,18 @@ imports = [
./update-script.nix ./update-script.nix
./modules/taskwarrior.nix ./modules/taskwarrior.nix
./modules/force-copies.nix ./modules/force-copies.nix
./modules/battery.nix
./modules/laptop.nix
./modules/accounting ./modules/accounting
./modules/rustdev.nix ./modules/rustdev.nix
./modules/latex.nix ./modules/latex.nix
./modules/sleep-nag.nix
./modules/graphical
./modules/mail.nix ./modules/mail.nix
./modules/home-options.nix ./modules/home-options.nix
./modules/eventd.nix
./modules/unlock.nix ./modules/unlock.nix
./modules/weechat ./modules/weechat
./modules/update_tasks.nix
./modules/bugwarrior.nix ./modules/bugwarrior.nix
./modules/pythia.nix ./modules/pythia.nix
../common ../common
]; ];
nixpkgs.overlays = [ (self: super: {
tasktree = super.callPackage ./packages/tasktree {};
jali = super.callPackage ./packages/jali {};
eventd = super.callPackage ./packages/eventd {};
neovim = (import ./nvim) super config.m-0.rustdev.enable;
})];
programs = { programs = {
home-manager.enable = true; home-manager.enable = true;
@ -112,7 +100,9 @@ programs = {
}; };
}; };
home.sessionVariables = { home = {
packages = builtins.attrValues (import ../common/pkgs.nix).home-pkgs;
sessionVariables = {
PATH = "$HOME/.cargo/bin:/etc/profiles/per-user/${config.home.username}/bin:$HOME/.nix-profile/bin:$PATH"; PATH = "$HOME/.cargo/bin:/etc/profiles/per-user/${config.home.username}/bin:$HOME/.nix-profile/bin:$PATH";
BROWSER = "${pkgs.firefox}/bin/firefox"; BROWSER = "${pkgs.firefox}/bin/firefox";
EDITOR = "${pkgs.neovim}/bin/nvim"; EDITOR = "${pkgs.neovim}/bin/nvim";
@ -122,6 +112,7 @@ home.sessionVariables = {
print-pw = pkgs.writeShellScriptBin "print-pw" "pass show eu/m-0/${config.m-0.hostName}/user/${config.home.username}"; print-pw = pkgs.writeShellScriptBin "print-pw" "pass show eu/m-0/${config.m-0.hostName}/user/${config.home.username}";
in in
"${print-pw}/bin/print-pw"; "${print-pw}/bin/print-pw";
};
}; };
fonts.fontconfig.enableProfileFonts = true; fonts.fontconfig.enableProfileFonts = true;
@ -135,16 +126,6 @@ services = {
}; };
}; };
home.packages = builtins.attrValues {
inherit (pkgs) neovim;
print215 = (pkgs.writeShellScriptBin "print215" ''
scp "$@" ag-forward:
ssh ag-forward lpr -Zduplex -r "$@"
'');
print215single = (pkgs.writeShellScriptBin "print215single" ''
scp "$@" ag-forward:
ssh ag-forward lpr -r "$@"
'');
};
xdg.enable = true; xdg.enable = true;
} }

View file

@ -1,25 +1,16 @@
{ pkgs, lib, config, ... }: { pkgs, lib, config, ... }:
with lib; let
inherit (import ../../common/pkgs.nix) desktop-pkgs;
in
{ {
options.m-0.graphical.enable = mkEnableOption "Window Manager";
imports = [ imports = [
./i3.nix ./i3.nix
./rofi ./rofi.nix
./ssh-agent.nix ./ssh-agent.nix
./eventd.nix
./sleep-nag.nix
]; ];
config = let
urxvt = pkgs.rxvt_unicode-with-plugins;
terminal = pkgs.writeShellScriptBin "terminal" ''
${urxvt}/bin/urxvtc "$@"
if [ $? -eq 2 ]; then
${urxvt}/bin/urxvtd -q -o -f
${urxvt}/bin/urxvtc "$@"
fi
'';
in
mkIf config.m-0.graphical.enable {
m-0 = { m-0 = {
workspaces = [ workspaces = [
"tasks" "tasks"
@ -33,7 +24,7 @@ mkIf config.m-0.graphical.enable {
"leisure" "leisure"
"config" "config"
]; ];
terminal = "${terminal}/bin/terminal"; terminal = "${desktop-pkgs.terminal}/bin/terminal";
colors = { colors = {
"foreground" = "#dddbff"; "foreground" = "#dddbff";
"background" = "#05004a"; "background" = "#05004a";
@ -56,12 +47,7 @@ mkIf config.m-0.graphical.enable {
}; };
}; };
home = { home = {
packages = with pkgs; [ packages = builtins.attrValues desktop-pkgs;
terminal
tasktree
xautolock
gnome3.dconf
];
keyboard = { keyboard = {
layout = "de"; layout = "de";
variant = "neo"; variant = "neo";
@ -70,7 +56,7 @@ mkIf config.m-0.graphical.enable {
}; };
programs.urxvt = { programs.urxvt = {
enable = true; enable = true;
package = pkgs.rxvt_unicode-with-plugins; package = desktop-pkgs.urxvt;
fonts = [ "6x13" ]; fonts = [ "6x13" ];
keybindings = { keybindings = {
"C-1" = "command:\\033]710;6x13\\007"; "C-1" = "command:\\033]710;6x13\\007";
@ -122,11 +108,6 @@ mkIf config.m-0.graphical.enable {
}; };
services = { services = {
nextcloud-client.enable = true; nextcloud-client.enable = true;
random-background = {
enable = true;
imageDirectory = "%h/data/aktuell/media/bilder/wallpaper/";
interval = "15minutes";
};
redshift = { redshift = {
enable = true; enable = true;
temperature.day = 6500; temperature.day = 6500;
@ -139,6 +120,5 @@ mkIf config.m-0.graphical.enable {
}; };
}; };
xsession.enable = true; xsession.enable = true;
};
} }

View file

@ -1,17 +1,10 @@
{ pkgs, lib, config, ... }: { pkgs, lib, config, ... }:
with lib;
let let
colors = config.m-0.colors; colors = config.m-0.colors;
inherit (import ../../common/pkgs.nix) eventd;
in { in {
options.m-0.eventd.enable = mkEnableOption "Eventd"; home.packages = [ eventd ];
config = mkIf config.m-0.eventd.enable {
home = {
packages = with pkgs; [
eventd
];
};
systemd.user = { systemd.user = {
services = { services = {
eventd = { eventd = {
@ -26,8 +19,8 @@ config = mkIf config.m-0.eventd.enable {
Service = { Service = {
Type="notify"; Type="notify";
Sockets="eventd-control.socket eventd.socket"; Sockets="eventd-control.socket eventd.socket";
ExecStart="${pkgs.eventd}/bin/eventd --listen systemd"; ExecStart="${eventd}/bin/eventd --listen systemd";
ExecReload="${pkgs.eventd}/bin/eventdctl reload"; ExecReload="${eventd}/bin/eventdctl reload";
}; };
}; };
}; };
@ -54,7 +47,7 @@ config = mkIf config.m-0.eventd.enable {
}; };
}; };
xdg = { xdg = {
configFile = mkIf config.m-0.graphical.enable { configFile = {
"eventd/eventd.conf".text = lib.generators.toINI {} { "eventd/eventd.conf".text = lib.generators.toINI {} {
"Queue default" = { "Queue default" = {
Margin = 10; Margin = 10;
@ -169,6 +162,5 @@ config = mkIf config.m-0.eventd.enable {
}; };
}; };
}; };
};
} }

View file

@ -73,7 +73,6 @@ let
(builtins.attrNames oldbindings); (builtins.attrNames oldbindings);
in { in {
config = mkIf config.m-0.graphical.enable {
xsession = { xsession = {
windowManager.i3 = { windowManager.i3 = {
enable = true; enable = true;
@ -209,6 +208,5 @@ config = mkIf config.m-0.graphical.enable {
}; };
}; };
}; };
};
} }

View file

@ -4,10 +4,8 @@ let
inherit (config.m-0) colors workspaces terminal; inherit (config.m-0) colors workspaces terminal;
in { in {
config = mkIf config.m-0.graphical.enable {
home = { home = {
packages = with pkgs; [ packages = with pkgs; [
(writeScriptBin "tasklauncher" (builtins.readFile ./tasklauncher.py))
rofi-pass rofi-pass
]; ];
}; };
@ -67,6 +65,5 @@ config = mkIf config.m-0.graphical.enable {
}; };
}; };
}; };
};
} }

View file

@ -1,22 +1,19 @@
{ lib, pkgs, config, ... }: { lib, pkgs, config, ... }:
with lib;
let let
inherit (import ../../common/pkgs.nix) eventd;
sleep-nag = pkgs.writeScript "sleep-nag" '' sleep-nag = pkgs.writeScript "sleep-nag" ''
#!${pkgs.stdenv.shell} #!${pkgs.stdenv.shell}
while true while true
do do
if [[ `date +%H` -ge 23 ]] || [[ `date +%H` -lt 6 ]]; then if [[ `date +%H` -ge 23 ]] || [[ `date +%H` -lt 6 ]]; then
${pkgs.eventd}/bin/eventc notification kassandra -d "title='Es ist $(date +%H:%M) Uhr: Zeit ins Bett zu gehen!'" -d "message='Du kannst das hier auch morgen tun!'" ${eventd}/bin/eventc notification kassandra -d "title='Es ist $(date +%H:%M) Uhr: Zeit ins Bett zu gehen!'" -d "message='Du kannst das hier auch morgen tun!'"
fi fi
sleep 10m sleep 10m
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 = {
@ -30,6 +27,5 @@ config = mkIf config.m-0.sleep-nag.enable {
}; };
}; };
}; };
};
} }

View file

@ -1,7 +1,6 @@
{ pkgs , config , lib, ... }: { pkgs , config , lib, ... }:
with lib; { {
config = mkIf config.m-0.graphical.enable {
xsession.initExtra = let xsession.initExtra = let
cat-pw = pkgs.writeShellScriptBin "cat-ssh-pw" '' cat-pw = pkgs.writeShellScriptBin "cat-ssh-pw" ''
pass eu/m-0/${config.m-0.hostName}/ssh pass eu/m-0/${config.m-0.hostName}/ssh
@ -15,6 +14,5 @@ config = mkIf config.m-0.graphical.enable {
''; '';
in in
". ${start-agent}/bin/start-ssh-agent"; ". ${start-agent}/bin/start-ssh-agent";
};
} }

View file

@ -9,12 +9,7 @@ options.m-0.accounting.config = mkOption {
config = mkIf config.m-0.accounting.enable { config = mkIf config.m-0.accounting.enable {
home.file.".config/jali/config.py".text = config.m-0.accounting.config; home.file.".config/jali/config.py".text = config.m-0.accounting.config;
home.packages = with pkgs; [ home.packages = builtins.attrValues (import ../../../common/pkgs.nix).accounting-pkgs;
hledger
haskellPackages.hledger-ui
ledger
jali
];
}; };
} }

View file

@ -1,29 +0,0 @@
#!/usr/bin/env python
import subprocess
import os
import sys
def call_task(args):
return subprocess.Popen(["task", "rc.verbose=nothing"] + args, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()[0].strip()
runtime_dir = os.getenv("XDG_RUNTIME_DIR")
if not os.path.exists(runtime_dir):
os.makedirs(runtime_dir)
filename = os.path.join(runtime_dir, "taskfilter")
if not os.path.exists(filename):
with open(filename, 'w') as filterfile:
filterfile.write("inboxall")
lastresult = ""
while True:
with open(filename) as filterfile:
filter = filterfile.read().strip()
tasklist = call_task(["default"] + filter.split())
rofi_list_cmd = ['rofi', '-dmenu', '-p', 'task', '-mesg', '\n'.join([lastresult, "filter: {}".format(filter)]).strip()]
rofi = subprocess.Popen(rofi_list_cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
entered_command = rofi.communicate(input=tasklist)[0].decode('utf8').strip()
if entered_command == "":
sys.exit(0)
task_result = subprocess.Popen(["task", "rc.confirmation=no", "rc.default.command=execute \"$HOME/bin/taskfilter\""] + entered_command.split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
lastresult = '\n'.join([task_result[0].decode('utf8'), task_result[1].decode('utf8')]).strip()

View file

@ -1,104 +0,0 @@
{ lib, pkgs, config, ...}:
with lib;
{
options.m-0.laptop.enable = mkEnableOption "Laptop";
config = let
rewlan = pkgs.writeShellScriptBin "rewlan" ''
nmcli r wifi off;
sleep 0.1s;
nmcli r wifi on;
'';
in
mkIf config.m-0.laptop.enable {
home.file.".ncmpcpp/config".text = ''
ask_before_clearing_playlists=no
mouse_support = yes
song_columns_list_format = "(24)[red]{a} $R(48)[blue]{t} (24)[green]{b} (4)[magenta]{l}"
playlist_display_mode = columns
search_engine_display_mode = columns
browser_display_mode = columns
user_interface = alternative
'';
programs = {
firefox = {
enable = true;
};
git = {
signing = {
signByDefault = true;
key = "6C3D12CD88CDF46C5EAF4D12226A2D41EF5378C9";
};
};
};
services = {
udiskie = {
enable = true;
notify = true;
};
network-manager-applet.enable = true;
};
home.packages = with pkgs; [
# web
chromium
# communication
signal-desktop
tdesktop
acpi
dino
mumble
# config
arandr
xorg.xev
xorg.xbacklight
rewlan
#dev
meld
icedtea8_web
octave
filezilla
# tools & office
feh
gimp
imagemagick
ghostscript
libreoffice-fresh
pandoc
xournal
musescore
handbrake
evince
gnome3.nautilus
(import ../nix/sources.nix).cachix
# look & feel
libertine
nerdfonts
networkmanagerapplet
# teamviewer
# media
ncmpcpp
ncpamixer
pavucontrol
deluge
mpd
gmpc
calibre
mpv
youtubeDL
minetest
];
};
}

View file

@ -1,22 +1,13 @@
pkgs: mkRust: neovim:
pkgs.neovim.override { neovim.override {
vimAlias = true; vimAlias = true;
withPython3 = true; withPython3 = true;
configure = { configure = {
customRC = if mkRust then '' customRC = builtins.readFile ./vimrc;
let $RUST_SRC_PATH="${pkgs.rustPlatform.rustcSrc}" packages.myVimPackage = {
let g:rustfmt_command = "${pkgs.rustfmt}/bin/rustfmt" start = builtins.attrValues {
let g:racer_cmd = "${pkgs.rustracer}/bin/racer" inherit ((import <nixpkgs> {}).vimPlugins)
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 vim-nix
YouCompleteMe
vimtex vimtex
airline airline
rust-vim rust-vim
@ -24,9 +15,8 @@ pkgs.neovim.override {
vim-trailing-whitespace vim-trailing-whitespace
vim-pandoc vim-pandoc
vim-pandoc-syntax vim-pandoc-syntax
haskell-vim haskell-vim;
# vim-brittany };
];
}; };
}; };
} }

View file

@ -5,6 +5,7 @@ let
in in
{ {
home = { home = {
packages = builtins.attrValues (import ../common/pkgs.nix).foreign-home-pkgs;
sessionVariables = { sessionVariables = {
NIX_PATH = "$HOME/.nix-path"; NIX_PATH = "$HOME/.nix-path";
}; };

View file

@ -3,5 +3,6 @@
home = { home = {
username = "maralorn"; username = "maralorn";
homeDirectory = "/home/maralorn"; homeDirectory = "/home/maralorn";
packages = builtins.attrValues (import ../common/pkgs.nix).my-home-pkgs;
}; };
} }

View file

@ -1,10 +1,8 @@
{ config, lib, pkgs , ... }: { config, lib, pkgs , ... }:
with lib;
let let
inherit (config.m-0.private) me; inherit (import ../common/pkgs.nix) eventd;
in { in
options.m-0.update_tasks.enable = mkEnableOption "Update Tasks"; {
config = mkIf config.m-0.update_tasks.enable {
systemd.user = { systemd.user = {
services.update_tasks = { services.update_tasks = {
Unit = { Unit = {
@ -12,7 +10,7 @@ config = mkIf config.m-0.update_tasks.enable {
}; };
Service = { Service = {
Type = "oneshot"; Type = "oneshot";
Environment="PATH=${pkgs.taskwarrior}/bin:${pkgs.eventd}/bin"; Environment="PATH=${pkgs.taskwarrior}/bin:${eventd}/bin";
ExecStart= "${config.home.homeDirectory}/.cargo/bin/update_tasks"; ExecStart= "${config.home.homeDirectory}/.cargo/bin/update_tasks";
}; };
}; };
@ -25,6 +23,5 @@ config = mkIf config.m-0.update_tasks.enable {
}; };
}; };
}; };
};
} }

View file

@ -4,26 +4,25 @@
imports = [ imports = [
../../home-manager ../../home-manager
../../home-manager/on-my-machine.nix ../../home-manager/on-my-machine.nix
../../home-manager/battery.nix
../../home-manager/update_tasks.nix
../../home-manager/desktop
]; ];
home.packages = builtins.attrValues (import ../../common/pkgs.nix).laptop-home-pkgs;
m-0 = { m-0 = {
hostName = "apollo"; hostName = "apollo";
laptop.enable = true;
sleep-nag.enable = true;
battery.enable = true;
latex.enable = true; latex.enable = true;
accounting = { accounting = {
enable = true; enable = true;
config = builtins.readFile secret/jaliconfig.py; config = builtins.readFile secret/jaliconfig.py;
}; };
graphical.enable = true;
rustdev.enable = true; rustdev.enable = true;
taskwarrior = { taskwarrior = {
enable = true; enable = true;
git_active = true; git_active = true;
}; };
update_tasks.enable = true;
eventd.enable = true;
pythia.enable = true; pythia.enable = true;
unlocker = [ { unlocker = [ {
name = "hera"; name = "hera";
@ -37,6 +36,34 @@ m-0 = {
}; };
}; };
home.file.".ncmpcpp/config".text = ''
ask_before_clearing_playlists=no
mouse_support = yes
song_columns_list_format = "(24)[red]{a} $R(48)[blue]{t} (24)[green]{b} (4)[magenta]{l}"
playlist_display_mode = columns
search_engine_display_mode = columns
browser_display_mode = columns
user_interface = alternative
'';
programs = {
firefox = {
enable = true;
};
git = {
signing = {
signByDefault = true;
key = "6C3D12CD88CDF46C5EAF4D12226A2D41EF5378C9";
};
};
};
services = {
udiskie = {
enable = true;
notify = true;
};
network-manager-applet.enable = true;
};
programs.autorandr = { programs.autorandr = {
enable = true; enable = true;
@ -107,12 +134,5 @@ programs.autorandr = {
}; };
}; };
home.packages = [
(pkgs.writeShellScriptBin "maintenance" ''
git -C ~/git/nixos/config pull
update-home
sudo system-maintenance
'')
];
} }

View file

@ -10,10 +10,7 @@ systemd.user.systemctlPath = "/usr/bin/systemctl";
m-0 = { m-0 = {
hostName = "fb04217"; hostName = "fb04217";
#sleep-nag.enable = true;
#latex.enable = true; #latex.enable = true;
#graphical.enable = true;
#rustdev.enable = true;
#taskwarrior = { #taskwarrior = {
# enable = true; # enable = true;
# git_active = true; # git_active = true;
@ -77,7 +74,7 @@ home = {
nix-collect-garbage --delete-older-than 5d nix-collect-garbage --delete-older-than 5d
nix-store --optimise nix-store --optimise
'') '')
] ++ ((import ../../common/essentials.nix).extra pkgs); ] ++ ((import ../../common/pkgs.nix).);
}; };
} }

View file

@ -47,6 +47,18 @@
"url": "https://github.com/nmattia/niv/archive/8b7b70465c130d8d7a98fba1396ad1481daee518.tar.gz", "url": "https://github.com/nmattia/niv/archive/8b7b70465c130d8d7a98fba1396ad1481daee518.tar.gz",
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz" "url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
}, },
"nixfmt": {
"branch": "master",
"description": "A formatter for Nix code",
"homepage": "https://nixfmt.serokell.io",
"owner": "serokell",
"repo": "nixfmt",
"rev": "af09262aa7d08d2b0905b11d2e8958889aadcf46",
"sha256": "0njgjv6syv3sk97v8kq0cb4mhgrb7nag2shsj7rphs6h5b7k9nbx",
"type": "tarball",
"url": "https://github.com/serokell/nixfmt/archive/af09262aa7d08d2b0905b11d2e8958889aadcf46.tar.gz",
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
},
"nixos-hardware": { "nixos-hardware": {
"branch": "master", "branch": "master",
"description": "A collection of NixOS modules covering hardware quirks.", "description": "A collection of NixOS modules covering hardware quirks.",

View file

@ -4,6 +4,7 @@ let
me = config.m-0.private.me; me = config.m-0.private.me;
in { in {
imports = [ imports = [
../cachix.nix
../common ../common
./modules/laptop.nix ./modules/laptop.nix
./modules/mathechor.de.nix ./modules/mathechor.de.nix

View file

@ -18,38 +18,39 @@
}; };
enableDefaultFonts = true; enableDefaultFonts = true;
enableFontDir = true; enableFontDir = true;
fonts = [ fonts = builtins.attrValues {
pkgs.anonymousPro inherit (pkgs)
pkgs.arkpandora_ttf anonymousPro
pkgs.caladea arkpandora_ttf
pkgs.carlito caladea
pkgs.comfortaa carlito
pkgs.comic-relief comfortaa
pkgs.crimson comic-relief
pkgs.dejavu_fonts crimson
pkgs.google-fonts dejavu_fonts
pkgs.inconsolata google-fonts
pkgs.iosevka inconsolata
pkgs.liberationsansnarrow iosevka
pkgs.liberation_ttf liberationsansnarrow
pkgs.libertine liberation_ttf
pkgs.mononoki libertine
pkgs.montserrat mononoki
pkgs.nerdfonts montserrat
pkgs.norwester-font nerdfonts
pkgs.opensans-ttf norwester-font
pkgs.powerline-fonts opensans-ttf
pkgs.roboto powerline-fonts
pkgs.sampradaya roboto
pkgs.source-code-pro sampradaya
pkgs.source-sans-pro source-code-pro
pkgs.source-serif-pro source-sans-pro
pkgs.tai-ahom source-serif-pro
pkgs.tempora_lgc tai-ahom
pkgs.terminus_font tempora_lgc
pkgs.theano terminus_font
pkgs.ubuntu_font_family theano
]; ubuntu_font_family;
};
}; };

View file

@ -24,12 +24,9 @@ with lib;
environment = { environment = {
# Put these into an extra file so the essential packages can also be included on non selfadminstrated systems from home-manager # 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 ../common/essentials.nix; systemPackages = builtins.attrValues ({
in essentials.core ++ essentials.extra ++ (builtins.attrValues {
inherit (import ./test-lib.nix) test-system-config test-home-config test-and-bump-config;
inherit (import ../common/lib.nix) home-manager;
inherit (import ./update-lib.nix config.system.build.nixos-rebuild) update-system system-maintenance; inherit (import ./update-lib.nix config.system.build.nixos-rebuild) update-system system-maintenance;
}); } // (import ../common/pkgs.nix).system-pkgs);
sessionVariables = { sessionVariables = {
TERMINFO = "/run/current-system/sw/share/terminfo"; TERMINFO = "/run/current-system/sw/share/terminfo";
}; };

View file

@ -6,7 +6,7 @@
serviceConfig = { serviceConfig = {
Type = "oneshot"; Type = "oneshot";
WorkingDirectory = "/var/cache/gc-links"; WorkingDirectory = "/var/cache/gc-links";
ExecStart = "${(import ./test-lib.nix).test-and-bump-config}/bin/test-and-bump-config"; ExecStart = "${(import ../common/test-lib.nix).test-and-bump-config}/bin/test-and-bump-config";
}; };
}; };
} }