kekl
@@ -0,0 +1,9 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[
|
||||||
|
./users.nix
|
||||||
|
./security.nix
|
||||||
|
./system.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./media.nix
|
||||||
|
./pkgs.nix
|
||||||
|
./shell.nix
|
||||||
|
./firefox.nix
|
||||||
|
./dwm/default.nix
|
||||||
|
./devel/default.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,79 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
lock-false = {
|
||||||
|
Value = false;
|
||||||
|
Status = "locked";
|
||||||
|
};
|
||||||
|
lock-true = {
|
||||||
|
Value = true;
|
||||||
|
Status = "locked";
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
programs = {
|
||||||
|
firefox = {
|
||||||
|
enable = true;
|
||||||
|
languagePacks = [ "en-US" ];
|
||||||
|
policies = {
|
||||||
|
DisableTelemetry = true;
|
||||||
|
DisableFirefoxStudies = true;
|
||||||
|
EnableTrackingProtection = {
|
||||||
|
Value = true;
|
||||||
|
Locked = true;
|
||||||
|
Cryptomining = true;
|
||||||
|
Fingerprinting = true;
|
||||||
|
};
|
||||||
|
DisablePocket = true;
|
||||||
|
DisableFirefoxAccounts = false;
|
||||||
|
DisableAccounts = true;
|
||||||
|
DisableFirefoxScreenshots = true;
|
||||||
|
OverrideFirstRunPage = "";
|
||||||
|
OverridePostUpdatePage = "";
|
||||||
|
DontCheckDefaultBrowser = true;
|
||||||
|
DisplayBookmarksToolbar = "newtab";
|
||||||
|
DisplayMenuBar = "default-off";
|
||||||
|
SearchBar = "unified";
|
||||||
|
ExtensionSettings = {
|
||||||
|
"uBlock0@raymondhill.net" = {
|
||||||
|
install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
|
||||||
|
installation_mode = "force_installed";
|
||||||
|
};
|
||||||
|
"78272b6fa58f4a1abaac99321d503a20@proton.me" = {
|
||||||
|
install_url = "https://addons.mozilla.org/firefox/downloads/latest/proton-pass/latest.xpi";
|
||||||
|
installation_mode = "force_installed";
|
||||||
|
};
|
||||||
|
"addon@darkreader.org" = {
|
||||||
|
install_url = "https://addons.mozilla.org/firefox/downloads/latest/darkreader/latest.xpi";
|
||||||
|
installation_mode = "force_installed";
|
||||||
|
};
|
||||||
|
"{f5bcc922-5c09-4ba5-9611-d7931812785c}" = {
|
||||||
|
install_url = "https://addons.mozilla.org/firefox/downloads/file/4354513/oxocarbon-1.0.xpi";
|
||||||
|
installation_mode = "force_installed";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
preferences = {
|
||||||
|
"privacy.resistFingerprinting" = true;
|
||||||
|
"browser.contentblocking.category" = true;
|
||||||
|
"extensions.pocket.enabled" = false;
|
||||||
|
"extensions.screenshots.disabled" = true;
|
||||||
|
"browser.topsites.contile.enabled" = false;
|
||||||
|
"browser.formfill.enable" = false;
|
||||||
|
"browser.search.suggest.enabled" = false;
|
||||||
|
"browser.search.suggest.enabled.private" = false;
|
||||||
|
"browser.urlbar.suggest.searches" = true;
|
||||||
|
"browser.urlbar.showSearchSuggestionsFirst" = true;
|
||||||
|
"browser.newtabpage.activity-stream.feeds.section.topstories" = false;
|
||||||
|
"browser.newtabpage.activity-stream.feeds.snippets" = false;
|
||||||
|
"browser.newtabpage.activity-stream.section.highlights.includePocket" = false;
|
||||||
|
"browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = false;
|
||||||
|
"browser.newtabpage.activity-stream.section.highlights.includeDownloads" = false;
|
||||||
|
"browser.newtabpage.activity-stream.section.highlights.includeVisited" = false;
|
||||||
|
"browser.newtabpage.activity-stream.showSponsored" = false;
|
||||||
|
"browser.newtabpage.activity-stream.system.showSponsored" = false;
|
||||||
|
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
../web/qutebrowser.nix
|
||||||
|
../web/librewolf.nix
|
||||||
|
./proton.nix
|
||||||
|
./irssi.nix
|
||||||
|
./vesktop.nix
|
||||||
|
];
|
||||||
|
home = {
|
||||||
|
username = "user";
|
||||||
|
homeDirectory = "/home/user";
|
||||||
|
|
||||||
|
enableNixpkgsReleaseCheck = false;
|
||||||
|
stateVersion = "26.05";
|
||||||
|
|
||||||
|
file = {
|
||||||
|
".wp/" = {
|
||||||
|
source = ./raw/wp;
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
|
".irssi/" = {
|
||||||
|
source = ./raw/irssi/themes;
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
programs = {
|
||||||
|
irssi = {
|
||||||
|
enable = true;
|
||||||
|
extraConfig = "";
|
||||||
|
|
||||||
|
# irc networks
|
||||||
|
networks = {
|
||||||
|
liberachat = {
|
||||||
|
channels = {
|
||||||
|
nixos = {
|
||||||
|
autoJoin = true;
|
||||||
|
};
|
||||||
|
linux = {
|
||||||
|
autoJoin = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
nick = "halbg0tt";
|
||||||
|
server = {
|
||||||
|
address = "palladium.libera.chat";
|
||||||
|
autoConnect = false;
|
||||||
|
port = 6697;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
home = {
|
||||||
|
packages = with pkgs; [ proton-vpn ];
|
||||||
|
};
|
||||||
|
services = {
|
||||||
|
proton-pass-agent = {
|
||||||
|
enable = false;
|
||||||
|
package = pkgs.proton-pass-cli;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,303 @@
|
|||||||
|
######################### evilkat.theme by dubkat@efnet ##################################
|
||||||
|
# includes formats for scripts such as nact.pl kills.pl and chanact.pl
|
||||||
|
# this theme may not look too good directly in a term, but looks ok in putty if you have
|
||||||
|
# 'bolded text as alternate color' checked in your putty window/colours settings
|
||||||
|
# enjoy.
|
||||||
|
|
||||||
|
# default foreground color (%N) - -1 is the "default terminal color"
|
||||||
|
default_color = "-1";
|
||||||
|
|
||||||
|
# print timestamp/servertag at the end of line, not at beginning
|
||||||
|
info_eol = "false";
|
||||||
|
|
||||||
|
# these characters are automatically replaced with specified color
|
||||||
|
# (dark grey by default)
|
||||||
|
replaces = { "!" = "%R$*%n"; "[]=" = "%K$*%n"; };
|
||||||
|
|
||||||
|
abstracts = {
|
||||||
|
##
|
||||||
|
## generic
|
||||||
|
##
|
||||||
|
|
||||||
|
# text to insert at the beginning of each non-message line
|
||||||
|
line_start = "";
|
||||||
|
|
||||||
|
# timestamp styling, nothing by default
|
||||||
|
timestamp = "%w$*%n";
|
||||||
|
|
||||||
|
# any kind of text that needs hilighting, default is to bold
|
||||||
|
hilight = "%_$*%_";
|
||||||
|
|
||||||
|
# any kind of error message, default is bright red
|
||||||
|
error = "%R$*%n";
|
||||||
|
|
||||||
|
# channel name is printed
|
||||||
|
channel = "%_$*%_";
|
||||||
|
|
||||||
|
# nick is printed
|
||||||
|
nick = "%_$*%_";
|
||||||
|
|
||||||
|
# nick host is printed
|
||||||
|
nickhost = "$*";
|
||||||
|
|
||||||
|
# server name is printed
|
||||||
|
server = "%_$*%_";
|
||||||
|
|
||||||
|
# some kind of comment is printed
|
||||||
|
comment = "[$*]";
|
||||||
|
|
||||||
|
# reason for something is printed (part, quit, kick, ..)
|
||||||
|
reason = "{comment %_$*%_}";
|
||||||
|
|
||||||
|
# mode change is printed ([+o nick])
|
||||||
|
mode = "{highlight %p$*%n}";
|
||||||
|
|
||||||
|
##
|
||||||
|
## channel specific messages
|
||||||
|
##
|
||||||
|
|
||||||
|
# highlighted nick/host is printed (joins)
|
||||||
|
channick_hilight = "$*";
|
||||||
|
chanhost_hilight = "{nickhost %K$*%n}";
|
||||||
|
|
||||||
|
# nick/host is printed (parts, quits, etc.)
|
||||||
|
channick = "$*";
|
||||||
|
chanhost = "{nickhost %K$*%n}";
|
||||||
|
|
||||||
|
# highlighted channel name is printed
|
||||||
|
channelhilight = "%R$*%n";
|
||||||
|
|
||||||
|
# ban/ban exception/invite list mask is printed
|
||||||
|
ban = "%r$*%n";
|
||||||
|
|
||||||
|
##
|
||||||
|
## messages
|
||||||
|
##
|
||||||
|
|
||||||
|
# the basic styling of how to print message, $0 = nick mode, $1 = nick
|
||||||
|
msgnick = "%K<%n%_$0%_$1%K>%n %|";
|
||||||
|
|
||||||
|
# message from you is printed. "msgownnick" specifies the styling of the
|
||||||
|
# nick ($0 part in msgnick) and "ownmsgnick" specifies the styling of the
|
||||||
|
# whole line.
|
||||||
|
|
||||||
|
# Example1: You want the message text to be green:
|
||||||
|
# ownmsgnick = "{msgnick $0 $1-}%g";
|
||||||
|
# Example2.1: You want < and > chars to be yellow:
|
||||||
|
# ownmsgnick = "%Y{msgnick $0 $1-%Y}%n";
|
||||||
|
# (you'll also have to remove <> from replaces list above)
|
||||||
|
# Example2.2: But you still want to keep <> grey for other messages:
|
||||||
|
# pubmsgnick = "%K{msgnick $0 $1-%K}%n";
|
||||||
|
# pubmsgmenick = "%K{msgnick $0 $1-%K}%n";
|
||||||
|
# pubmsghinick = "%K{msgnick $1 $0$2-%n%K}%n";
|
||||||
|
# ownprivmsgnick = "%K{msgnick $*%K}%n";
|
||||||
|
# privmsgnick = "%K{msgnick %R$*%K}%n";
|
||||||
|
|
||||||
|
# $0 = nick mode, $1 = nick
|
||||||
|
ownmsgnick = "{msgnick $0 $1-}%W";
|
||||||
|
ownnick = "%r$*%n";
|
||||||
|
|
||||||
|
# public message in channel, $0 = nick mode, $1 = nick
|
||||||
|
pubmsgnick = "{msgnick $0$1-}";
|
||||||
|
pubnick = "%N$*%n";
|
||||||
|
|
||||||
|
# public message in channel meant for me, $0 = nick mode, $1 = nick
|
||||||
|
pubmsgmenick = "{msgnick $0$1-}";
|
||||||
|
menick = "%g$*%n";
|
||||||
|
|
||||||
|
# public highlighted message in channel
|
||||||
|
# $0 = highlight color, $1 = nick mode, $2 = nick
|
||||||
|
pubmsghinick = "{msgnick $1 $0$2-%n}";
|
||||||
|
|
||||||
|
# channel name is printed with message
|
||||||
|
msgchannel = "%r:$*%n";
|
||||||
|
|
||||||
|
# private message, $0 = nick, $1 = host
|
||||||
|
privmsg = "[%w$0!%r$1-%n] ";
|
||||||
|
|
||||||
|
# private message from you, $0 = "msg", $1 = target nick
|
||||||
|
ownprivmsg = "[%r$0%b(%R$1-%b)%n] ";
|
||||||
|
|
||||||
|
# own private message in query
|
||||||
|
ownprivmsgnick = "{msgnick $*}";
|
||||||
|
ownprivnick = "%w$*%n";
|
||||||
|
|
||||||
|
# private message in query
|
||||||
|
privmsgnick = "{msgnick %r$*%n}";
|
||||||
|
|
||||||
|
##
|
||||||
|
## Actions (/ME stuff)
|
||||||
|
##
|
||||||
|
|
||||||
|
# used internally by this theme
|
||||||
|
action_core = "%p &%n$*";
|
||||||
|
|
||||||
|
# generic one that's used by most actions
|
||||||
|
action = "{action_core $*} ";
|
||||||
|
|
||||||
|
# own action, both private/public
|
||||||
|
ownaction = "{action %p$*}";
|
||||||
|
|
||||||
|
# own action with target, both private/public
|
||||||
|
ownaction_target = "{action_core $0}%p:%c$1%n ";
|
||||||
|
|
||||||
|
# private action sent by others
|
||||||
|
pvtaction = "%p (*) $*%n ";
|
||||||
|
pvtaction_query = "{action $* }";
|
||||||
|
|
||||||
|
# public action sent by others
|
||||||
|
pubaction = "{action $*}";
|
||||||
|
|
||||||
|
|
||||||
|
##
|
||||||
|
## other IRC events
|
||||||
|
##
|
||||||
|
|
||||||
|
# whois
|
||||||
|
whois = " %r¤ %W$[8]0%n %r¤ %w$1-%n";
|
||||||
|
|
||||||
|
# notices
|
||||||
|
ownnotice = "[%w$0!%r$1-]%n ";
|
||||||
|
notice = "[%rnotice%K(%n$*%K)%n] ";
|
||||||
|
pubnotice_channel = "%R:%R$*";
|
||||||
|
pvtnotice_host = "!%K$*%n";
|
||||||
|
servernotice = "%g¤ %w$*%g ¤%n %_";
|
||||||
|
|
||||||
|
# CTCPs
|
||||||
|
ownctcp = "[%w$0!%c$1-] ";
|
||||||
|
ctcp = "%C$*%n";
|
||||||
|
|
||||||
|
# wallops
|
||||||
|
wallop = "%W$*%n: ";
|
||||||
|
wallop_nick = "%n$*";
|
||||||
|
wallop_action = "%W * $*%n ";
|
||||||
|
|
||||||
|
# netsplits
|
||||||
|
netsplit = "%R$*%n";
|
||||||
|
netjoin = "%G$*%n";
|
||||||
|
|
||||||
|
# /names list
|
||||||
|
names_prefix = " %r¤%n ";
|
||||||
|
names_nick = "[%_$0%_$1-] ";
|
||||||
|
names_nick_op = "%r{names_nick $*}%n";
|
||||||
|
names_nick_halfop = "%r{names_nick $*}%n";
|
||||||
|
names_nick_voice = "%y{names_nick $*}%n";
|
||||||
|
names_users = "[%w$*%n]";
|
||||||
|
names_channel = "%r$*%n";
|
||||||
|
|
||||||
|
# DCC
|
||||||
|
dcc = "%g$*%n";
|
||||||
|
dccfile = "%_$*%_";
|
||||||
|
|
||||||
|
# DCC chat, own msg/action
|
||||||
|
dccownmsg = "[%w$0!%r$1-%n] ";
|
||||||
|
dccownnick = "%w$*%n";
|
||||||
|
dccownquerynick = "%W$*%n";
|
||||||
|
dccownaction = "{action $*}";
|
||||||
|
dccownaction_target = "{action_core $0}%B:%c$1%n ";
|
||||||
|
|
||||||
|
# DCC chat, others
|
||||||
|
dccmsg = "[%w$1-!%g$0%n] ";
|
||||||
|
dccquerynick = "%G$*%n";
|
||||||
|
dccaction = "%W (*dcc*) $*%n %|";
|
||||||
|
|
||||||
|
##
|
||||||
|
## statusbar
|
||||||
|
##
|
||||||
|
|
||||||
|
# default background for all statusbars. You can also give
|
||||||
|
# the default foreground color for statusbar items.
|
||||||
|
sb_background = "%0%K";
|
||||||
|
|
||||||
|
# default backround for "default" statusbar group
|
||||||
|
sb_default_bg = "%0%K";
|
||||||
|
# background for prompt / input line
|
||||||
|
sb_prompt_bg = "%n";
|
||||||
|
# background for info statusbar
|
||||||
|
sb_info_bg = "%0";
|
||||||
|
# background for topicbar (same default)
|
||||||
|
#sb_topic_bg = "%0";
|
||||||
|
|
||||||
|
# text at the beginning of statusbars. sb-item already puts
|
||||||
|
# space there,so we don't use anything by default.
|
||||||
|
sbstart = " %r¤%n ";
|
||||||
|
# text at the end of statusbars. Use space so that it's never
|
||||||
|
# used for anything.
|
||||||
|
sbend = " %r¤%n ";
|
||||||
|
|
||||||
|
topicsbstart = "{sbstart $*}";
|
||||||
|
topicsbend = "{sbend $*}";
|
||||||
|
|
||||||
|
prompt = "[%r$S%W/%r$*%n]%r:%W ";
|
||||||
|
|
||||||
|
sb = " [%K$*%n]";
|
||||||
|
sbmode = " (+%K$*%n)";
|
||||||
|
sbaway = " (%Kaway%n)";
|
||||||
|
sbservertag = ":$1%r";
|
||||||
|
sbnickmode = "%_$0%_";
|
||||||
|
|
||||||
|
# activity in statusbar
|
||||||
|
|
||||||
|
# ',' separator
|
||||||
|
sb_act_sep = "$*";
|
||||||
|
# normal text
|
||||||
|
sb_act_text = "%Y$*";
|
||||||
|
# public message
|
||||||
|
sb_act_msg = "%w$*";
|
||||||
|
# hilight
|
||||||
|
sb_act_hilight = "%G$*";
|
||||||
|
# hilight with specified color, $0 = color, $1 = text
|
||||||
|
sb_act_hilight_color = "$0$1-%n";
|
||||||
|
|
||||||
|
#usercount
|
||||||
|
sb_usercount = "{sb total:%w$0%n $1-}";
|
||||||
|
sb_uc_ircops = "opers:%w$*%n";
|
||||||
|
sb_uc_ops = "chanop:%w$*%n";
|
||||||
|
sb_uc_halfops = "halfop:%w$*%n";
|
||||||
|
sb_uc_voices = "voice:%w$*%n";
|
||||||
|
sb_uc_normal = "peon:%w$*%n";
|
||||||
|
sb_uc_space = " ";
|
||||||
|
|
||||||
|
#nact
|
||||||
|
nact_display = "%B(%b$3%n%B)%n$0%G>%W$1%R>%n$2%B(%b$4%B)%n";
|
||||||
|
};
|
||||||
|
|
||||||
|
formats = {
|
||||||
|
"fe-common/core" = {
|
||||||
|
pubmsg = "{pubmsgnick $2 {pubnick $[-9]0}}$1";
|
||||||
|
join = "%gjoin %G>%n {nick %W$0%n}!%n{chanhost_hilight $1}";
|
||||||
|
part = "%cpart %C<%n {nick %w$0%n}!%n{chanhost_hilight $1} {reason $3}";
|
||||||
|
kick = "%rkick %R<%n {nick %w$0%n} {reason %w$3%n} by {nick $2}";
|
||||||
|
quit = "%Kquit %K<%n {nick %K$0%n}!%n{chanhost_hilight $1} {reason $2}";
|
||||||
|
nick_changed = "%ynick %y~%n {nick %w$0%n} %Nis now {nick %W$1%n}";
|
||||||
|
|
||||||
|
own_msg = "{ownmsgnick $2 {ownnick $[-9]0}}$1";
|
||||||
|
own_msg_channel = "{ownmsgnick $3 {ownnick $[-9]0}{msgchannel $1}}$2";
|
||||||
|
pubmsg_me = "{pubmsgmenick $2 {menick $[-9]0}}$1";
|
||||||
|
pubmsg_me_channel = "{pubmsgmenick $3 {menick $[-9]0}{msgchannel $1}}$2";
|
||||||
|
pubmsg_hilight = "{pubmsghinick $0 $3 $[-9]1}$2";
|
||||||
|
pubmsg_hilight_channel = "{pubmsghinick $0 $4 $[-9]1{msgchannel $2}}$3";
|
||||||
|
pubmsg_channel = "{pubmsgnick $3 {pubnick $[-9]0}{msgchannel $1}}$2";
|
||||||
|
own_msg_private_query = "{ownprivmsgnick {ownprivnick $[-9]2}}$1";
|
||||||
|
msg_private_query = "{privmsgnick $[-9]0}$2";
|
||||||
|
};
|
||||||
|
"fe-common/irc" = {
|
||||||
|
netsplit = "{netsplit %rsplit %R<<%n} {server $0} %w<-%r\\->%n {server %R$1%n}: [$2]";
|
||||||
|
netsplit_more = "{netsplit %rsplit %R<<%n} {server $0} %W<-%r\\->%n {server %R$1%n}: [$2%_+$3 more%_]";
|
||||||
|
netsplit_join = "{netjoin %gre-join %G>>%n} [$0]";
|
||||||
|
netsplit_join_more = "{netjoin %gre-join %G>>%n} [$0\012%_+$1 more%_]";
|
||||||
|
chanmode_change = "%rmode #%n [{mode $1}] by {nick $2}";
|
||||||
|
server_chanmode_change = "%rserv #%n [{mode $1}] by {nick $2}";
|
||||||
|
own_action = "{ownaction $0}%|$1";
|
||||||
|
action_public = "{pubaction $0}%|$1";
|
||||||
|
who = "%#{channelhilight $[-10]0} {nick %n$[9]1%n} $[3]2 $[2]3 {comment {hilight $[10]6}} {comment $[!18]7} {chanhost %n$4@$5}";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Script Addons....
|
||||||
|
|
||||||
|
# kills.pl reformat
|
||||||
|
"Irssi::Script::kills" = {
|
||||||
|
kill_public = "%rkilled ¤%n {channick %w$0%n}!{chanhost $1%n} {reason %w$4%n} by {nick %W$2%n}$3";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
After Width: | Height: | Size: 136 KiB |
|
After Width: | Height: | Size: 139 KiB |
|
After Width: | Height: | Size: 101 KiB |
|
After Width: | Height: | Size: 3.5 MiB |
|
After Width: | Height: | Size: 90 KiB |
|
After Width: | Height: | Size: 96 KiB |
|
After Width: | Height: | Size: 2.7 MiB |
|
After Width: | Height: | Size: 253 KiB |
|
After Width: | Height: | Size: 890 KiB |
@@ -0,0 +1 @@
|
|||||||
|
_: { programs.vesktop.enable = true; }
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
{ config, pkgs, ...}:
|
||||||
|
{
|
||||||
|
services = {
|
||||||
|
pulseaudio.enable = false;
|
||||||
|
pipewire = {
|
||||||
|
enable = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
alsa.support32Bit = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -4,7 +4,7 @@ _:
|
|||||||
enable = true;
|
enable = true;
|
||||||
lsp = {
|
lsp = {
|
||||||
enable = true;
|
enable = true;
|
||||||
server = "ccls";
|
server = [ "ccls" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -12,7 +12,7 @@ _:
|
|||||||
};
|
};
|
||||||
lsp = {
|
lsp = {
|
||||||
enable = true;
|
enable = true;
|
||||||
server = "nixd";
|
server = [ "nixd" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
{ config, pkgs, inputs, ... }:
|
||||||
|
{
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
# default
|
||||||
|
fastfetch
|
||||||
|
vim
|
||||||
|
tmux
|
||||||
|
git
|
||||||
|
wget
|
||||||
|
curl
|
||||||
|
htop
|
||||||
|
|
||||||
|
# utils
|
||||||
|
lsof
|
||||||
|
tree
|
||||||
|
ntfs3g
|
||||||
|
usbutils
|
||||||
|
net-tools
|
||||||
|
inetutils
|
||||||
|
ethtool
|
||||||
|
dig
|
||||||
|
drill
|
||||||
|
|
||||||
|
# dev
|
||||||
|
vscodium
|
||||||
|
rustup
|
||||||
|
python3
|
||||||
|
|
||||||
|
qutebrowser
|
||||||
|
neovide
|
||||||
|
];
|
||||||
|
|
||||||
|
fonts.packages = with pkgs; [
|
||||||
|
noto-fonts
|
||||||
|
noto-fonts-color-emoji
|
||||||
|
|
||||||
|
nerd-fonts.symbols-only
|
||||||
|
nerd-fonts._0xproto
|
||||||
|
nerd-fonts.terminess-ttf
|
||||||
|
|
||||||
|
terminus_font
|
||||||
|
font-awesome
|
||||||
|
];
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,110 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
programs = {
|
||||||
|
bash = {
|
||||||
|
enable = true;
|
||||||
|
enableLsColors = true;
|
||||||
|
completion = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.bash-completion;
|
||||||
|
};
|
||||||
|
promptInit = ''
|
||||||
|
PS1="(\h) [\u:\w] % "
|
||||||
|
'';
|
||||||
|
shellAliases = {
|
||||||
|
"mount" = "doas mount --mkdir -v $@";
|
||||||
|
"mkdir" = "mkdir -pv";
|
||||||
|
"cp" = "cp -rv";
|
||||||
|
"mv" = "mv -v $@";
|
||||||
|
"rm" = "rm -v $@ -I";
|
||||||
|
"ls" = "${pkgs.eza}/bin/eza --icons -l";
|
||||||
|
"http" = "${pkgs.python3}/bin/python3 -m http.server 1337";
|
||||||
|
"sudo" = "doas";
|
||||||
|
"myip" = "curl -sSL icanhazip.com";
|
||||||
|
"update" = "doas nixos-rebuild switch";
|
||||||
|
"f" = "fastfetch";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
ssh = {
|
||||||
|
askPassword = "${pkgs.openssh-askpass}/libexec/gtk-ssh-askpass";
|
||||||
|
};
|
||||||
|
git = {
|
||||||
|
enable = true;
|
||||||
|
config = {
|
||||||
|
init = {
|
||||||
|
defaultBranch = "main";
|
||||||
|
};
|
||||||
|
safe = {
|
||||||
|
directory = "/etc/nixos";
|
||||||
|
};
|
||||||
|
user = {
|
||||||
|
name = "halbg0tt";
|
||||||
|
email = "halbg0tt@protonmail.com";
|
||||||
|
};
|
||||||
|
url = {
|
||||||
|
"https://github.com" = {
|
||||||
|
insteadOf = [
|
||||||
|
"gh:"
|
||||||
|
"github:"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
tmux = {
|
||||||
|
enable = true;
|
||||||
|
keyMode = "vi";
|
||||||
|
aggressiveResize = true;
|
||||||
|
terminal = "tmux-256color";
|
||||||
|
extraConfig = ''
|
||||||
|
unbind C-b
|
||||||
|
# unbind t
|
||||||
|
set -g prefix C-a
|
||||||
|
bind C-a send-prefix
|
||||||
|
|
||||||
|
bind r source-file /etc/tmux.conf
|
||||||
|
|
||||||
|
setw -g mode-keys vi
|
||||||
|
setw -g mouse on
|
||||||
|
|
||||||
|
# make ctrl + arrow keys working
|
||||||
|
set -s extended-keys on
|
||||||
|
set -as terminal-features 'xterm*:extkeys'
|
||||||
|
set -g xterm-keys on
|
||||||
|
|
||||||
|
bind-key -n S-Left select-pane -L
|
||||||
|
bind-key -n S-Down select-pane -D
|
||||||
|
bind-key -n S-Up select-pane -U
|
||||||
|
bind-key -n S-Right select-pane -R
|
||||||
|
|
||||||
|
bind-key -n C-t new-window "#{pane_current_path}"
|
||||||
|
bind t new-window
|
||||||
|
|
||||||
|
bind-key -n M-w previous-window
|
||||||
|
bind-key -n M-e next-window
|
||||||
|
|
||||||
|
set -g base-index 1
|
||||||
|
set -g renumber-windows on
|
||||||
|
|
||||||
|
set-window-option -g clock-mode-colour colour196
|
||||||
|
|
||||||
|
set -g status-bg black
|
||||||
|
set -g status-fg white
|
||||||
|
set -g status-position top
|
||||||
|
set -g status-interval 1
|
||||||
|
|
||||||
|
set -g status-left-length 64
|
||||||
|
set -g status-left "#[bg=colour196,fg=black,bold] [#S] #[bg=black,fg=colour196,nobold,noitalics,nounderscore] "
|
||||||
|
|
||||||
|
set -g status-right-length 64
|
||||||
|
set -g status-right "#[bg=black,fg=black]#[bg=black,fg=white] #{pane_title} #[bg=black,fg=colour196,bold]#[bg=colour196,fg=black,bold] %a %d %b #[fg=black,bold]%H:%M:%S "
|
||||||
|
|
||||||
|
set-window-option -g window-status-current-format "#[bg=colour196,fg=black,nobold,noitalics,nounderscore]#[bg=colour196,fg=black,bold] #I #[bg=colour196,fg=black,bold] #W#{?window_zoomed_flag,*Z,} #[bg=black,fg=colour196,nobold,noitalics,nounderscore]"
|
||||||
|
set-window-option -g window-status-format "#[bg=black,fg=black,noitalics]#[bg=black,fg=white] #I #[bg=black,fg=white] #W #[bg=black,fg=black,noitalics]"
|
||||||
|
|
||||||
|
bind - split-window
|
||||||
|
bind \\ split-window -h
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -3,11 +3,11 @@
|
|||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751685974,
|
"lastModified": 1777699697,
|
||||||
"narHash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=",
|
"narHash": "sha256-Eg9b/rq/ECYwNwEXs5i9wHyhxNI0JrYx2srdI2uZMaQ=",
|
||||||
"ref": "refs/heads/main",
|
"ref": "refs/heads/main",
|
||||||
"rev": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1",
|
"rev": "382052b74656a369c5408822af3f2501e9b1af81",
|
||||||
"revCount": 92,
|
"revCount": 94,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://git.lix.systems/lix-project/flake-compat.git"
|
"url": "https://git.lix.systems/lix-project/flake-compat.git"
|
||||||
},
|
},
|
||||||
@@ -25,11 +25,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1753121425,
|
"lastModified": 1778716662,
|
||||||
"narHash": "sha256-TVcTNvOeWWk1DXljFxVRp+E0tzG1LhrVjOGGoMHuXio=",
|
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "644e0fc48951a860279da645ba77fe4a6e814c5e",
|
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -43,11 +43,11 @@
|
|||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1781477932,
|
"lastModified": 1783099620,
|
||||||
"narHash": "sha256-7EZqIpytCiWoVsUQIRytWr2H0esy2xuntQHjG4Hb/48=",
|
"narHash": "sha256-prQSM9PGnrfSaqknJOZ3DCQKbpMiXAWLVC5SHbjLcJ4=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "ed8263e7d7813ec8f447e78e5dcd7f94f333f1d5",
|
"rev": "b2e4390ff35319c52935d6a700b615da4c0f204d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -58,11 +58,11 @@
|
|||||||
},
|
},
|
||||||
"mnw": {
|
"mnw": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748710831,
|
"lastModified": 1780772958,
|
||||||
"narHash": "sha256-eZu2yH3Y2eA9DD3naKWy/sTxYS5rPK2hO7vj8tvUCSU=",
|
"narHash": "sha256-VKKe8r4pwCGWZ3Yr9CPN129R4S3CKLSrlYqdYz3vKpM=",
|
||||||
"owner": "Gerg-L",
|
"owner": "Gerg-L",
|
||||||
"repo": "mnw",
|
"repo": "mnw",
|
||||||
"rev": "cff958a4e050f8d917a6ff3a5624bc4681c6187d",
|
"rev": "0871dbf63a53610c95db04439ed8ea4d6ec9c160",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -71,13 +71,36 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"ndg": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nvf",
|
||||||
|
"nvf",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1779233504,
|
||||||
|
"narHash": "sha256-YIKEyzh0NFQlD0O92LQQNMoVCDwV8yw1Xz0Iu+4ZC5U=",
|
||||||
|
"owner": "feel-co",
|
||||||
|
"repo": "ndg",
|
||||||
|
"rev": "86f6644411a64d5413711895b7cf6e0e1be465b6",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "feel-co",
|
||||||
|
"ref": "refs/tags/v2.8.0",
|
||||||
|
"repo": "ndg",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1780365719,
|
"lastModified": 1782175435,
|
||||||
"narHash": "sha256-QfWfccTN+70ZQ4m2qlU9PiKfz2Yppq94058iJyARNwc=",
|
"narHash": "sha256-EMzXKmnOtBQ2MnvpiNOm7E+kOMvdPrIKaeg52Tip2Uk=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "ffa10e26ae11d676b2db836259889f1f571cb14f",
|
"rev": "89570f24e97e614aa34aa9ab1c927b6578a43775",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -89,11 +112,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1781577229,
|
"lastModified": 1782959384,
|
||||||
"narHash": "sha256-lrp67w8AulE9Ks53n27I45ADSzbOCn4H+CNW1Ck8B+8=",
|
"narHash": "sha256-xnJJk+ct+D2+wdRxj1wk36w5zV9RVESwRqcklPdt3fM=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "567a49d1913ce81ac6e9582e3553dd90a955875f",
|
"rev": "65179426c83bb3f6bc14898b42ea1c6f01d374b0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -121,16 +144,16 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1753432016,
|
"lastModified": 1781216227,
|
||||||
"narHash": "sha256-cnL5WWn/xkZoyH/03NNUS7QgW5vI7D1i74g48qplCvg=",
|
"narHash": "sha256-9mUW6gNwoN2SWc/l0fW4svPNOulXLl8ijqKyeSOGgJE=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "6027c30c8e9810896b92429f0092f624f7b1aace",
|
"rev": "a0374025a863d007d98e3297f6aa46cc3141c2f0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"ref": "nixpkgs-unstable",
|
"ref": "nixos-26.05",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -141,11 +164,11 @@
|
|||||||
"nvf": "nvf_2"
|
"nvf": "nvf_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"path": "./modules/nvim",
|
"path": "./config/desktop/nvim",
|
||||||
"type": "path"
|
"type": "path"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"path": "./modules/nvim",
|
"path": "./config/desktop/nvim",
|
||||||
"type": "path"
|
"type": "path"
|
||||||
},
|
},
|
||||||
"parent": []
|
"parent": []
|
||||||
@@ -155,15 +178,16 @@
|
|||||||
"flake-compat": "flake-compat",
|
"flake-compat": "flake-compat",
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts",
|
||||||
"mnw": "mnw",
|
"mnw": "mnw",
|
||||||
|
"ndg": "ndg",
|
||||||
"nixpkgs": "nixpkgs_4",
|
"nixpkgs": "nixpkgs_4",
|
||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754388740,
|
"lastModified": 1781534482,
|
||||||
"narHash": "sha256-6++6FDc/hcMpaJPgOrGzwmzCSgix3zIlcuTIy9+aNSs=",
|
"narHash": "sha256-d3UIqXuigQhsc7amQkZ7F+SWnaJFAxIROE2f2X+pzUs=",
|
||||||
"owner": "notashelf",
|
"owner": "notashelf",
|
||||||
"repo": "nvf",
|
"repo": "nvf",
|
||||||
"rev": "22fb0d22cc474e85f94c5aa95b6c550c81ca7278",
|
"rev": "63d8fc82d652c23419a837e2b2934dd4bead04f3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
@@ -2,13 +2,15 @@
|
|||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
home-manager.url = "github:nix-community/home-manager";
|
home-manager.url = "github:nix-community/home-manager";
|
||||||
nvf.url = "path:./modules/nvim";
|
nvf.url = "path:./config/desktop/nvim";
|
||||||
};
|
};
|
||||||
outputs = { self, nixpkgs, home-manager, nvf, ... }@inputs:
|
outputs = { self, nixpkgs, home-manager, nvf, ... }@inputs:
|
||||||
let
|
let
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
in {
|
in {
|
||||||
nixosConfigurations.darkstar = nixpkgs.lib.nixosSystem {
|
nixosConfigurations = {
|
||||||
|
# desktop
|
||||||
|
darkstar = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
specialArgs = { inherit inputs system; };
|
specialArgs = { inherit inputs system; };
|
||||||
modules = [
|
modules = [
|
||||||
@@ -20,11 +22,59 @@
|
|||||||
useGlobalPkgs = true;
|
useGlobalPkgs = true;
|
||||||
useUserPackages = true;
|
useUserPackages = true;
|
||||||
extraSpecialArgs = { inherit inputs; };
|
extraSpecialArgs = { inherit inputs; };
|
||||||
users.user = ./modules/home/home.nix;
|
users.user = ./config/desktop/home/home.nix;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# thinkpad t14 gen 2i
|
||||||
|
molniya = nixpkgs.lib.nixosSystem {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
specialArgs = { inherit inputs system; };
|
||||||
|
modules = [
|
||||||
|
nvf.nixosModules.default
|
||||||
|
./hosts/darkstar/configuration.nix
|
||||||
|
home-manager.nixosModules.home-manager
|
||||||
|
{
|
||||||
|
home-manager = {
|
||||||
|
useGlobalPkgs = true;
|
||||||
|
useUserPackages = true;
|
||||||
|
extraSpecialArgs = { inherit inputs; };
|
||||||
|
users.user = ./config/desktop/home/home.nix;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
# server (r320)
|
||||||
|
kepler = nixpkgs.lib.nixosSystem {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
specialArgs = { inherit inputs system; };
|
||||||
|
modules = [
|
||||||
|
./hosts/kepler/configuration.nix
|
||||||
|
home-manager.nixosModules.home-manager
|
||||||
|
{
|
||||||
|
home-manager = {
|
||||||
|
useGlobalPkgs = true;
|
||||||
|
useUserPackages = true;
|
||||||
|
extraSpecialArgs = { inherit inputs; };
|
||||||
|
users.user = ./hosts/kepler/config/home/home.nix;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# router
|
||||||
|
voyager = nixpkgs.lib.nixosSystem {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
specialArgs = { inherit inputs system; };
|
||||||
|
modules = [
|
||||||
|
./hosts/voyager/configuration.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./boot.nix
|
||||||
|
./gaming.nix
|
||||||
|
./graphics.nix
|
||||||
|
./networking.nix
|
||||||
|
#./openrgb.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -4,10 +4,11 @@
|
|||||||
imports =
|
imports =
|
||||||
[
|
[
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
../../modules/default.nix
|
./config/default.nix
|
||||||
|
../../config/default/default.nix
|
||||||
|
|
||||||
];
|
];
|
||||||
networking.hostName = "darkstar";
|
networking.hostName = "darkstar";
|
||||||
boot.initrd.luks.devices."luks-9cd65807-a47b-4ffe-ac11-05680b9fffb0".device = "/dev/disk/by-uuid/9cd65807-a47b-4ffe-ac11-05680b9fffb0";
|
|
||||||
time.timeZone = "Europe/Berlin";
|
time.timeZone = "Europe/Berlin";
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
_:
|
||||||
|
{
|
||||||
|
boot = {
|
||||||
|
loader = {
|
||||||
|
systemd-boot = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
efi = {
|
||||||
|
canTouchEfiVariables = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
initrd.systemd.enable = true;
|
||||||
|
supportedFilesystems = [ "zfs" ];
|
||||||
|
|
||||||
|
zfs = {
|
||||||
|
devNodes = "/dev/disk/by-id";
|
||||||
|
forceImportRoot = true;
|
||||||
|
forceImportAll = true;
|
||||||
|
};
|
||||||
|
kernelParams = [ "scsi_mod.scan=sync" "rootdelay=10" "zfs.zfs_arc_max=34359738368" ];
|
||||||
|
extraModprobeConfig = ''
|
||||||
|
options scsi_mod scan=sync
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
_:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./boot.nix
|
||||||
|
./networking.nix
|
||||||
|
./gnupg.nix
|
||||||
|
./pkgs.nix
|
||||||
|
./system.nix
|
||||||
|
./ssh.nix
|
||||||
|
./jellyfin.nix
|
||||||
|
./shell.nix
|
||||||
|
./freedom/default.nix
|
||||||
|
./docker/default.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
virtualisation = {
|
||||||
|
oci-containers = {
|
||||||
|
backend = "docker";
|
||||||
|
};
|
||||||
|
docker = {
|
||||||
|
enable = true;
|
||||||
|
enableOnBoot = true;
|
||||||
|
rootless = {
|
||||||
|
enable = true;
|
||||||
|
setSocketVariable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
imports = [
|
||||||
|
./gluetun.nix
|
||||||
|
./qbittorrent.nix
|
||||||
|
./jdownloader.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
let
|
||||||
|
protonvpnConfig = {
|
||||||
|
VPN_SERVICE_PROVIDER = "protonvpn";
|
||||||
|
VPN_PORT_FORWARDING = "on";
|
||||||
|
VPN_PORT_FORWARDING_PROVIDER="protonvpn";
|
||||||
|
};
|
||||||
|
gluetunConfig = {
|
||||||
|
SHADOWSOCKS = "on";
|
||||||
|
HTTPPROXY = "on";
|
||||||
|
HTTPPROXY_STEALTH = "on";
|
||||||
|
|
||||||
|
FIREWALL_OUTBOUND_SUBNETS="10.11.0.0/24";
|
||||||
|
DNS_UPSTREAM_RESOLVERS = "cloudflare";
|
||||||
|
|
||||||
|
BLOCK_SURVEILLANCE="on";
|
||||||
|
BLOCK_ADS="on";
|
||||||
|
BLOCK_MALICIOUS="on";
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
virtualisation.oci-containers.containers = {
|
||||||
|
# protonvpn
|
||||||
|
pvpn-de-01 = {
|
||||||
|
autoStart = true;
|
||||||
|
image = "qmcgaw/gluetun:latest";
|
||||||
|
capabilities = { NET_ADMIN = true; };
|
||||||
|
devices = [ "/dev/net/tun:/dev/net/tun" ];
|
||||||
|
environmentFiles = [
|
||||||
|
"/etc/secrets/gluetun.env"
|
||||||
|
];
|
||||||
|
environment = {
|
||||||
|
# GLUETUN ENV VARS #
|
||||||
|
VPN_TYPE="openvpn";
|
||||||
|
SERVER_COUNTRIES = "Germany";
|
||||||
|
VPN_INTERFACE="tun0";
|
||||||
|
|
||||||
|
} // protonvpnConfig // gluetunConfig;
|
||||||
|
ports = [
|
||||||
|
# gluetun
|
||||||
|
"8000:8000"
|
||||||
|
"7001:8388/tcp"
|
||||||
|
"7001:8388/udp"
|
||||||
|
"8001:8888"
|
||||||
|
|
||||||
|
# qbittorrent
|
||||||
|
"8080:8080"
|
||||||
|
"6881:6881/tcp"
|
||||||
|
"6881:6881/udp"
|
||||||
|
|
||||||
|
# jdownloader
|
||||||
|
"5800:5800"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
_:
|
||||||
|
{
|
||||||
|
virtualisation.oci-containers.containers = {
|
||||||
|
# qbittorrent
|
||||||
|
jdownloader = {
|
||||||
|
autoStart = true;
|
||||||
|
image = "jlesage/jdownloader-2:latest";
|
||||||
|
networks = [
|
||||||
|
"container:pvpn-de-01"
|
||||||
|
];
|
||||||
|
environment = {
|
||||||
|
TZ="Europe/Berlin";
|
||||||
|
KEEP_APP_RUNNING="1";
|
||||||
|
DARK_MODE="1";
|
||||||
|
};
|
||||||
|
volumes = [
|
||||||
|
"/srv/docker/jdownloader/config:/config:rw"
|
||||||
|
"/srv/docker/jdownloader/downloads:/output:rw"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
_:
|
||||||
|
{
|
||||||
|
virtualisation.oci-containers.containers = {
|
||||||
|
# qbittorrent
|
||||||
|
qbittorrent = {
|
||||||
|
autoStart = true;
|
||||||
|
image = "qbittorrentofficial/qbittorrent-nox:latest";
|
||||||
|
networks = [
|
||||||
|
"container:pvpn-de-01"
|
||||||
|
];
|
||||||
|
environment = {
|
||||||
|
WEBUI_PORT = "8080";
|
||||||
|
TZ="Europe/Berlin";
|
||||||
|
};
|
||||||
|
volumes = [
|
||||||
|
"/srv/docker/qbittorrent/config:/config"
|
||||||
|
"/srv/docker/qbittorrent/downloads:/downloads"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
_:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./invidious.nix
|
||||||
|
./nitter.nix
|
||||||
|
./tor.nix
|
||||||
|
./unbound.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
services = {
|
||||||
|
invidious = {
|
||||||
|
enable = true;
|
||||||
|
port = 3001;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
services = {
|
||||||
|
nitter = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
server = {
|
||||||
|
https = true;
|
||||||
|
port = 3002;
|
||||||
|
hostname = "nitter twitter";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
_:
|
||||||
|
{
|
||||||
|
services.tor = {
|
||||||
|
enable = true;
|
||||||
|
enableGeoIP = true;
|
||||||
|
client = {
|
||||||
|
enable = true;
|
||||||
|
socksListenAddress = {
|
||||||
|
IsolateDestAddr = true;
|
||||||
|
addr = "10.11.0.10";
|
||||||
|
port = 9050;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
_:
|
||||||
|
{
|
||||||
|
services.unbound = {
|
||||||
|
enable = true;
|
||||||
|
enableRootTrustAnchor = true;
|
||||||
|
settings = {
|
||||||
|
server = {
|
||||||
|
interface = [ "127.0.0.1" "10.11.0.10" ];
|
||||||
|
|
||||||
|
access-control = [
|
||||||
|
"127.0.0.0/8 allow"
|
||||||
|
"10.11.0.0/24 allow"
|
||||||
|
];
|
||||||
|
|
||||||
|
prefetch = true;
|
||||||
|
prefetch-key = true;
|
||||||
|
qname-minimisation = true;
|
||||||
|
|
||||||
|
hide-identity = true;
|
||||||
|
hide-version = true;
|
||||||
|
|
||||||
|
harden-glue = true;
|
||||||
|
harden-below-nxdomain = true;
|
||||||
|
harden-dnssec-stripped = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
_:
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
_:
|
||||||
|
{
|
||||||
|
programs.gnupg.agent = {
|
||||||
|
enable = true;
|
||||||
|
enableSSHSupport = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
home = {
|
||||||
|
username = "user";
|
||||||
|
homeDirectory = "/home/user";
|
||||||
|
|
||||||
|
enableNixpkgsReleaseCheck = false;
|
||||||
|
stateVersion = "26.05";
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
services = {
|
||||||
|
jellyfin = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
_:
|
||||||
|
{
|
||||||
|
networking = {
|
||||||
|
hostName = "kepler";
|
||||||
|
hostId = "a984053d";
|
||||||
|
networkmanager = { enable = true; };
|
||||||
|
firewall = { enable = false; };
|
||||||
|
|
||||||
|
interfaces = {
|
||||||
|
eno1 = {
|
||||||
|
ipv4.addresses = [{
|
||||||
|
address = "10.11.0.10";
|
||||||
|
prefixLength = 24;
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
defaultGateway = {
|
||||||
|
address = "10.11.0.1";
|
||||||
|
interface = "eno1";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
vim
|
||||||
|
wget
|
||||||
|
git
|
||||||
|
curl
|
||||||
|
fastfetch
|
||||||
|
net-tools
|
||||||
|
ethtool
|
||||||
|
dhcpcd
|
||||||
|
dig
|
||||||
|
usbutils
|
||||||
|
dhcpcd
|
||||||
|
host
|
||||||
|
dnslookup
|
||||||
|
drill
|
||||||
|
dig
|
||||||
|
tree
|
||||||
|
lsof
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
_:
|
||||||
|
{
|
||||||
|
services = {
|
||||||
|
openssh = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
_:
|
||||||
|
{
|
||||||
|
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
system = {
|
||||||
|
stateVersion = "26.05";
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./hardware-configuration.nix
|
||||||
|
./config/default.nix
|
||||||
|
../../config/default/default.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
time.timeZone = "Europe/Berlin";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [ "ehci_pci" "ahci" "mpt3sas" "usb_storage" "usbhid" "sd_mod" ];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
fileSystems."/" =
|
||||||
|
{ device = "rpool/root";
|
||||||
|
fsType = "zfs";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{ device = "/dev/disk/by-uuid/9B62-3696";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [ "fmask=0022" "dmask=0022" ];
|
||||||
|
};
|
||||||
|
fileSystems."/data/storage" = {
|
||||||
|
device = "data/storage";
|
||||||
|
fsType = "zfs";
|
||||||
|
};
|
||||||
|
swapDevices = [ ];
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
boot = {
|
||||||
|
initrd = {
|
||||||
|
luks = {
|
||||||
|
devices."luks-d810fef7-b1c9-4007-bcb1-12c99c8692b0".device = "/dev/disk/by-uuid/d810fef7-b1c9-4007-bcb1-12c99c8692b0";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
extraModulePackages = with config.boot.kernelPackages; [ ];
|
||||||
|
kernelParams = [ "debug" ];
|
||||||
|
loader = {
|
||||||
|
efi = {
|
||||||
|
# canTouchEfiVariables = true;
|
||||||
|
efiSysMountPoint = "/boot";
|
||||||
|
};
|
||||||
|
grub = {
|
||||||
|
enable = true;
|
||||||
|
copyKernels = true;
|
||||||
|
efiInstallAsRemovable = true;
|
||||||
|
enableCryptodisk = false;
|
||||||
|
efiSupport = true;
|
||||||
|
devices = [ "nodev" ];
|
||||||
|
extraEntries = ''
|
||||||
|
menuentry "Reboot" {
|
||||||
|
reboot
|
||||||
|
}
|
||||||
|
menuentry "Poweroff" {
|
||||||
|
halt
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[
|
||||||
|
./boot.nix
|
||||||
|
./networking.nix
|
||||||
|
./pkgs.nix
|
||||||
|
./irc.nix
|
||||||
|
];
|
||||||
|
}
|
||||||