1
0
mirror of https://github.com/kmein/niveum synced 2026-03-16 10:11:08 +01:00
Files
niveum/configs/default.nix

310 lines
10 KiB
Nix
Raw Normal View History

2019-04-19 03:11:51 +02:00
{ pkgs, lib, config, ... }:
2019-04-19 15:02:05 +02:00
{
2019-04-19 03:11:51 +02:00
imports = [
<modules/constants.nix>
{
services.dbus.packages = [ pkgs.gnome3.dconf ];
}
<home-manager/nixos>
2019-05-03 22:37:58 +02:00
# <configs/mopidy.nix>
2019-04-19 03:11:51 +02:00
<configs/bash.nix>
2019-05-03 22:37:58 +02:00
<configs/bluetooth.nix>
<configs/chromium.nix>
2019-04-19 03:11:51 +02:00
<configs/cloud.nix>
<configs/compton.nix>
2019-05-03 22:37:58 +02:00
<configs/default.nix>
2019-08-24 12:02:38 +02:00
<configs/direnv.nix>
2019-06-13 15:39:33 +02:00
# <configs/home-assistant.nix>
2019-05-03 22:37:58 +02:00
<configs/distrobump.nix>
2019-04-19 03:11:51 +02:00
<configs/docker.nix>
<configs/dunst.nix>
2019-05-03 22:37:58 +02:00
<configs/fonts.nix>
<configs/git.nix>
<configs/hledger.nix>
<configs/htop.nix>
2019-04-19 03:11:51 +02:00
<configs/hu-berlin.nix>
<configs/i3.nix>
<configs/kdeconnect.nix>
2019-07-15 08:09:47 +02:00
<configs/keybase.nix>
2019-04-19 03:11:51 +02:00
<configs/keyboard.nix>
2019-05-03 22:37:58 +02:00
<configs/mail.nix>
<configs/mpv.nix>
2019-04-19 03:11:51 +02:00
<configs/nano.nix>
<configs/neovim.nix>
2019-05-03 22:37:58 +02:00
<configs/nixpkgs-unstable.nix>
<configs/packages>
2019-04-19 03:11:51 +02:00
<configs/printing.nix>
2019-05-03 22:37:58 +02:00
<configs/random-background.nix>
2019-04-19 03:11:51 +02:00
<configs/redshift.nix>
<configs/retiolum.nix>
<configs/rofi.nix>
2019-05-03 22:37:58 +02:00
<configs/sncli.nix>
2019-04-19 03:11:51 +02:00
<configs/ssh.nix>
2019-05-03 22:37:58 +02:00
<configs/sudo.nix>
<configs/themes/owickstrom-dark.nix>
<configs/theming.nix>
<configs/tmux.nix>
2019-06-08 15:01:41 +02:00
<configs/todo-txt.nix>
2019-06-10 17:05:36 +02:00
<configs/traadfri.nix>
2019-04-19 03:11:51 +02:00
<configs/unclutter.nix>
<configs/urxvt.nix>
2019-05-03 22:37:58 +02:00
<configs/vscode.nix>
2019-04-19 03:11:51 +02:00
<configs/xautolock.nix>
<configs/xresources.nix>
<configs/zsh.nix>
{
niveum.user = {
github = "kmein";
email = "kieran.meinhardt@gmail.com";
name = "Kierán Meinhardt";
};
niveum.applications = rec {
2019-04-19 15:02:05 +02:00
fileManager = "${config.niveum.applications.terminal} -e ${pkgs.ranger}/bin/ranger";
2019-04-19 03:11:51 +02:00
};
niveum.theme = {
gtk = { name = "Arc"; package = pkgs.arc-theme; };
icon = { name = "Arc"; package = pkgs.arc-icon-theme; };
cursor = { name = "capitaine-cursors"; package = pkgs.capitaine-cursors; };
};
}
{
nixpkgs.config = {
allowUnfree = true;
packageOverrides = pkgs: {
2019-05-15 23:42:37 +02:00
python3Packages = pkgs.python3Packages.override {
overrides = new: old: {
spotify-cli-linux = new.callPackage <packages/spotify-cli-linux.nix> {};
instaloader = new.callPackage <packages/instaloader.nix> {};
sncli = new.callPackage <packages/sncli.nix> {};
};
};
2019-08-18 11:17:28 +02:00
haskellPackages = pkgs.haskellPackages.override {
overrides = new: old: {
blessings = new.callPackage <packages/blessings.nix> {};
scanner = new.callPackage <stockholm/krebs/5pkgs/haskell/scanner.nix> {};
2019-05-15 23:42:37 +02:00
};
2019-08-18 11:17:28 +02:00
};
2019-08-25 22:41:36 +02:00
2019-05-29 17:24:01 +02:00
git-quick-stats = pkgs.callPackage <packages/git-quick-stats.nix> {};
2019-05-17 07:25:03 +02:00
writeDash = pkgs.writers.writeDash;
writeDashBin = pkgs.writers.writeDashBin;
2019-08-18 11:17:28 +02:00
iolanguage = pkgs.callPackage <packages/iolanguage.nix> {};
nix-git = pkgs.callPackage <packages/nix-git.nix> {};
kmein = {
autorenkalender = pkgs.callPackage <packages/autorenkalender.nix> {};
bvg = pkgs.callPackage <packages/bvg.nix> {};
daybook = pkgs.callPackage <packages/daybook.nix> {};
font-size = pkgs.callPackage <packages/font-size.nix> { font = config.niveum.fonts.terminal; };
genius = pkgs.callPackage <packages/genius.nix> {};
instaget = pkgs.callPackage <packages/instaget.nix> {};
literature-quote = pkgs.callPackage <packages/literature-quote.nix> {};
n = pkgs.callPackage <packages/n.nix> {};
depp = pkgs.callPackage <packages/depp.nix> {};
odyssey = pkgs.callPackage <packages/odyssey.nix> {};
wttr = pkgs.callPackage <packages/wttr.nix> {};
nav = pkgs.callPackage <packages/nav.nix> {};
dirmir = pkgs.callPackage <packages/dirmir.nix> {};
tolino-screensaver = pkgs.callPackage <packages/tolino-screensaver.nix> {};
# fzf-wrappers = pkgs.callPackage <packages/fzf-wrappers.nix> {}; (broken)
2019-08-18 19:14:58 +02:00
slide =
let slide-package = pkgs.fetchFromGitHub {
owner = "kmein";
repo = "slide";
rev = "0470583d22212745eab4f46076267addf4d2346c";
sha256 = "0skcp3va9v4hmxy5ramghpz53gnyxv10wsacgmc2jr0v1wrqlzbh";
};
in pkgs.callPackage slide-package {};
2019-08-18 11:17:28 +02:00
haskellPackages.mnemosyne =
let mnemosyne-package = pkgs.fetchFromGitHub {
repo = "mnemosyne";
owner = "kmein";
rev = "6bfa13c88db176af80be90840ff03573d67d679f";
sha256 = "1rimv5c5q9602y501hbkgkfbimqnmdkcr5hp1434q06gcazhjhca";
};
in pkgs.haskellPackages.callPackage mnemosyne-package {};
};
2019-04-19 03:11:51 +02:00
};
};
}
{
boot.cleanTmpDir = true;
boot.loader.timeout = 1;
boot.extraModulePackages = [ config.boot.kernelPackages.exfat-nofuse ];
}
{
time.timeZone = "Europe/Berlin";
}
{
home-manager.users.me = {
programs.zathura = {
enable = true;
options.selection-clipboard = "clipboard";
};
};
}
{
users.mutableUsers = false;
users.users.me = {
name = "kfm";
2019-05-14 07:18:04 +02:00
description = config.niveum.user.name;
2019-04-19 03:11:51 +02:00
home = "/home/kfm";
createHome = true;
group = "users";
hashedPassword = "$6$w9hXyGFl/.IZBXk$5OiWzS1G.5hImhh1YQmZiCXYNAJhi3X6Y3uSLupJNYYXPLMsQpx2fwF4Xr2uYzGMV8Foqh8TgUavx1APD9rcb/";
shell = pkgs.zsh;
};
}
{
sound.enable = true;
hardware.pulseaudio = {
enable = true;
package = pkgs.pulseaudioFull; # for bluetooth sound output
};
users.users.me.extraGroups = [ "audio" ];
environment.systemPackages = [ pkgs.pavucontrol pkgs.pamixer ];
}
2019-04-22 22:40:41 +02:00
{
environment.systemPackages = [
2019-07-03 22:12:40 +02:00
(pkgs.writers.writeDashBin "niveum-deploy" ''
2019-04-22 22:40:41 +02:00
NIVEUM_DIR=/home/kfm/prog/git/niveum
[ $# -eq 1 ] || echo >&2 "Usage: niveum-deploy SYSTEM"
2019-04-22 22:40:41 +02:00
eval $(nix-build --no-out-link "$NIVEUM_DIR/deploy.nix" -A "$1")
2019-04-22 22:40:41 +02:00
'')
2019-07-03 22:12:40 +02:00
(pkgs.writers.writeDashBin "niveum-update" ''
2019-04-22 22:40:41 +02:00
NIVEUM_DIR=/home/kfm/prog/git/niveum
2019-05-15 18:21:58 +02:00
nix-prefetch-git --url https://github.com/NixOS/nixpkgs-channels --rev refs/heads/nixos-${config.system.stateVersion} > "$NIVEUM_DIR/nixpkgs.json"
2019-04-22 22:40:41 +02:00
'')
];
}
2019-04-19 03:11:51 +02:00
{
2019-05-15 23:42:37 +02:00
environment.interactiveShellInit = "export PATH=$PATH:$HOME/.cargo/bin";
2019-08-22 09:44:11 +02:00
environment.shellAliases =
let
2019-08-23 18:27:06 +02:00
wcd = pkgs.writeDash "wcd" ''
cd "$(${pkgs.coreutils}/bin/readlink "$(${pkgs.which}/bin/which --skip-alias "$1")" \
| ${pkgs.findutils}/bin/xargs ${pkgs.coreutils}/bin/dirname)/.."
'';
where = pkgs.writeDash "where" ''
${pkgs.coreutils}/bin/readlink "$(${pkgs.which}/bin/which --skip-alias "$1")" \
| ${pkgs.findutils}/bin/xargs ${pkgs.coreutils}/bin/dirname
'';
take = pkgs.writeDash "take" ''
mkdir "$1" && cd "$1"
'';
2019-08-22 09:44:11 +02:00
in {
2019-04-19 03:11:51 +02:00
clipboard = "${pkgs.xclip}/bin/xclip -se c";
o = "${pkgs.xdg_utils}/bin/xdg-open";
tmux = "${pkgs.tmux}/bin/tmux -2";
ip = "${pkgs.iproute}/bin/ip -c";
ns = "nix-shell --run zsh";
2019-08-23 18:27:06 +02:00
nixi = "nix repl '<nixos/nixpkgs>'";
2019-04-19 03:11:51 +02:00
rm = "rm -i";
cp = "cp -i";
mv = "mv -i";
l = "${pkgs.exa}/bin/exa -a";
ls = "${pkgs.exa}/bin/exa";
ll = "${pkgs.exa}/bin/exa -l";
la = "${pkgs.exa}/bin/exa -la";
2019-06-08 14:59:09 +02:00
dig = "dig +short";
2019-08-22 09:44:11 +02:00
wcd = "source ${wcd}";
where = "source ${where}";
2019-08-23 18:27:06 +02:00
take = "source ${take}";
2019-08-27 17:27:26 +02:00
tree = "${pkgs.exa}/bin/exa --tree";
cat = "${pkgs.bat}/bin/bat --style=plain";
2019-04-19 03:11:51 +02:00
};
}
{
networking.wireless = {
enable = true;
userControlled.enable = true;
networks = {
2019-08-05 09:37:32 +02:00
"Aether".pskRaw = "e1b18af54036c5c9a747fe681c6a694636d60a5f8450f7dec0d76bc93e2ec85a";
2019-05-14 07:18:04 +02:00
"Asoziales Netzwerk".pskRaw = "8e234041ec5f0cd1b6a14e9adeee9840ed51b2f18856a52137485523e46b0cb6";
2019-08-05 09:37:32 +02:00
"EasyBox-927376".pskRaw = "dbd490ab69b39bd67cfa06daf70fc3ef3ee90f482972a668ed758f90f5577c22";
"FlixBus Wi-Fi" = {};
"FlixBus" = {};
"FlixTrain" = {};
2019-05-14 07:18:04 +02:00
"Libertarian WiFi".pskRaw = "e9beaae6ffa55d10e80b8a2e7d997411d676a3cc6f1f29d0b080391f04555050";
2019-08-05 09:37:32 +02:00
"Ni/Schukajlow".pskRaw = "ffc47f6829da59c48aea878a32252223303f5c47a3859edc90971ffc63346781";
"WIFIonICE" = {};
2019-05-14 07:18:04 +02:00
"WLAN-914742".psk = "67647139648174545446";
2019-08-11 00:08:28 +02:00
"WLAN-XVMU6T".pskRaw = "46ea807283255a3d7029233bd79c18837df582666c007c86a8d591f65fae17cc";
2019-08-05 09:37:32 +02:00
"c-base-public" = {};
"discord".psk = "baraustrinken";
"security-by-obscurity".psk = "44629828256481964386";
2019-04-19 03:11:51 +02:00
};
};
environment.systemPackages = [ pkgs.wpa_supplicant_gui ];
}
{
networking.hosts = {
"192.168.178.1" = [ "fritz.box" ];
"192.168.178.21" = [ "scardanelli" ];
"192.168.178.22" = [ "homeros" ];
"192.168.178.24" = [ "catullus" ];
};
}
{
i18n.defaultLocale = "en_GB.UTF-8";
}
{
services.illum.enable = true;
}
{
services.xserver = {
enable = true;
2019-05-02 15:28:17 +02:00
displayManager.lightdm = {
2019-04-19 03:11:51 +02:00
enable = true;
2019-05-02 15:28:17 +02:00
autoLogin.enable = true;
autoLogin.user = config.users.users.me.name;
greeters.gtk = {
enable = true;
indicators = [ "~spacer" "~host" "~spacer" "~session" "~power" ];
};
2019-04-19 03:11:51 +02:00
};
2019-05-02 15:28:17 +02:00
desktopManager.default = "none";
2019-04-19 03:11:51 +02:00
};
}
{
security.wrappers = {
pmount.source = "${pkgs.pmount}/bin/pmount";
pumount.source = "${pkgs.pmount}/bin/pumount";
};
}
{
programs.command-not-found.enable = true;
}
{
programs.java = {
enable = true;
package = pkgs.openjdk;
};
}
2019-08-22 09:44:21 +02:00
{
systemd.services.restart-vpn = {
description = "Restart VPNs after suspend";
wantedBy = [ "suspend.target" ];
after = [ "suspend.target" ];
serviceConfig.Type = "oneshot";
script = ''
set -efu
${pkgs.procps}/bin/pkill -HUP --exact openvpn
${pkgs.procps}/bin/pkill -ALRM --exact tincd
'';
};
}
2019-04-19 03:11:51 +02:00
];
}