This commit is contained in:
2026-07-04 05:01:54 +02:00
parent 524ee6e1ce
commit 12f0b1e422
116 changed files with 1355 additions and 231 deletions
+9
View File
@@ -0,0 +1,9 @@
{ config, pkgs, ... }:
{
imports =
[
./users.nix
./security.nix
./system.nix
];
}
+11
View File
@@ -0,0 +1,11 @@
{ config, pkgs, ... }:
{
imports = [
./media.nix
./pkgs.nix
./shell.nix
./firefox.nix
./dwm/default.nix
./devel/default.nix
];
}
+79
View File
@@ -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;
};
};
};
}
+4
View File
@@ -0,0 +1,4 @@
{ config, pkgs, ... }:
{
}
+28
View File
@@ -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;
};
};
};
}
+31
View File
@@ -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;
};
};
};
};
};
}
+12
View File
@@ -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";
};
};
Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 890 KiB

+1
View File
@@ -0,0 +1 @@
_: { programs.vesktop.enable = true; }
+12
View File
@@ -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" ];
}; };
}; };
} }
+45
View File
@@ -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
];
}
+110
View File
@@ -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
'';
};
};
}
Generated
+52 -28
View File
@@ -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": {
+53 -3
View File
@@ -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
];
};
};
}; };
} }
+10
View File
@@ -0,0 +1,10 @@
{ config, pkgs, ... }:
{
imports = [
./boot.nix
./gaming.nix
./graphics.nix
./networking.nix
#./openrgb.nix
];
}
+3 -2
View File
@@ -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;
+25
View File
@@ -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
'';
};
}
+15
View File
@@ -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
];
}
+21
View File
@@ -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
];
}
+56
View File
@@ -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"
];
};
};
}
+9
View File
@@ -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;
};
};
}
+14
View File
@@ -0,0 +1,14 @@
{ config, pkgs, ... }:
{
services = {
nitter = {
enable = true;
server = {
https = true;
port = 3002;
hostname = "nitter twitter";
};
};
};
}
+15
View File
@@ -0,0 +1,15 @@
_:
{
services.tor = {
enable = true;
enableGeoIP = true;
client = {
enable = true;
socksListenAddress = {
IsolateDestAddr = true;
addr = "10.11.0.10";
port = 9050;
};
};
};
}
+28
View File
@@ -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;
};
};
};
}
+4
View File
@@ -0,0 +1,4 @@
_:
{
}
+8
View File
@@ -0,0 +1,8 @@
_:
{
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
}
+10
View File
@@ -0,0 +1,10 @@
{ config, pkgs, ... }:
{
home = {
username = "user";
homeDirectory = "/home/user";
enableNixpkgsReleaseCheck = false;
stateVersion = "26.05";
};
}
+9
View File
@@ -0,0 +1,9 @@
{ config, pkgs, ... }:
{
services = {
jellyfin = {
enable = true;
openFirewall = false;
};
};
}
+22
View File
@@ -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";
};
};
}
+22
View File
@@ -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
];
}
+8
View File
@@ -0,0 +1,8 @@
_:
{
services = {
openssh = {
enable = true;
};
};
}
+7
View File
@@ -0,0 +1,7 @@
_:
{
nix.settings.experimental-features = [ "nix-command" "flakes" ];
system = {
stateVersion = "26.05";
};
}
+13
View File
@@ -0,0 +1,13 @@
{ config, lib, pkgs, ... }:
{
imports = [
./hardware-configuration.nix
./config/default.nix
../../config/default/default.nix
];
time.timeZone = "Europe/Berlin";
}
+31
View File
@@ -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;
}
+34
View File
@@ -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
}
'';
};
};
};
}
+10
View File
@@ -0,0 +1,10 @@
{ config, pkgs, ... }:
{
imports =
[
./boot.nix
./networking.nix
./pkgs.nix
./irc.nix
];
}

Some files were not shown because too many files have changed in this diff Show More