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:
@@ -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";
|
||||||
|
|||||||
@@ -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";
|
||||||
|
|||||||
@@ -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
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