1
0
mirror of https://github.com/kmein/niveum synced 2026-03-16 10:11:08 +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
inherit (lib.strings) makeBinPath;
in
{
imports = [
<niveum/modules/constants.nix>
{
services.dbus.packages = [ pkgs.gnome3.dconf ];
}
<home-manager/nixos>
# ./mopidy.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 = {
allowUnfree = true;
packageOverrides = pkgs: {
python3Packages = pkgs.python3Packages.override {
overrides = new: old: {
spotify-cli-linux = new.callPackage <niveum/packages/spotify-cli-linux.nix> {};
instaloader = new.callPackage <niveum/packages/instaloader.nix> {};
sncli = new.callPackage <niveum/packages/sncli.nix> {};
};
};
haskellPackages = pkgs.haskellPackages.override {
overrides = new: old: {
blessings = new.callPackage <niveum/packages/blessings.nix> {};
scanner = new.callPackage <stockholm/krebs/5pkgs/haskell/scanner.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";
services.dbus.packages = [ pkgs.gnome3.dconf ];
}
{
nixpkgs = {
config.allowUnfree = true;
overlays = [
# (import <stockholm/submodules/nix-writers>)
(import <niveum/overlays/toml.nix>)
(self: super: {
python3Packages = super.python3Packages.override {
overrides = new: old: {
spotify-cli-linux = new.callPackage <niveum/packages/spotify-cli-linux.nix> {};
instaloader = new.callPackage <niveum/packages/instaloader.nix> {};
sncli = new.callPackage <niveum/packages/sncli.nix> {};
};
in pkgs.callPackage slide-package {};
haskellPackages.mnemosyne =
let mnemosyne-package = pkgs.fetchFromGitHub {
repo = "mnemosyne";
owner = "kmein";
rev = "6bfa13c88db176af80be90840ff03573d67d679f";
sha256 = "1rimv5c5q9602y501hbkgkfbimqnmdkcr5hp1434q06gcazhjhca";
};
haskellPackages = super.haskellPackages.override {
overrides = new: old: {
blessings = new.callPackage <niveum/packages/blessings.nix> {};
scanner = new.callPackage <stockholm/krebs/5pkgs/haskell/scanner.nix> {};
};
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";
ls = "${pkgs.exa}/bin/exa -s type";
mv = "mv -i";
nixi = "nix repl '<nixos/nixpkgs>'";
nixi = "nix repl '<nixpkgs>'";
ns = "nix-shell --run zsh";
o = "${pkgs.xdg_utils}/bin/xdg-open";
rm = "rm -i";
@@ -313,12 +321,6 @@ in
{
programs.command-not-found.enable = true;
}
{
programs.java = {
enable = true;
package = pkgs.openjdk;
};
}
{
systemd.services.restart-vpn = {
description = "Restart VPNs after suspend";

View File

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

View File

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