working on home-manager migration
This commit is contained in:
parent
45a4de7b78
commit
ab7d500fab
22 changed files with 470 additions and 574 deletions
|
@ -1,3 +1,4 @@
|
||||||
|
{ lib, ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./gui
|
./gui
|
||||||
|
@ -8,4 +9,12 @@
|
||||||
./terminal
|
./terminal
|
||||||
./yubikey.nix
|
./yubikey.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# some system stuff
|
||||||
|
# -----------------
|
||||||
|
time.timeZone = lib.mkDefault "Europe/Berlin";
|
||||||
|
#time.timeZone = lib.mkDefault "Pacific/Auckland";
|
||||||
|
#time.timeZone = lib.mkDefault "Asia/Singapore";
|
||||||
|
#time.timeZone = lib.mkDefault "Asia/Makassar";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,8 @@ with types;
|
||||||
./hosts.nix
|
./hosts.nix
|
||||||
./wifi.nix
|
./wifi.nix
|
||||||
#./avahi.nix
|
#./avahi.nix
|
||||||
|
./syncthing.nix
|
||||||
|
./nginx.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
config = mkIf config.components.network.enable { };
|
config = mkIf config.components.network.enable { };
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
#networking.extraHosts = ''
|
networking.extraHosts = ''
|
||||||
# 144.76.13.147 robi
|
144.76.13.147 robi
|
||||||
#'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
260
nixos/components/network/nginx.nix
Normal file
260
nixos/components/network/nginx.nix
Normal file
|
@ -0,0 +1,260 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
with lib;
|
||||||
|
{
|
||||||
|
options.components.network.nginx.enable = mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = config.components.network.enable;
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf (config.components.network.nginx.enable) {
|
||||||
|
|
||||||
|
security.acme.defaults.email = "contact@ingolf-wagner.de";
|
||||||
|
security.acme.acceptTerms = true;
|
||||||
|
|
||||||
|
services.nginx = {
|
||||||
|
|
||||||
|
# Use recommended settings
|
||||||
|
recommendedGzipSettings = lib.mkDefault true;
|
||||||
|
recommendedOptimisation = lib.mkDefault true;
|
||||||
|
recommendedProxySettings = lib.mkDefault true;
|
||||||
|
recommendedTlsSettings = lib.mkDefault true;
|
||||||
|
|
||||||
|
# for loki logging
|
||||||
|
commonHttpConfig = ''
|
||||||
|
log_format logfmt escape=json 'timestamp=$time_iso8601 '
|
||||||
|
'facility=nginx '
|
||||||
|
'src_addr=$remote_addr '
|
||||||
|
'body_bytes_sent=$body_bytes_sent '
|
||||||
|
'request_time=$request_time '
|
||||||
|
'response_status=$status '
|
||||||
|
'request="$request" '
|
||||||
|
'request_method="$request_method" '
|
||||||
|
'host="$host" '
|
||||||
|
'upstream_cache_status="$upstream_cache_status" '
|
||||||
|
'upstream_addr="$upstream_addr" '
|
||||||
|
'http_x_forwarded_for="$http_x_forwarded_for" '
|
||||||
|
'http_referrer="$http_referer" '
|
||||||
|
'http_user_agent="$http_user_agent"';
|
||||||
|
|
||||||
|
# log to local journald
|
||||||
|
access_log syslog:server=unix:/dev/log logfmt;
|
||||||
|
'';
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
services.nginx.package = pkgs.nginxMainline;
|
||||||
|
services.nginx.virtualHosts."${config.networking.hostName}.private" = {
|
||||||
|
default = true;
|
||||||
|
locations."/" = {
|
||||||
|
root = pkgs.landingpage.override {
|
||||||
|
jsonConfig = [
|
||||||
|
{ title = "System Links"; }
|
||||||
|
{
|
||||||
|
text = "Syncthings";
|
||||||
|
items = map
|
||||||
|
({ name, host ? "${name}.private", ... }: {
|
||||||
|
label = name;
|
||||||
|
href = "http://${host}:8384/";
|
||||||
|
image = "https://media.giphy.com/media/JoyU4vuzwj6ZA7Ging/giphy.gif";
|
||||||
|
})
|
||||||
|
(lib.flatten (lib.mapAttrsToList (name: { ... }: { inherit name; })
|
||||||
|
config.services.tinc.networks."private".hostSettings));
|
||||||
|
}
|
||||||
|
{
|
||||||
|
text = "robi";
|
||||||
|
items = [
|
||||||
|
{
|
||||||
|
label = "Jellyfin";
|
||||||
|
href = "http://flix.ingolf-wagner.de/";
|
||||||
|
image = "https://media.giphy.com/media/fyLi0OuWysotq/giphy.gif";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "netdata";
|
||||||
|
href = "http://robi.private:19999/";
|
||||||
|
image = "https://media.giphy.com/media/BkjdN6MQCDPaw/giphy.gif";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "logs";
|
||||||
|
href = "http://grafana.robi.private/explore";
|
||||||
|
image = "https://raw.githubusercontent.com/cncf/landscape/master/hosted_logos/grafana-loki.svg";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "grafana";
|
||||||
|
href = "http://grafana.robi.private/";
|
||||||
|
image = "https://www.vectorlogo.zone/logos/grafana/grafana-icon.svg";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "prometheus";
|
||||||
|
href = "http://prometheus.robi.private/";
|
||||||
|
image = "https://www.vectorlogo.zone/logos/prometheusio/prometheusio-icon.svg";
|
||||||
|
}
|
||||||
|
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
text = "chungus";
|
||||||
|
items = [
|
||||||
|
{
|
||||||
|
label = "HomeAssistant";
|
||||||
|
href = "http://chungus.private:8123/";
|
||||||
|
image = "https://media.giphy.com/media/fyLi0OuWysotq/giphy.gif";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "Zigbee2Mqtt";
|
||||||
|
href = "http://chungus.private:9666/";
|
||||||
|
image = "https://media.giphy.com/media/fyLi0OuWysotq/giphy.gif";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "Tdarr";
|
||||||
|
href = "http://tdarr.chungus.private/";
|
||||||
|
image = "https://media.giphy.com/media/fyLi0OuWysotq/giphy.gif";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "Jellyfin";
|
||||||
|
href = "http://chungus:8096/";
|
||||||
|
image = "https://media.giphy.com/media/fyLi0OuWysotq/giphy.gif";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "netdata";
|
||||||
|
href = "http://chungus.private:19999/";
|
||||||
|
image = "https://media.giphy.com/media/BkjdN6MQCDPaw/giphy.gif";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "logs";
|
||||||
|
href = "http://grafana.chungus.private/explore";
|
||||||
|
image = "https://raw.githubusercontent.com/cncf/landscape/master/hosted_logos/grafana-loki.svg";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "grafana";
|
||||||
|
href = "http://grafana.chungus.private/";
|
||||||
|
image = "https://www.vectorlogo.zone/logos/grafana/grafana-icon.svg";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "prometheus";
|
||||||
|
href = "http://prometheus.chungus.private/";
|
||||||
|
image = "https://www.vectorlogo.zone/logos/prometheusio/prometheusio-icon.svg";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
text = "pepe";
|
||||||
|
items = [
|
||||||
|
{
|
||||||
|
label = "netdata";
|
||||||
|
href = "http://pepe.private:19999/";
|
||||||
|
image = "https://media.giphy.com/media/BkjdN6MQCDPaw/giphy.gif";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "logs";
|
||||||
|
href = "http://grafana.pepe.private/explore";
|
||||||
|
image = "https://raw.githubusercontent.com/cncf/landscape/master/hosted_logos/grafana-loki.svg";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "grafana";
|
||||||
|
href = "http://grafana.pepe.private/";
|
||||||
|
image = "https://www.vectorlogo.zone/logos/grafana/grafana-icon.svg";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "prometheus";
|
||||||
|
href = "http://prometheus.pepe.private/";
|
||||||
|
image = "https://www.vectorlogo.zone/logos/prometheusio/prometheusio-icon.svg";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
title = "Various Links";
|
||||||
|
items = [
|
||||||
|
{
|
||||||
|
label = "NeverSSL";
|
||||||
|
href = "https://oldslowfreshlight.neverssl.com/";
|
||||||
|
image = "https://media.giphy.com/media/fyLi0OuWysotq/giphy.gif";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "Hetzner Cloud";
|
||||||
|
href = "https://console.hetzner.cloud/projects";
|
||||||
|
image =
|
||||||
|
"https://media.giphy.com/media/NECZ8crkbXR0k/giphy.gif";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "Pass the Popcorn";
|
||||||
|
href = "https://passthepopcorn.me/";
|
||||||
|
image =
|
||||||
|
"https://media.giphy.com/media/NipFetnQOuKhW/giphy.gif";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "redacted";
|
||||||
|
href = "https://redacted.ch/";
|
||||||
|
image =
|
||||||
|
"https://media.giphy.com/media/ku5EcFe4PNGWA/giphy.gif";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "Cups";
|
||||||
|
href = "http://localhost:631/";
|
||||||
|
image =
|
||||||
|
"https://media.giphy.com/media/7hU7x4GPurk2c/giphy.gif";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
text = "NixOS Links";
|
||||||
|
items = [
|
||||||
|
{
|
||||||
|
label = "NixOS Manual";
|
||||||
|
href = "https://nixos.org/nixos/manual/";
|
||||||
|
image =
|
||||||
|
"https://media.giphy.com/media/dsdVyKkSqccEzoPufX/giphy.gif";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "Nixpkgs Manual";
|
||||||
|
href = "https://nixos.org/nixpkgs/manual/";
|
||||||
|
image =
|
||||||
|
"https://media.giphy.com/media/dsdVyKkSqccEzoPufX/giphy.gif";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "NixOS Reference";
|
||||||
|
href =
|
||||||
|
"https://storage.googleapis.com/files.tazj.in/nixdoc/manual.html#sec-functions-library";
|
||||||
|
image =
|
||||||
|
"https://media.giphy.com/media/LkjlH3rVETgsg/giphy.gif";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "Nix Packages";
|
||||||
|
href = "https://nixos.org/nixos/packages.html";
|
||||||
|
image =
|
||||||
|
"https://media.giphy.com/media/l2YWlohvjPnsvkdEc/giphy.gif";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "NixOS Language specific helpers";
|
||||||
|
href =
|
||||||
|
"https://nixos.wiki/wiki/Language-specific_package_helpers";
|
||||||
|
image =
|
||||||
|
"https://media.giphy.com/media/LkjlH3rVETgsg/giphy.gif";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "NixOS Weekly";
|
||||||
|
href = "https://weekly.nixos.org/";
|
||||||
|
image =
|
||||||
|
"https://media.giphy.com/media/lXiRLb0xFzmreM8k8/giphy.gif";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "NixOS Security";
|
||||||
|
href = "https://broken.sh/";
|
||||||
|
image =
|
||||||
|
"https://media.giphy.com/media/BqILAHjH1Ttm0/giphy.gif";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "NixOS RFCs";
|
||||||
|
href = "https://github.com/NixOS/rfcs/";
|
||||||
|
image =
|
||||||
|
"https://media.giphy.com/media/Uq9bGjGKg08M0/giphy.gif";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{ urlEncode = true; }
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -47,31 +47,10 @@ with lib; {
|
||||||
|
|
||||||
# needs to be on encrypted drives
|
# needs to be on encrypted drives
|
||||||
# -------------------------------
|
# -------------------------------
|
||||||
private = {
|
|
||||||
enable = lib.mkDefault false;
|
|
||||||
#watch = lib.mkDefault false;
|
|
||||||
path = lib.mkDefault "/tmp/private";
|
|
||||||
devices = [ "chungus" "pepe" "cream" "sterni" "mobi" "bobi" ];
|
|
||||||
versioning = {
|
|
||||||
type = "simple";
|
|
||||||
params.keep = "10";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
art = {
|
|
||||||
enable = lib.mkDefault false;
|
|
||||||
#watch = lib.mkDefault false;
|
|
||||||
path = lib.mkDefault "/tmp/art";
|
|
||||||
devices = [ "chungus" "pepe" "cream" "sterni" "bumba" ];
|
|
||||||
versioning = {
|
|
||||||
type = "simple";
|
|
||||||
params.keep = "2";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
books = {
|
books = {
|
||||||
enable = lib.mkDefault false;
|
enable = lib.mkDefault false;
|
||||||
#watch = lib.mkDefault false;
|
|
||||||
path = lib.mkDefault "/tmp/books";
|
path = lib.mkDefault "/tmp/books";
|
||||||
devices = [ "chungus" "robi" ];
|
devices = [ "chungus" "robi" "cream" "cherry" ];
|
||||||
versioning = {
|
versioning = {
|
||||||
type = "simple";
|
type = "simple";
|
||||||
params.keep = "2";
|
params.keep = "2";
|
||||||
|
@ -79,9 +58,8 @@ with lib; {
|
||||||
};
|
};
|
||||||
password-store = {
|
password-store = {
|
||||||
enable = lib.mkDefault false;
|
enable = lib.mkDefault false;
|
||||||
#watch = lib.mkDefault false;
|
|
||||||
path = lib.mkDefault "/tmp/password-store";
|
path = lib.mkDefault "/tmp/password-store";
|
||||||
devices = [ "chungus" "pepe" "cream" "sterni" "mobi" "bobi" "cherry" ];
|
devices = [ "chungus" "cream" "sterni" "mobi" "bobi" "cherry" ];
|
||||||
versioning = {
|
versioning = {
|
||||||
type = "simple";
|
type = "simple";
|
||||||
params.keep = "10";
|
params.keep = "10";
|
||||||
|
@ -89,64 +67,23 @@ with lib; {
|
||||||
};
|
};
|
||||||
desktop = {
|
desktop = {
|
||||||
enable = lib.mkDefault false;
|
enable = lib.mkDefault false;
|
||||||
#watch = lib.mkDefault false;
|
|
||||||
path = lib.mkDefault "/tmp/desktop";
|
path = lib.mkDefault "/tmp/desktop";
|
||||||
devices = [ "chungus" "pepe" "cream" "sterni" "mobi" "bobi" "cherry" ];
|
devices = [ "chungus" "cream" "sterni" "mobi" "bobi" "cherry" ];
|
||||||
};
|
};
|
||||||
finance = {
|
finance = {
|
||||||
enable = lib.mkDefault false;
|
enable = lib.mkDefault false;
|
||||||
#watch = lib.mkDefault false;
|
|
||||||
path = lib.mkDefault "/tmp/finance";
|
path = lib.mkDefault "/tmp/finance";
|
||||||
devices = [ "chungus" "pepe" "cream" "sterni" "mobi" "bobi" ];
|
devices = [ "chungus" "cream" "sterni" "mobi" "bobi" ];
|
||||||
versioning = {
|
|
||||||
type = "simple";
|
|
||||||
params.keep = "10";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
fotos = {
|
|
||||||
enable = lib.mkDefault false;
|
|
||||||
#watch = lib.mkDefault false;
|
|
||||||
path = lib.mkDefault "/tmp/fotos";
|
|
||||||
devices = [ "chungus" "pepe" ];
|
|
||||||
versioning = {
|
|
||||||
type = "simple";
|
|
||||||
params.keep = "10";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# no need to be stored on encrypted drives
|
|
||||||
# ----------------------------------------
|
|
||||||
lost-fotos = {
|
|
||||||
enable = lib.mkDefault false;
|
|
||||||
#watch = lib.mkDefault false;
|
|
||||||
path = lib.mkDefault "/tmp/lost-fotos";
|
|
||||||
devices = [ "chungus" "pepe" "robi" ];
|
|
||||||
versioning = {
|
|
||||||
type = "simple";
|
|
||||||
params.keep = "10";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
#media = {
|
|
||||||
# enable = lib.mkDefault false;
|
|
||||||
# watch = lib.mkDefault false;
|
|
||||||
# devices = [ "chungus" "pepe" "robi" ];
|
|
||||||
#};
|
|
||||||
music-projects = {
|
|
||||||
enable = lib.mkDefault false;
|
|
||||||
id = "acfhu-r4t4f";
|
|
||||||
path = lib.mkDefault "/tmp/lost-fotos";
|
|
||||||
#watch = lib.mkDefault false;
|
|
||||||
devices = [ "chungus" "pepe" "cream" "sterni" "robi" ];
|
|
||||||
versioning = {
|
versioning = {
|
||||||
type = "simple";
|
type = "simple";
|
||||||
params.keep = "10";
|
params.keep = "10";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
# todo remove if zfs is is used
|
||||||
nextcloud_backup = {
|
nextcloud_backup = {
|
||||||
enable = lib.mkDefault false;
|
enable = lib.mkDefault false;
|
||||||
#watch = lib.mkDefault false;
|
|
||||||
path = lib.mkDefault "/tmp/lost-fotos";
|
path = lib.mkDefault "/tmp/lost-fotos";
|
||||||
devices = [ "chungus" "pepe" "robi" ];
|
devices = [ "chungus" "robi" ];
|
||||||
versioning = {
|
versioning = {
|
||||||
type = "simple";
|
type = "simple";
|
||||||
params.keep = "2";
|
params.keep = "2";
|
|
@ -23,6 +23,8 @@ with lib;
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
pkgs.ranger # datei browser
|
pkgs.ranger # datei browser
|
||||||
pkgs.retry # retry command till success
|
pkgs.retry # retry command till success
|
||||||
|
pkgs.silver-searcher
|
||||||
|
pkgs.treefmt
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@ with lib;
|
||||||
bind.dnsutils
|
bind.dnsutils
|
||||||
nmap
|
nmap
|
||||||
hexyl
|
hexyl
|
||||||
|
ipcalc
|
||||||
|
|
||||||
units
|
units
|
||||||
];
|
];
|
||||||
|
@ -25,7 +26,7 @@ with lib;
|
||||||
|
|
||||||
joplin-desktop
|
joplin-desktop
|
||||||
|
|
||||||
#yt-dlp
|
evince
|
||||||
];
|
];
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
|
@ -15,6 +15,7 @@ with pkgs;
|
||||||
init.defaultBranch = "main";
|
init.defaultBranch = "main";
|
||||||
pull.ff = "only";
|
pull.ff = "only";
|
||||||
};
|
};
|
||||||
|
diff-so-fancy.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -27,13 +28,6 @@ with pkgs;
|
||||||
gitAndTools.gitflow
|
gitAndTools.gitflow
|
||||||
gitAndTools.gitSVN
|
gitAndTools.gitSVN
|
||||||
gitAndTools.git2cl
|
gitAndTools.git2cl
|
||||||
|
|
||||||
# merge tools
|
|
||||||
meld
|
|
||||||
|
|
||||||
# activate using :
|
|
||||||
# git config --global core.pager "diff-so-fancy | less --tabs=4 -RFX"
|
|
||||||
gitAndTools.diff-so-fancy
|
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,7 @@ let
|
||||||
/dev/shm/background.png && \
|
/dev/shm/background.png && \
|
||||||
${pkgs.imagemagick}/bin/convert /dev/shm/background.png \
|
${pkgs.imagemagick}/bin/convert /dev/shm/background.png \
|
||||||
-font ${pkgs.ubuntu_font_family}/share/fonts/ubuntu/UbuntuMono-B.ttf \
|
-font ${pkgs.ubuntu_font_family}/share/fonts/ubuntu/UbuntuMono-B.ttf \
|
||||||
-gravity Center -pointsize 30 -annotate 0 '+${osConfig.networking.hostName}' \
|
-gravity Center -pointsize 30 -annotate 0 '${osConfig.networking.hostName}' \
|
||||||
/dev/shm/background_with_text.png && \
|
/dev/shm/background_with_text.png && \
|
||||||
${pkgs.feh}/bin/feh --bg-scale /dev/shm/background_with_text.png
|
${pkgs.feh}/bin/feh --bg-scale /dev/shm/background_with_text.png
|
||||||
'';
|
'';
|
||||||
|
@ -126,176 +126,179 @@ in
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
xsession.windowManager.i3 = {
|
xsession = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraConfig = ''
|
windowManager.i3 = {
|
||||||
default_border pixel
|
enable = true;
|
||||||
'';
|
extraConfig = ''
|
||||||
config = {
|
default_border pixel
|
||||||
modifier = "Mod4";
|
'';
|
||||||
terminal = "alacritty";
|
config = {
|
||||||
focus = {
|
modifier = "Mod4";
|
||||||
followMouse = true;
|
terminal = "alacritty";
|
||||||
};
|
focus = {
|
||||||
colors.focused =
|
followMouse = true;
|
||||||
with config.lib.stylix.colors.withHashtag;
|
|
||||||
{
|
|
||||||
# stylix color overrides
|
|
||||||
border = lib.mkForce base08;
|
|
||||||
background = lib.mkForce base0A;
|
|
||||||
text = lib.mkForce base00;
|
|
||||||
};
|
};
|
||||||
startup =
|
colors.focused =
|
||||||
[
|
with config.lib.stylix.colors.withHashtag;
|
||||||
{ command = "${pkgs.albert}/bin/albert"; always = true; }
|
|
||||||
{ command = toString backgroundCommand; always = true; }
|
|
||||||
{
|
{
|
||||||
command = toString (pkgs.writers.writeDash "xsettings" ''
|
# stylix color overrides
|
||||||
# to allow sudo commands to access X
|
border = lib.mkForce base08;
|
||||||
${pkgs.xorg.xhost}/bin/xhost +
|
background = lib.mkForce base0A;
|
||||||
# no shitty pcspkr crap
|
text = lib.mkForce base00;
|
||||||
${pkgs.xorg.xset}/bin/xset -b
|
};
|
||||||
# no sleeping monitor
|
startup =
|
||||||
${pkgs.xorg.xset}/bin/xset -dpms
|
[
|
||||||
${pkgs.xorg.xset}/bin/xset s off
|
{ command = "${pkgs.albert}/bin/albert"; always = true; }
|
||||||
'');
|
{ command = toString backgroundCommand; always = true; }
|
||||||
always = true;
|
{
|
||||||
}
|
command = toString (pkgs.writers.writeDash "xsettings" ''
|
||||||
|
# to allow sudo commands to access X
|
||||||
|
${pkgs.xorg.xhost}/bin/xhost +
|
||||||
|
# no shitty pcspkr crap
|
||||||
|
${pkgs.xorg.xset}/bin/xset -b
|
||||||
|
# no sleeping monitor
|
||||||
|
${pkgs.xorg.xset}/bin/xset -dpms
|
||||||
|
${pkgs.xorg.xset}/bin/xset s off
|
||||||
|
'');
|
||||||
|
always = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
bars = [
|
||||||
|
(config.lib.stylix.i3.bar //
|
||||||
|
{
|
||||||
|
#mode = "hide";
|
||||||
|
hiddenState = "hide";
|
||||||
|
position = "top";
|
||||||
|
workspaceButtons = true;
|
||||||
|
workspaceNumbers = true;
|
||||||
|
statusCommand = "${pkgs.i3status-rust}/bin/i3status-rs ${config.home.homeDirectory}/.config/i3status-rust/config-my.toml";
|
||||||
|
fonts.size = 10.0;
|
||||||
|
trayOutput = "primary";
|
||||||
|
}
|
||||||
|
)
|
||||||
];
|
];
|
||||||
bars = [
|
|
||||||
(config.lib.stylix.i3.bar //
|
|
||||||
{
|
|
||||||
#mode = "hide";
|
|
||||||
hiddenState = "hide";
|
|
||||||
position = "top";
|
|
||||||
workspaceButtons = true;
|
|
||||||
workspaceNumbers = true;
|
|
||||||
statusCommand = "${pkgs.i3status-rust}/bin/i3status-rs ${config.home.homeDirectory}/.config/i3status-rust/config-my.toml";
|
|
||||||
fonts.size = 10.0;
|
|
||||||
trayOutput = "primary";
|
|
||||||
}
|
|
||||||
)
|
|
||||||
];
|
|
||||||
|
|
||||||
keybindings = {
|
keybindings = {
|
||||||
"Print" = "exec ${pkgs.flameshot}/bin/flameshot gui -c -p /share/";
|
"Print" = "exec ${pkgs.flameshot}/bin/flameshot gui -c -p /share/";
|
||||||
"${cfg.config.modifier}+Return" = "exec ${cfg.config.terminal}";
|
"${cfg.config.modifier}+Return" = "exec ${cfg.config.terminal}";
|
||||||
"${cfg.config.modifier}+Shift+q" = "exit";
|
"${cfg.config.modifier}+Shift+q" = "exit";
|
||||||
"${cfg.config.modifier}+q" = "kill";
|
"${cfg.config.modifier}+q" = "kill";
|
||||||
|
|
||||||
"${cfg.config.modifier}+Left" = "focus left";
|
"${cfg.config.modifier}+Left" = "focus left";
|
||||||
"${cfg.config.modifier}+Down" = "focus down";
|
"${cfg.config.modifier}+Down" = "focus down";
|
||||||
"${cfg.config.modifier}+Up" = "focus up";
|
"${cfg.config.modifier}+Up" = "focus up";
|
||||||
"${cfg.config.modifier}+Right" = "focus right";
|
"${cfg.config.modifier}+Right" = "focus right";
|
||||||
"${cfg.config.modifier}+j" = "focus next";
|
"${cfg.config.modifier}+j" = "focus next";
|
||||||
"${cfg.config.modifier}+k" = "focus prev";
|
"${cfg.config.modifier}+k" = "focus prev";
|
||||||
|
|
||||||
"${cfg.config.modifier}+Shift+Left" = "move left";
|
"${cfg.config.modifier}+Shift+Left" = "move left";
|
||||||
"${cfg.config.modifier}+Shift+Down" = "move down";
|
"${cfg.config.modifier}+Shift+Down" = "move down";
|
||||||
"${cfg.config.modifier}+Shift+Up" = "move up";
|
"${cfg.config.modifier}+Shift+Up" = "move up";
|
||||||
"${cfg.config.modifier}+Shift+Right" = "move right";
|
"${cfg.config.modifier}+Shift+Right" = "move right";
|
||||||
|
|
||||||
"${cfg.config.modifier}+h" = "split h";
|
"${cfg.config.modifier}+h" = "split h";
|
||||||
"${cfg.config.modifier}+v" = "split v";
|
"${cfg.config.modifier}+v" = "split v";
|
||||||
"${cfg.config.modifier}+f" = "fullscreen toggle";
|
"${cfg.config.modifier}+f" = "fullscreen toggle";
|
||||||
|
|
||||||
"${cfg.config.modifier}+s" = "layout stacking";
|
"${cfg.config.modifier}+s" = "layout stacking";
|
||||||
"${cfg.config.modifier}+w" = "layout tabbed";
|
"${cfg.config.modifier}+w" = "layout tabbed";
|
||||||
"${cfg.config.modifier}+e" = "layout toggle split";
|
"${cfg.config.modifier}+e" = "layout toggle split";
|
||||||
|
|
||||||
"${cfg.config.modifier}+t" = "floating toggle";
|
"${cfg.config.modifier}+t" = "floating toggle";
|
||||||
#"${cfg.config.modifier}+space" = "focus mode_toggle";
|
#"${cfg.config.modifier}+space" = "focus mode_toggle";
|
||||||
|
|
||||||
"${cfg.config.modifier}+b" = "exec ${backgroundCommand}";
|
"${cfg.config.modifier}+b" = "exec ${backgroundCommand}";
|
||||||
|
|
||||||
"${cfg.config.modifier}+p" = "focus parent";
|
"${cfg.config.modifier}+p" = "focus parent";
|
||||||
|
|
||||||
"${cfg.config.modifier}+Shift+minus" = "move scratchpad";
|
"${cfg.config.modifier}+Shift+minus" = "move scratchpad";
|
||||||
"${cfg.config.modifier}+minus" = "scratchpad show";
|
"${cfg.config.modifier}+minus" = "scratchpad show";
|
||||||
|
|
||||||
"${cfg.config.modifier}+1" = "workspace 1";
|
"${cfg.config.modifier}+1" = "workspace 1";
|
||||||
"${cfg.config.modifier}+2" = "workspace 2";
|
"${cfg.config.modifier}+2" = "workspace 2";
|
||||||
"${cfg.config.modifier}+3" = "workspace 3";
|
"${cfg.config.modifier}+3" = "workspace 3";
|
||||||
"${cfg.config.modifier}+4" = "workspace 4";
|
"${cfg.config.modifier}+4" = "workspace 4";
|
||||||
"${cfg.config.modifier}+5" = "workspace 5";
|
"${cfg.config.modifier}+5" = "workspace 5";
|
||||||
"${cfg.config.modifier}+6" = "workspace 6";
|
"${cfg.config.modifier}+6" = "workspace 6";
|
||||||
"${cfg.config.modifier}+7" = "workspace 7";
|
"${cfg.config.modifier}+7" = "workspace 7";
|
||||||
"${cfg.config.modifier}+8" = "workspace 8";
|
"${cfg.config.modifier}+8" = "workspace 8";
|
||||||
"${cfg.config.modifier}+9" = "workspace 9";
|
"${cfg.config.modifier}+9" = "workspace 9";
|
||||||
"${cfg.config.modifier}+0" = "workspace 10";
|
"${cfg.config.modifier}+0" = "workspace 10";
|
||||||
|
|
||||||
"${cfg.config.modifier}+Shift+1" = "move container to workspace number 1";
|
"${cfg.config.modifier}+Shift+1" = "move container to workspace number 1";
|
||||||
"${cfg.config.modifier}+Shift+2" = "move container to workspace number 2";
|
"${cfg.config.modifier}+Shift+2" = "move container to workspace number 2";
|
||||||
"${cfg.config.modifier}+Shift+3" = "move container to workspace number 3";
|
"${cfg.config.modifier}+Shift+3" = "move container to workspace number 3";
|
||||||
"${cfg.config.modifier}+Shift+4" = "move container to workspace number 4";
|
"${cfg.config.modifier}+Shift+4" = "move container to workspace number 4";
|
||||||
"${cfg.config.modifier}+Shift+5" = "move container to workspace number 5";
|
"${cfg.config.modifier}+Shift+5" = "move container to workspace number 5";
|
||||||
"${cfg.config.modifier}+Shift+6" = "move container to workspace number 6";
|
"${cfg.config.modifier}+Shift+6" = "move container to workspace number 6";
|
||||||
"${cfg.config.modifier}+Shift+7" = "move container to workspace number 7";
|
"${cfg.config.modifier}+Shift+7" = "move container to workspace number 7";
|
||||||
"${cfg.config.modifier}+Shift+8" = "move container to workspace number 8";
|
"${cfg.config.modifier}+Shift+8" = "move container to workspace number 8";
|
||||||
"${cfg.config.modifier}+Shift+9" = "move container to workspace number 9";
|
"${cfg.config.modifier}+Shift+9" = "move container to workspace number 9";
|
||||||
"${cfg.config.modifier}+Shift+0" = "move container to workspace number 10";
|
"${cfg.config.modifier}+Shift+0" = "move container to workspace number 10";
|
||||||
|
|
||||||
"${cfg.config.modifier}+Escape" = "workspace back_and_forth";
|
"${cfg.config.modifier}+Escape" = "workspace back_and_forth";
|
||||||
|
|
||||||
# rename workspace
|
# rename workspace
|
||||||
"${cfg.config.modifier}+n" = ''
|
"${cfg.config.modifier}+n" = ''
|
||||||
exec i3-input -F 'rename workspace to "%s"' -P 'New name for this workspace: '
|
exec i3-input -F 'rename workspace to "%s"' -P 'New name for this workspace: '
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# change to named workspace
|
# change to named workspace
|
||||||
"${cfg.config.modifier}+grave" =
|
"${cfg.config.modifier}+grave" =
|
||||||
let
|
let
|
||||||
script = pkgs.writers.writeBash "select-workspace" ''
|
script = pkgs.writers.writeBash "select-workspace" ''
|
||||||
set -e
|
set -e
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
${pkgs.i3}/bin/i3-msg -t get_workspaces | \
|
${pkgs.i3}/bin/i3-msg -t get_workspaces | \
|
||||||
${pkgs.jq}/bin/jq --raw-output '.[] | .name' | \
|
${pkgs.jq}/bin/jq --raw-output '.[] | .name' | \
|
||||||
${pkgs.rofi}/bin/rofi -dmenu -p 'Select Workspace' | \
|
${pkgs.rofi}/bin/rofi -dmenu -p 'Select Workspace' | \
|
||||||
while read line
|
while read line
|
||||||
do
|
do
|
||||||
${pkgs.i3}/bin/i3-msg workspace "$line"
|
${pkgs.i3}/bin/i3-msg workspace "$line"
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
in
|
in
|
||||||
"exec ${script}";
|
"exec ${script}";
|
||||||
|
|
||||||
"${cfg.config.modifier}+Shift+grave" =
|
"${cfg.config.modifier}+Shift+grave" =
|
||||||
let
|
let
|
||||||
script = pkgs.writers.writeBash "move-workspace" ''
|
script = pkgs.writers.writeBash "move-workspace" ''
|
||||||
set -e
|
set -e
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
${pkgs.i3}/bin/i3-msg -t get_workspaces | \
|
${pkgs.i3}/bin/i3-msg -t get_workspaces | \
|
||||||
${pkgs.jq}/bin/jq --raw-output '.[] | .name' | \
|
${pkgs.jq}/bin/jq --raw-output '.[] | .name' | \
|
||||||
${pkgs.rofi}/bin/rofi -dmenu -p 'Move to Workspace' | \
|
${pkgs.rofi}/bin/rofi -dmenu -p 'Move to Workspace' | \
|
||||||
while read line
|
while read line
|
||||||
do
|
do
|
||||||
${pkgs.i3}/bin/i3-msg move container to workspace "$line"
|
${pkgs.i3}/bin/i3-msg move container to workspace "$line"
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
in
|
in
|
||||||
"exec ${script}";
|
"exec ${script}";
|
||||||
|
|
||||||
"${cfg.config.modifier}+Shift+c" = "reload";
|
"${cfg.config.modifier}+Shift+c" = "reload";
|
||||||
"${cfg.config.modifier}+Shift+r" = "restart";
|
"${cfg.config.modifier}+Shift+r" = "restart";
|
||||||
"${cfg.config.modifier}+Shift+e" = "exec i3-nagbar -t warning -m 'Do you want to exit i3?' -b 'Yes' 'i3-msg exit'";
|
"${cfg.config.modifier}+Shift+e" = "exec i3-nagbar -t warning -m 'Do you want to exit i3?' -b 'Yes' 'i3-msg exit'";
|
||||||
|
|
||||||
"${cfg.config.modifier}+r" = "mode resize";
|
"${cfg.config.modifier}+r" = "mode resize";
|
||||||
|
|
||||||
# multiple monitors
|
# multiple monitors
|
||||||
# autorandr --save docked # to save setup
|
# autorandr --save docked # to save setup
|
||||||
# autorandr --save undocked # to save setup
|
# autorandr --save undocked # to save setup
|
||||||
# autorandr --change # automatically detects the setup
|
# autorandr --change # automatically detects the setup
|
||||||
"${cfg.config.modifier}+BackSpace" =
|
"${cfg.config.modifier}+BackSpace" =
|
||||||
let
|
let
|
||||||
script = pkgs.writers.writeBash "autorandr" ''
|
script = pkgs.writers.writeBash "autorandr" ''
|
||||||
${pkgs.autorandr}/bin/autorandr --change
|
${pkgs.autorandr}/bin/autorandr --change
|
||||||
${backgroundCommand}
|
${backgroundCommand}
|
||||||
'';
|
'';
|
||||||
in
|
in
|
||||||
"exec ${toString script}";
|
"exec ${toString script}";
|
||||||
|
|
||||||
# like vimperator
|
# like vimperator
|
||||||
"${cfg.config.modifier}+a" = "exec ${pkgs.i3-easyfocus}/bin/i3-easyfocus";
|
"${cfg.config.modifier}+a" = "exec ${pkgs.i3-easyfocus}/bin/i3-easyfocus";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -143,8 +143,15 @@ with lib;
|
||||||
|
|
||||||
unstable.mdbook
|
unstable.mdbook
|
||||||
|
|
||||||
|
nodePackages.prettier
|
||||||
|
shfmt
|
||||||
|
black
|
||||||
|
pre-commit
|
||||||
|
nixpkgs-fmt
|
||||||
|
treefmt
|
||||||
|
|
||||||
] ++ (map pandocScript (lib.cartesianProductOfSets {
|
] ++ (map pandocScript (lib.cartesianProductOfSets {
|
||||||
inputFormat = [ "man" "markdown" "mediawiki" ];
|
inputFormat = [ "man" "markdown" "mediawiki" "asciidoc" ];
|
||||||
outputFormat = [ "mediawiki" "docbook5" "html5" "man" "jira" "markdown" ];
|
outputFormat = [ "mediawiki" "docbook5" "html5" "man" "jira" "markdown" ];
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@ in
|
||||||
(nextcloudSync "Pictures")
|
(nextcloudSync "Pictures")
|
||||||
(nextcloudSync "Unterlagen")
|
(nextcloudSync "Unterlagen")
|
||||||
(nextcloudSync "Nähen")
|
(nextcloudSync "Nähen")
|
||||||
|
(nextcloudSync "NähenTina")
|
||||||
(nextcloudSync "Video")
|
(nextcloudSync "Video")
|
||||||
(nextcloudSync "Kunstbuch")
|
(nextcloudSync "Kunstbuch")
|
||||||
(nextcloudSync "AWS-SolutionArchitect-Professional")
|
(nextcloudSync "AWS-SolutionArchitect-Professional")
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
# last system packages that need to be migrated to components
|
# last system packages that need to be migrated to components
|
||||||
../../system/all/borg-jobs.nix
|
../../system/all/borg-jobs.nix
|
||||||
../../system/all/syncthing.nix
|
#../../system/all/syncthing.nix
|
||||||
../../system/server/netdata.nix
|
../../system/server/netdata.nix
|
||||||
../../modules
|
../../modules
|
||||||
|
|
||||||
|
|
|
@ -3,9 +3,13 @@
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
|
|
||||||
../../components
|
# last system packages that need to be migrated to components
|
||||||
../../system/desktop
|
../../system/all/borg-jobs.nix
|
||||||
|
#../../system/all/syncthing.nix
|
||||||
../../system/server/netdata.nix
|
../../system/server/netdata.nix
|
||||||
|
../../modules
|
||||||
|
|
||||||
|
../../components
|
||||||
|
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
|
|
||||||
|
|
|
@ -10,4 +10,18 @@
|
||||||
ed25519PrivateKeyFile = config.sops.secrets.tinc_retiolum_ed25519_key.path;
|
ed25519PrivateKeyFile = config.sops.secrets.tinc_retiolum_ed25519_key.path;
|
||||||
rsaPrivateKeyFile = config.sops.secrets.tinc_retiolum_rsa_key.path;
|
rsaPrivateKeyFile = config.sops.secrets.tinc_retiolum_rsa_key.path;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
fileSystems."/retiolum/sicily" = {
|
||||||
|
device = "//sicily.r/tonne";
|
||||||
|
fsType = "cifs";
|
||||||
|
options = [
|
||||||
|
"guest"
|
||||||
|
"nofail"
|
||||||
|
"noauto"
|
||||||
|
"ro"
|
||||||
|
"rsize=16777216"
|
||||||
|
"cache=loose"
|
||||||
|
"x-systemd.after=network.target"
|
||||||
|
];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
../../system/all/nginx.nix
|
../../system/all/nginx.nix
|
||||||
../../system/all/borg-jobs.nix
|
../../system/all/borg-jobs.nix
|
||||||
../../system/all/defaults.nix
|
../../system/all/defaults.nix
|
||||||
../../system/all/syncthing.nix
|
#../../system/all/syncthing.nix
|
||||||
../../system/server/netdata.nix
|
../../system/server/netdata.nix
|
||||||
../../system/server/packages.nix
|
../../system/server/packages.nix
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ config, pkgs, lib, ... }: {
|
{ config, pkgs, lib, ... }: {
|
||||||
|
|
||||||
imports = [ ../../system/all/syncthing.nix ];
|
#imports = [ ../../system/all/syncthing.nix ];
|
||||||
|
|
||||||
sops.secrets.syncthing_cert = { };
|
sops.secrets.syncthing_cert = { };
|
||||||
sops.secrets.syncthing_key = { };
|
sops.secrets.syncthing_key = { };
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
../../system/all/nginx.nix
|
../../system/all/nginx.nix
|
||||||
../../system/all/borg-jobs.nix
|
../../system/all/borg-jobs.nix
|
||||||
../../system/all/defaults.nix
|
../../system/all/defaults.nix
|
||||||
../../system/all/syncthing.nix
|
#../../system/all/syncthing.nix
|
||||||
../../system/server/netdata.nix
|
../../system/server/netdata.nix
|
||||||
../../system/server/packages.nix
|
../../system/server/packages.nix
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ config, pkgs, lib, ... }: {
|
{ config, pkgs, lib, ... }: {
|
||||||
|
|
||||||
imports = [ ../../system/all/syncthing.nix ];
|
# imports = [ ../../system/all/syncthing.nix ];
|
||||||
|
|
||||||
sops.secrets.syncthing_cert = { };
|
sops.secrets.syncthing_cert = { };
|
||||||
sops.secrets.syncthing_key = { };
|
sops.secrets.syncthing_key = { };
|
||||||
|
|
|
@ -7,21 +7,12 @@
|
||||||
|
|
||||||
./defaults.nix
|
./defaults.nix
|
||||||
|
|
||||||
# needed
|
|
||||||
#<home-manager/nixos>
|
|
||||||
|
|
||||||
# cross-compiling
|
|
||||||
#<cleverca22/qemu.nix>
|
|
||||||
|
|
||||||
./grub.nix
|
./grub.nix
|
||||||
#./networking-qos.nix
|
|
||||||
./nginx-landingpage.nix
|
./nginx-landingpage.nix
|
||||||
./nginx.nix
|
./nginx.nix
|
||||||
./packages.nix
|
./packages.nix
|
||||||
./borg-jobs.nix
|
./borg-jobs.nix
|
||||||
./borg-scripts.nix
|
./borg-scripts.nix
|
||||||
./syncthing.nix
|
|
||||||
./on-failure.nix
|
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,9 @@
|
||||||
{ config, pkgs, lib, ... }: {
|
{ config, pkgs, lib, ... }: {
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
|
|
||||||
../all
|
../all
|
||||||
#./packages.nix
|
|
||||||
#./yubikey.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
#components.network.sshd.onlyTincAccess = lib.mkDefault true;
|
|
||||||
|
|
||||||
backup.dirs = [
|
backup.dirs = [
|
||||||
"${config.users.users.mainUser.home}/.config/noti"
|
"${config.users.users.mainUser.home}/.config/noti"
|
||||||
"${config.users.users.mainUser.home}/.password-store"
|
"${config.users.users.mainUser.home}/.password-store"
|
||||||
|
|
|
@ -1,313 +0,0 @@
|
||||||
{ pkgs, config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
|
|
||||||
library = import ../../library { inherit pkgs lib; };
|
|
||||||
|
|
||||||
allLicenses =
|
|
||||||
let
|
|
||||||
licenses = builtins.map
|
|
||||||
(license: "echo '${license.shortName} : ${license.fullName}'")
|
|
||||||
(builtins.attrValues pkgs.lib.licenses);
|
|
||||||
in
|
|
||||||
pkgs.writers.writeBashBin "all-licenses"
|
|
||||||
(lib.concatStringsSep "\n" licenses);
|
|
||||||
|
|
||||||
#joplin = pkgs.joplin-desktop;
|
|
||||||
joplin = pkgs.unstable.joplin-desktop;
|
|
||||||
#joplin = pkgs.writers.writeBashBin "joplin" ''
|
|
||||||
# if [[ ! -x "$HOME/programs/Joplin.AppImage" ]]
|
|
||||||
# then
|
|
||||||
# echo "$HOME/programs/Joplin.AppImage does not exist or is not executable";
|
|
||||||
# exit 1
|
|
||||||
# fi
|
|
||||||
# exec ${pkgs.appimage-run}/bin/appimage-run "$HOME/programs/Joplin.AppImage"
|
|
||||||
#'';
|
|
||||||
|
|
||||||
parseUrl = pkgs.writers.writeBashBin "parseUrl" ''
|
|
||||||
echo "$@" | \
|
|
||||||
${pkgs.jq}/bin/jq --raw-input --raw-output '
|
|
||||||
def parseURL: capture( "^((?<scheme>[^:/?#]+):)?(//(?<authority>(?<domain>[^/?#:]*)(:(?<port>[0-9]*))?))?((?<path>[^?#]*)\\?)?((?<query>([^#]*)))?(#(?<fragment>(.*)))?");
|
|
||||||
parseURL
|
|
||||||
'
|
|
||||||
'';
|
|
||||||
|
|
||||||
parseAndCopyLink = pkgs.writers.writeBashBin "parseAndCopyLink" ''
|
|
||||||
${parseUrl}/bin/parseUrl "$@" | \
|
|
||||||
${pkgs.jq}/bin/jq --raw-output '"\(.scheme)://\(.domain)\(.path)"' | \
|
|
||||||
${pkgs.xclip}/bin/xclip
|
|
||||||
'';
|
|
||||||
|
|
||||||
replaceLinks = pkgs.writers.writeBashBin "replace-link-with-content" # sh
|
|
||||||
''
|
|
||||||
if [ ! -L "$1" ]
|
|
||||||
then
|
|
||||||
echo "$1 does not exist or is not a file"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
cp -rL "$1" "$1.backup"
|
|
||||||
unlink "$1"
|
|
||||||
mv "$1.backup" "$1"
|
|
||||||
'';
|
|
||||||
|
|
||||||
connectToSpeaker = name: id:
|
|
||||||
pkgs.writeShellScriptBin "connect-to-speaker-${name}" # sh
|
|
||||||
''
|
|
||||||
# hacky script because I have problems with
|
|
||||||
# automatically connecting to trusted bluetooth devices.
|
|
||||||
|
|
||||||
echo "Connect to Speaker ${name}"
|
|
||||||
|
|
||||||
bluetoothctl <<EOF
|
|
||||||
power on
|
|
||||||
agent on
|
|
||||||
scan on
|
|
||||||
connect ${id}
|
|
||||||
EOF
|
|
||||||
'';
|
|
||||||
|
|
||||||
disconnectToSpeaker = name: id:
|
|
||||||
pkgs.writeShellScriptBin "disconnect-from-speaker-${name}" # sh
|
|
||||||
''
|
|
||||||
# hacky script because I have problems with
|
|
||||||
# automatically connecting to trusted bluetooth devices.
|
|
||||||
|
|
||||||
echo "Disconnect from Speaker ${name}"
|
|
||||||
|
|
||||||
bluetoothctl <<EOF
|
|
||||||
disconnect ${id}
|
|
||||||
scan off
|
|
||||||
agent off
|
|
||||||
power off
|
|
||||||
EOF
|
|
||||||
'';
|
|
||||||
|
|
||||||
borrow = pkgs.writers.writeDashBin "borrow" # sh
|
|
||||||
''
|
|
||||||
TERM=xterm-mono ${pkgs.hledger-ui}/bin/hledger-ui --file ~/finance/.hledger-borrow "$@"
|
|
||||||
'';
|
|
||||||
|
|
||||||
bank-report = pkgs.writers.writeDashBin "bank-report" # sh
|
|
||||||
''
|
|
||||||
${pkgs.hledger}/bin/hledger --file ~/finance/hledger/all.journal balance -M -B date:$(date +%Y-%m -d 'last year')..
|
|
||||||
${pkgs.hledger}/bin/hledger --file ~/finance/hledger/all.journal balance -M -B date:$(date +%Y-%m -d 'last year').. --depth 1
|
|
||||||
'';
|
|
||||||
|
|
||||||
bank = pkgs.writers.writeDashBin "bank" # sh
|
|
||||||
''
|
|
||||||
${pkgs.hledger-ui}/bin/hledger-ui --color=never --file ~/finance/hledger/all.journal
|
|
||||||
'';
|
|
||||||
|
|
||||||
bank-old = year:
|
|
||||||
pkgs.writers.writeDashBin "bank-${year}" # sh
|
|
||||||
''
|
|
||||||
TERM=xterm-mono ${pkgs.hledger-ui}/bin/hledger-ui --color=never --file ~/finance/hledger/${year}.journal "$@"
|
|
||||||
'';
|
|
||||||
|
|
||||||
irc = pkgs.writers.writeDashBin "irc" # sh
|
|
||||||
''
|
|
||||||
${pkgs.mosh}/bin/mosh workhorse.private -- sudo -u weechat -- screen -rd
|
|
||||||
'';
|
|
||||||
|
|
||||||
insertCopyq = pkgs.writers.writeDashBin "insertCopyq" # sh
|
|
||||||
''
|
|
||||||
${pkgs.copyq}/bin/copyq read 0 | ${pkgs.xdotool}/bin/xdotool type -f -
|
|
||||||
'';
|
|
||||||
|
|
||||||
isoToUtf8 = pkgs.writers.writeBashBin "iso-to-utf8" ''
|
|
||||||
input="$1"
|
|
||||||
TMP=$(mktemp)
|
|
||||||
|
|
||||||
${pkgs.glibc.bin}/bin/iconv -f ISO-8859-1 "$input" -t UTF-8 -o "$TMP"
|
|
||||||
mv "$TMP" "$input"
|
|
||||||
'';
|
|
||||||
|
|
||||||
in
|
|
||||||
{
|
|
||||||
|
|
||||||
# gnupg setup
|
|
||||||
#programs.gnupg.agent.enable = true;
|
|
||||||
#programs.gnupg.agent.enableSSHSupport = true;
|
|
||||||
#programs.gnupg.agent.enableExtraSocket = true;
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs;
|
|
||||||
[
|
|
||||||
|
|
||||||
uget
|
|
||||||
joplin
|
|
||||||
(library.desktopFile joplin { longName = "Joplin"; })
|
|
||||||
zim
|
|
||||||
|
|
||||||
#antimony
|
|
||||||
#(library.desktopFile antimony { longName = "CAD Software"; command = "antimony"; })
|
|
||||||
parted
|
|
||||||
|
|
||||||
insertCopyq
|
|
||||||
(library.desktopFile insertCopyq {
|
|
||||||
longName = "type what is on top of the copyq";
|
|
||||||
command = "insertCopyq";
|
|
||||||
})
|
|
||||||
|
|
||||||
isoToUtf8
|
|
||||||
hledger
|
|
||||||
hledger-ui
|
|
||||||
|
|
||||||
borrow
|
|
||||||
bank
|
|
||||||
bank-report
|
|
||||||
(bank-old "2021")
|
|
||||||
(bank-old "2020")
|
|
||||||
|
|
||||||
irc
|
|
||||||
|
|
||||||
man-pages
|
|
||||||
|
|
||||||
emo
|
|
||||||
(library.desktopFile emo {
|
|
||||||
longName = "Emoji Inserter";
|
|
||||||
command = "emoticons";
|
|
||||||
})
|
|
||||||
|
|
||||||
bat
|
|
||||||
|
|
||||||
zlib # ???
|
|
||||||
cabal-install
|
|
||||||
ghc
|
|
||||||
cabal2nix
|
|
||||||
|
|
||||||
psmisc # contains killall
|
|
||||||
pmount
|
|
||||||
nix-prefetch-scripts
|
|
||||||
ipcalc
|
|
||||||
nmap
|
|
||||||
|
|
||||||
libreoffice
|
|
||||||
hunspell
|
|
||||||
hunspellDicts.de-de
|
|
||||||
hunspellDicts.en-us
|
|
||||||
aspell
|
|
||||||
aspellDicts.de
|
|
||||||
aspellDicts.en
|
|
||||||
aspellDicts.es
|
|
||||||
translate-shell
|
|
||||||
|
|
||||||
borgbackup
|
|
||||||
gpa
|
|
||||||
gnupg
|
|
||||||
|
|
||||||
sshuttle
|
|
||||||
sshfs
|
|
||||||
mosh
|
|
||||||
|
|
||||||
dosfstools
|
|
||||||
copyq
|
|
||||||
|
|
||||||
# radio-dj
|
|
||||||
|
|
||||||
cups
|
|
||||||
xfe # filemanager
|
|
||||||
evince
|
|
||||||
nsxiv
|
|
||||||
(library.desktopFile sxiv {
|
|
||||||
longName = "Image Viewer";
|
|
||||||
command = "sxiv";
|
|
||||||
})
|
|
||||||
|
|
||||||
calibre
|
|
||||||
|
|
||||||
transmission-remote-gtk
|
|
||||||
mpv
|
|
||||||
# cantata
|
|
||||||
ncmpcpp
|
|
||||||
|
|
||||||
# dino # jabber client
|
|
||||||
|
|
||||||
nixos-generators
|
|
||||||
shellcheck
|
|
||||||
|
|
||||||
bind.dnsutils
|
|
||||||
usbutils
|
|
||||||
|
|
||||||
hexyl
|
|
||||||
testssl
|
|
||||||
|
|
||||||
trash-cli
|
|
||||||
|
|
||||||
nixpkgs-review
|
|
||||||
units
|
|
||||||
|
|
||||||
hub # for github
|
|
||||||
|
|
||||||
(writeShellScriptBin "ingdiba-security" ''
|
|
||||||
first=$1
|
|
||||||
second=$2
|
|
||||||
|
|
||||||
if [[ $# -ne 2 ]]
|
|
||||||
then
|
|
||||||
echo "need 2 arguments"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
pass bank/ingdiba/security_key | cut -c$first,$second
|
|
||||||
'')
|
|
||||||
|
|
||||||
(writeShellScriptBin "ingdiba-tans" ''
|
|
||||||
first=$1
|
|
||||||
|
|
||||||
if [[ $# -ne 1 ]]
|
|
||||||
then
|
|
||||||
echo "need 1 arguments"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
pass bank/ingdiba/tans-01 | cut -f$first -d '
|
|
||||||
'
|
|
||||||
'')
|
|
||||||
|
|
||||||
nix-index
|
|
||||||
|
|
||||||
ffmpeg
|
|
||||||
(writeShellScriptBin "shrink-exports"
|
|
||||||
(fileContents ../../assets/shrink_exports))
|
|
||||||
(writeShellScriptBin "music-making"
|
|
||||||
(fileContents ../../assets/music-making.sh))
|
|
||||||
|
|
||||||
replaceLinks
|
|
||||||
youtube-dl
|
|
||||||
|
|
||||||
# temperature
|
|
||||||
s-tui
|
|
||||||
(pkgs.writers.writeDashBin "temperature" ''
|
|
||||||
${pkgs.s-tui}/bin/s-tui
|
|
||||||
'')
|
|
||||||
powertop
|
|
||||||
|
|
||||||
(pkgs.writers.writeBashBin "youtube-download-music" ''
|
|
||||||
${pkgs.youtube-dl}/bin/youtube-dl \
|
|
||||||
--extract-audio \
|
|
||||||
--audio-format vorbis \
|
|
||||||
--audio-quality 0 \
|
|
||||||
"$@"
|
|
||||||
'')
|
|
||||||
|
|
||||||
allLicenses
|
|
||||||
|
|
||||||
dogdns
|
|
||||||
|
|
||||||
memo
|
|
||||||
nixfmt
|
|
||||||
dateutils
|
|
||||||
parseUrl
|
|
||||||
parseAndCopyLink
|
|
||||||
|
|
||||||
# needed for pycairo (in venv)
|
|
||||||
pkgconf
|
|
||||||
cairo
|
|
||||||
|
|
||||||
wireshark
|
|
||||||
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }: {
|
|
||||||
programs.custom.zsh.mainUser = config.users.users.mainUser.name;
|
|
||||||
|
|
||||||
system.custom.mainUser = {
|
|
||||||
enable = true;
|
|
||||||
userName = lib.mkDefault "palo";
|
|
||||||
authorizedKeyFiles =
|
|
||||||
config.users.users.root.openssh.authorizedKeys.keyFiles;
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
Loading…
Reference in a new issue