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:
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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
6
overlays/overlays.nix
Normal 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
6
overlays/toml.nix
Normal 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);
|
||||
})
|
||||
Reference in New Issue
Block a user