1
0
mirror of https://github.com/kmein/niveum synced 2026-03-21 20:31:07 +01:00

feat: add overlays, write TOML

This commit is contained in:
Kierán Meinhardt
2019-11-05 21:59:51 +01:00
parent ff99bfcb5a
commit e296de9ed1
5 changed files with 171 additions and 153 deletions

View File

@@ -1,13 +1,10 @@
{ pkgs, lib, config, ... }: { pkgs, lib, config, options, ... }:
let let
inherit (lib.strings) makeBinPath; inherit (lib.strings) makeBinPath;
in in
{ {
imports = [ imports = [
<niveum/modules/constants.nix> <niveum/modules/constants.nix>
{
services.dbus.packages = [ pkgs.gnome3.dconf ];
}
<home-manager/nixos> <home-manager/nixos>
# ./mopidy.nix # ./mopidy.nix
./alacritty.nix ./alacritty.nix
@@ -75,67 +72,78 @@ in
}; };
} }
{ {
nix.nixPath = [ "/var/src" ]; nix.nixPath = options.nix.nixPath.default ++ [
"/var/src"
"nixpkgs-overlays=${toString ../overlays}"
];
} }
{ {
nixpkgs.config = { services.dbus.packages = [ pkgs.gnome3.dconf ];
allowUnfree = true; }
packageOverrides = pkgs: { {
python3Packages = pkgs.python3Packages.override { nixpkgs = {
overrides = new: old: { config.allowUnfree = true;
spotify-cli-linux = new.callPackage <niveum/packages/spotify-cli-linux.nix> {}; overlays = [
instaloader = new.callPackage <niveum/packages/instaloader.nix> {}; # (import <stockholm/submodules/nix-writers>)
sncli = new.callPackage <niveum/packages/sncli.nix> {}; (import <niveum/overlays/toml.nix>)
}; (self: super: {
}; python3Packages = super.python3Packages.override {
haskellPackages = pkgs.haskellPackages.override { overrides = new: old: {
overrides = new: old: { spotify-cli-linux = new.callPackage <niveum/packages/spotify-cli-linux.nix> {};
blessings = new.callPackage <niveum/packages/blessings.nix> {}; instaloader = new.callPackage <niveum/packages/instaloader.nix> {};
scanner = new.callPackage <stockholm/krebs/5pkgs/haskell/scanner.nix> {}; sncli = new.callPackage <niveum/packages/sncli.nix> {};
};
};
git-quick-stats = pkgs.callPackage <niveum/packages/git-quick-stats.nix> {};
writeDash = pkgs.writers.writeDash;
writeDashBin = pkgs.writers.writeDashBin;
iolanguage = pkgs.callPackage <niveum/packages/iolanguage.nix> {};
nix-git = pkgs.callPackage <niveum/packages/nix-git.nix> {};
gfs-fonts = pkgs.callPackage <niveum/packages/gfs-fonts.nix> {};
kmein = {
autorenkalender = pkgs.callPackage <niveum/packages/autorenkalender.nix> {};
bvg = pkgs.callPackage <niveum/packages/bvg.nix> {};
daybook = pkgs.callPackage <niveum/packages/daybook.nix> {};
genius = pkgs.callPackage <niveum/packages/genius.nix> {};
instaget = pkgs.callPackage <niveum/packages/instaget.nix> {};
literature-quote = pkgs.callPackage <niveum/packages/literature-quote.nix> {};
n = pkgs.callPackage <niveum/packages/n.nix> {};
depp = pkgs.callPackage <niveum/packages/depp.nix> {};
odyssey = pkgs.callPackage <niveum/packages/odyssey.nix> {};
wttr = pkgs.callPackage <niveum/packages/wttr.nix> {};
nav = pkgs.callPackage <niveum/packages/nav.nix> {};
dirmir = pkgs.callPackage <niveum/packages/dirmir.nix> {};
favicon = pkgs.callPackage <niveum/packages/favicon.nix> {};
tolino-screensaver = pkgs.callPackage <niveum/packages/tolino-screensaver.nix> {};
# fzf-wrappers = pkgs.callPackage <niveum/packages/fzf-wrappers.nix> {}; (broken)
slide =
let slide-package = pkgs.fetchFromGitHub {
owner = "kmein";
repo = "slide";
rev = "0470583d22212745eab4f46076267addf4d2346c";
sha256 = "0skcp3va9v4hmxy5ramghpz53gnyxv10wsacgmc2jr0v1wrqlzbh";
}; };
in pkgs.callPackage slide-package {}; };
haskellPackages.mnemosyne = haskellPackages = super.haskellPackages.override {
let mnemosyne-package = pkgs.fetchFromGitHub { overrides = new: old: {
repo = "mnemosyne"; blessings = new.callPackage <niveum/packages/blessings.nix> {};
owner = "kmein"; scanner = new.callPackage <stockholm/krebs/5pkgs/haskell/scanner.nix> {};
rev = "6bfa13c88db176af80be90840ff03573d67d679f";
sha256 = "1rimv5c5q9602y501hbkgkfbimqnmdkcr5hp1434q06gcazhjhca";
}; };
in pkgs.haskellPackages.callPackage mnemosyne-package {}; };
};
}; writeDashBin = super.writers.writeDashBin;
writeDash = super.writers.writeDash;
git-quick-stats = super.callPackage <niveum/packages/git-quick-stats.nix> {};
iolanguage = super.callPackage <niveum/packages/iolanguage.nix> {};
nix-git = super.callPackage <niveum/packages/nix-git.nix> {};
gfs-fonts = super.callPackage <niveum/packages/gfs-fonts.nix> {};
kmein = {
autorenkalender = super.callPackage <niveum/packages/autorenkalender.nix> {};
bvg = super.callPackage <niveum/packages/bvg.nix> {};
daybook = super.callPackage <niveum/packages/daybook.nix> {};
genius = super.callPackage <niveum/packages/genius.nix> {};
instaget = super.callPackage <niveum/packages/instaget.nix> {};
literature-quote = super.callPackage <niveum/packages/literature-quote.nix> {};
n = super.callPackage <niveum/packages/n.nix> {};
depp = super.callPackage <niveum/packages/depp.nix> {};
odyssey = super.callPackage <niveum/packages/odyssey.nix> {};
wttr = super.callPackage <niveum/packages/wttr.nix> {};
nav = super.callPackage <niveum/packages/nav.nix> {};
dirmir = super.callPackage <niveum/packages/dirmir.nix> {};
favicon = super.callPackage <niveum/packages/favicon.nix> {};
tolino-screensaver = super.callPackage <niveum/packages/tolino-screensaver.nix> {};
# fzf-wrappers = pkgs.callPackage <niveum/packages/fzf-wrappers.nix> {}; (broken)
slide =
let slide-package = super.fetchFromGitHub {
owner = "kmein";
repo = "slide";
rev = "0470583d22212745eab4f46076267addf4d2346c";
sha256 = "0skcp3va9v4hmxy5ramghpz53gnyxv10wsacgmc2jr0v1wrqlzbh";
};
in super.callPackage slide-package {};
haskellPackages.mnemosyne =
let mnemosyne-package = super.fetchFromGitHub {
repo = "mnemosyne";
owner = "kmein";
rev = "6bfa13c88db176af80be90840ff03573d67d679f";
sha256 = "1rimv5c5q9602y501hbkgkfbimqnmdkcr5hp1434q06gcazhjhca";
};
in super.haskellPackages.callPackage mnemosyne-package {};
};
})
];
}; };
} }
{ {
@@ -226,7 +234,7 @@ in
ll = "${pkgs.exa}/bin/exa -s type -l"; ll = "${pkgs.exa}/bin/exa -s type -l";
ls = "${pkgs.exa}/bin/exa -s type"; ls = "${pkgs.exa}/bin/exa -s type";
mv = "mv -i"; mv = "mv -i";
nixi = "nix repl '<nixos/nixpkgs>'"; nixi = "nix repl '<nixpkgs>'";
ns = "nix-shell --run zsh"; ns = "nix-shell --run zsh";
o = "${pkgs.xdg_utils}/bin/xdg-open"; o = "${pkgs.xdg_utils}/bin/xdg-open";
rm = "rm -i"; rm = "rm -i";
@@ -313,12 +321,6 @@ in
{ {
programs.command-not-found.enable = true; programs.command-not-found.enable = true;
} }
{
programs.java = {
enable = true;
package = pkgs.openjdk;
};
}
{ {
systemd.services.restart-vpn = { systemd.services.restart-vpn = {
description = "Restart VPNs after suspend"; description = "Restart VPNs after suspend";

View File

@@ -61,13 +61,13 @@ in with config.niveum; {
text = colours.foreground; text = colours.foreground;
}; };
}; };
statusCommand = "${pkgs.unstable.i3status-rust}/bin/i3status-rs ${pkgs.writeText "i3status-rust.toml" ( statusCommand = "${pkgs.unstable.i3status-rust}/bin/i3status-rs ${
import <niveum/dot/i3status-rust.nix> { pkgs.writeTOML (import <niveum/dot/i3status-rust.nix> {
wifi-interface = networkInterfaces.wireless; wifi-interface = networkInterfaces.wireless;
batteryBlock = batteryBlocks.default; batteryBlock = batteryBlocks.default;
inherit (config.niveum) colours; inherit (config.niveum) colours;
} })
)}"; }";
}]; }];
keybindings = { keybindings = {
"${modifier}+Down" = "focus down"; "${modifier}+Down" = "focus down";

View File

@@ -1,81 +1,85 @@
{ wifi-interface, colours, batteryBlock }: '' { wifi-interface, colours, batteryBlock }:
[theme] {
name = "plain" theme = {
[theme.overrides] name = "plain";
separator = " " overrides = {
critical_fg = "${colours.red.bright}" separator = " ";
good_fg = "${colours.green.bright}" critical_fg = colours.red.bright;
idle_fg = "${colours.foreground}" good_fg = colours.green.bright;
info_fg = "${colours.foreground}" idle_fg = colours.foreground;
separator_fg = "auto" info_fg = colours.foreground;
warning_fg = "${colours.yellow.bright}" separator_fg = "auto";
alternating_tint_bg = "${colours.background}" warning_fg = colours.yellow.bright;
alternating_tint_fg = "${colours.background}" alternating_tint_bg = colours.background;
critical_bg = "${colours.background}" alternating_tint_fg = colours.background;
good_bg = "${colours.background}" critical_bg = colours.background;
idle_bg = "${colours.background}" good_bg = colours.background;
info_bg = "${colours.background}" idle_bg = colours.background;
separator_bg = "auto" info_bg = colours.background;
warning_bg = "${colours.background}" separator_bg = "auto";
warning_bg = colours.background;
[icons] };
name = "none" };
[icons.overrides] icons = {
music = " " name = "none";
music_play = "" overrides = {
music_next = "" music = " ";
music_prev = "" music_play = "";
volume_full = " " music_next = "";
volume_half = " " music_prev = "";
volume_empty = " " volume_full = " ";
bat = " " volume_half = " ";
bat_full = " " volume_empty = " ";
bat_charging = " " bat = " ";
bat_discharging = " " bat_full = " ";
memory_mem = "" bat_charging = " ";
separator = "" bat_discharging = " ";
net_wireless = "" memory_mem = "";
cogs = "" separator = "";
time = "" net_wireless = "";
cogs = "";
[[block]] time = "";
block = "music" };
player = "spotify" };
buttons = ["prev", "play", "next"] block = [
marquee = false {
max_width = 35 block = "music";
# on_collapsed_click = "spotify" player = "spotify";
buttons = ["prev" "play" "next"];
[[block]] marquee = false;
block = "net" max_width = 35;
device = "${wifi-interface}" }
ssid = true {
interval = 1 block = "net";
speed_up = false device = wifi-interface;
speed_down = false ssid = true;
interval = 1;
[[block]] speed_up = false;
block = "battery" speed_down = false;
device = "${batteryBlock}" }
show = "both" {
block = "battery";
[[block]] device = batteryBlock;
block = "sound" show = "both";
# show_volume_when_muted = true }
{
[[block]] block = "sound";
block = "memory" }
display_type = "memory" {
format_mem = "{MUg}G" block = "memory";
clickable = false display_type = "memory";
format_mem = "{MUg}G";
[[block]] clickable = false;
block = "load" }
interval = 1 {
format = "{1m}" block = "load";
interval = 1;
[[block]] format = "{1m}";
block = "time" }
interval = 5 {
format = "%Y-%m-%d %H:%M" block = "time";
'' interval = 5;
format = "%Y-%m-%d %H:%M";
}
];
}

6
overlays/overlays.nix Normal file
View File

@@ -0,0 +1,6 @@
self: super:
with super.lib;
let
eval = import <nixpkgs/nixos/lib/eval-config.nix>;
paths = (eval {modules = [(import <nixos-config>)];}).config.nixpkgs.overlays;
in foldl' (flip extends) (_: super) paths self

6
overlays/toml.nix Normal file
View File

@@ -0,0 +1,6 @@
(self: super: {
writeTOML = object: super.runCommand "writeTOML" {} ''
echo '${builtins.toJSON object}' | ${super.remarshal}/bin/json2toml > $out
'';
toTOML = object: builtins.readFile (self.writeTOML object);
})