diff --git a/config/default/default.nix b/config/default/default.nix new file mode 100644 index 0000000..e260fc9 --- /dev/null +++ b/config/default/default.nix @@ -0,0 +1,9 @@ +{ config, pkgs, ... }: +{ + imports = + [ + ./users.nix + ./security.nix + ./system.nix + ]; +} diff --git a/modules/security.nix b/config/default/security.nix similarity index 100% rename from modules/security.nix rename to config/default/security.nix diff --git a/modules/system.nix b/config/default/system.nix similarity index 100% rename from modules/system.nix rename to config/default/system.nix diff --git a/modules/users.nix b/config/default/users.nix similarity index 100% rename from modules/users.nix rename to config/default/users.nix diff --git a/config/desktop/default.nix b/config/desktop/default.nix new file mode 100644 index 0000000..54671b9 --- /dev/null +++ b/config/desktop/default.nix @@ -0,0 +1,11 @@ +{ config, pkgs, ... }: +{ + imports = [ + ./media.nix + ./pkgs.nix + ./shell.nix + ./firefox.nix + ./dwm/default.nix + ./devel/default.nix + ]; +} diff --git a/modules/devel/default.nix b/config/desktop/devel/default.nix similarity index 100% rename from modules/devel/default.nix rename to config/desktop/devel/default.nix diff --git a/modules/devel/lua.nix b/config/desktop/devel/lua.nix similarity index 100% rename from modules/devel/lua.nix rename to config/desktop/devel/lua.nix diff --git a/modules/devel/nix-lang.nix b/config/desktop/devel/nix-lang.nix similarity index 100% rename from modules/devel/nix-lang.nix rename to config/desktop/devel/nix-lang.nix diff --git a/modules/devel/python.nix b/config/desktop/devel/python.nix similarity index 100% rename from modules/devel/python.nix rename to config/desktop/devel/python.nix diff --git a/modules/devel/vscode.nix b/config/desktop/devel/vscode.nix similarity index 100% rename from modules/devel/vscode.nix rename to config/desktop/devel/vscode.nix diff --git a/modules/dwm/default.nix b/config/desktop/dwm/default.nix similarity index 100% rename from modules/dwm/default.nix rename to config/desktop/dwm/default.nix diff --git a/modules/dwm/source/dwm/Makefile b/config/desktop/dwm/source/dwm/Makefile similarity index 100% rename from modules/dwm/source/dwm/Makefile rename to config/desktop/dwm/source/dwm/Makefile diff --git a/modules/dwm/source/dwm/config.def.h b/config/desktop/dwm/source/dwm/config.def.h similarity index 100% rename from modules/dwm/source/dwm/config.def.h rename to config/desktop/dwm/source/dwm/config.def.h diff --git a/modules/dwm/source/dwm/config.mk b/config/desktop/dwm/source/dwm/config.mk similarity index 100% rename from modules/dwm/source/dwm/config.mk rename to config/desktop/dwm/source/dwm/config.mk diff --git a/modules/dwm/source/dwm/drw.c b/config/desktop/dwm/source/dwm/drw.c similarity index 100% rename from modules/dwm/source/dwm/drw.c rename to config/desktop/dwm/source/dwm/drw.c diff --git a/modules/dwm/source/dwm/drw.h b/config/desktop/dwm/source/dwm/drw.h similarity index 100% rename from modules/dwm/source/dwm/drw.h rename to config/desktop/dwm/source/dwm/drw.h diff --git a/modules/dwm/source/dwm/dwm.1 b/config/desktop/dwm/source/dwm/dwm.1 similarity index 100% rename from modules/dwm/source/dwm/dwm.1 rename to config/desktop/dwm/source/dwm/dwm.1 diff --git a/modules/dwm/source/dwm/dwm.c b/config/desktop/dwm/source/dwm/dwm.c similarity index 100% rename from modules/dwm/source/dwm/dwm.c rename to config/desktop/dwm/source/dwm/dwm.c diff --git a/modules/dwm/source/dwm/transient.c b/config/desktop/dwm/source/dwm/transient.c similarity index 100% rename from modules/dwm/source/dwm/transient.c rename to config/desktop/dwm/source/dwm/transient.c diff --git a/modules/dwm/source/dwm/util.c b/config/desktop/dwm/source/dwm/util.c similarity index 100% rename from modules/dwm/source/dwm/util.c rename to config/desktop/dwm/source/dwm/util.c diff --git a/modules/dwm/source/dwm/util.h b/config/desktop/dwm/source/dwm/util.h similarity index 100% rename from modules/dwm/source/dwm/util.h rename to config/desktop/dwm/source/dwm/util.h diff --git a/modules/dwm/source/dwm/vanitygaps.c b/config/desktop/dwm/source/dwm/vanitygaps.c similarity index 100% rename from modules/dwm/source/dwm/vanitygaps.c rename to config/desktop/dwm/source/dwm/vanitygaps.c diff --git a/config/desktop/firefox.nix b/config/desktop/firefox.nix new file mode 100644 index 0000000..d8f8c21 --- /dev/null +++ b/config/desktop/firefox.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; + }; + }; + }; +} diff --git a/config/desktop/home/alacritty.nix b/config/desktop/home/alacritty.nix new file mode 100644 index 0000000..d207a5f --- /dev/null +++ b/config/desktop/home/alacritty.nix @@ -0,0 +1,4 @@ +{ config, pkgs, ... }: +{ + +} diff --git a/config/desktop/home/home.nix b/config/desktop/home/home.nix new file mode 100644 index 0000000..26bb809 --- /dev/null +++ b/config/desktop/home/home.nix @@ -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; + }; + }; + }; +} diff --git a/config/desktop/home/irssi.nix b/config/desktop/home/irssi.nix new file mode 100644 index 0000000..919ad7c --- /dev/null +++ b/config/desktop/home/irssi.nix @@ -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; + }; + }; + + }; + }; + }; +} + diff --git a/config/desktop/home/proton.nix b/config/desktop/home/proton.nix new file mode 100644 index 0000000..059964a --- /dev/null +++ b/config/desktop/home/proton.nix @@ -0,0 +1,12 @@ +{ config, pkgs, ... }: +{ + home = { + packages = with pkgs; [ proton-vpn ]; + }; + services = { + proton-pass-agent = { + enable = false; + package = pkgs.proton-pass-cli; + }; + }; +} diff --git a/config/desktop/home/raw/irssi/themes/evilkat.theme b/config/desktop/home/raw/irssi/themes/evilkat.theme new file mode 100644 index 0000000..8112e78 --- /dev/null +++ b/config/desktop/home/raw/irssi/themes/evilkat.theme @@ -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"; + }; +}; + diff --git a/config/desktop/home/raw/wp/anime-black-0.png b/config/desktop/home/raw/wp/anime-black-0.png new file mode 100644 index 0000000..b23f646 Binary files /dev/null and b/config/desktop/home/raw/wp/anime-black-0.png differ diff --git a/config/desktop/home/raw/wp/anime-red-0.png b/config/desktop/home/raw/wp/anime-red-0.png new file mode 100644 index 0000000..8ad39e8 Binary files /dev/null and b/config/desktop/home/raw/wp/anime-red-0.png differ diff --git a/config/desktop/home/raw/wp/city-red-0.png b/config/desktop/home/raw/wp/city-red-0.png new file mode 100644 index 0000000..020679b Binary files /dev/null and b/config/desktop/home/raw/wp/city-red-0.png differ diff --git a/config/desktop/home/raw/wp/dragon-red-0.png b/config/desktop/home/raw/wp/dragon-red-0.png new file mode 100644 index 0000000..d333006 Binary files /dev/null and b/config/desktop/home/raw/wp/dragon-red-0.png differ diff --git a/config/desktop/home/raw/wp/girl-red-0.png b/config/desktop/home/raw/wp/girl-red-0.png new file mode 100644 index 0000000..3cadc01 Binary files /dev/null and b/config/desktop/home/raw/wp/girl-red-0.png differ diff --git a/config/desktop/home/raw/wp/girl-red-1.png b/config/desktop/home/raw/wp/girl-red-1.png new file mode 100644 index 0000000..f9624f6 Binary files /dev/null and b/config/desktop/home/raw/wp/girl-red-1.png differ diff --git a/config/desktop/home/raw/wp/platform.png b/config/desktop/home/raw/wp/platform.png new file mode 100644 index 0000000..7f25bcf Binary files /dev/null and b/config/desktop/home/raw/wp/platform.png differ diff --git a/config/desktop/home/raw/wp/vedi.vini.vici.png b/config/desktop/home/raw/wp/vedi.vini.vici.png new file mode 100644 index 0000000..598e1c9 Binary files /dev/null and b/config/desktop/home/raw/wp/vedi.vini.vici.png differ diff --git a/config/desktop/home/raw/wp/windows_vista_manga.png b/config/desktop/home/raw/wp/windows_vista_manga.png new file mode 100644 index 0000000..6029b26 Binary files /dev/null and b/config/desktop/home/raw/wp/windows_vista_manga.png differ diff --git a/config/desktop/home/vesktop.nix b/config/desktop/home/vesktop.nix new file mode 100644 index 0000000..c126c0e --- /dev/null +++ b/config/desktop/home/vesktop.nix @@ -0,0 +1 @@ +_: { programs.vesktop.enable = true; } \ No newline at end of file diff --git a/config/desktop/media.nix b/config/desktop/media.nix new file mode 100644 index 0000000..275d05c --- /dev/null +++ b/config/desktop/media.nix @@ -0,0 +1,12 @@ +{ config, pkgs, ...}: +{ + services = { + pulseaudio.enable = false; + pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + }; + }; +} diff --git a/modules/nvim/cmp.nix b/config/desktop/nvim/cmp.nix similarity index 100% rename from modules/nvim/cmp.nix rename to config/desktop/nvim/cmp.nix diff --git a/modules/nvim/dbg/clang.nix b/config/desktop/nvim/dbg/clang.nix similarity index 100% rename from modules/nvim/dbg/clang.nix rename to config/desktop/nvim/dbg/clang.nix diff --git a/modules/nvim/dbg/default.nix b/config/desktop/nvim/dbg/default.nix similarity index 100% rename from modules/nvim/dbg/default.nix rename to config/desktop/nvim/dbg/default.nix diff --git a/modules/nvim/dbg/python.nix b/config/desktop/nvim/dbg/python.nix similarity index 100% rename from modules/nvim/dbg/python.nix rename to config/desktop/nvim/dbg/python.nix diff --git a/modules/nvim/dbg/rust.nix b/config/desktop/nvim/dbg/rust.nix similarity index 100% rename from modules/nvim/dbg/rust.nix rename to config/desktop/nvim/dbg/rust.nix diff --git a/modules/nvim/default.nix b/config/desktop/nvim/default.nix similarity index 100% rename from modules/nvim/default.nix rename to config/desktop/nvim/default.nix diff --git a/modules/nvim/flake.nix b/config/desktop/nvim/flake.nix similarity index 100% rename from modules/nvim/flake.nix rename to config/desktop/nvim/flake.nix diff --git a/modules/nvim/lsp/asm.nix b/config/desktop/nvim/lsp/asm.nix similarity index 100% rename from modules/nvim/lsp/asm.nix rename to config/desktop/nvim/lsp/asm.nix diff --git a/modules/nvim/lsp/bash.nix b/config/desktop/nvim/lsp/bash.nix similarity index 100% rename from modules/nvim/lsp/bash.nix rename to config/desktop/nvim/lsp/bash.nix diff --git a/modules/nvim/lsp/clang.nix b/config/desktop/nvim/lsp/clang.nix similarity index 78% rename from modules/nvim/lsp/clang.nix rename to config/desktop/nvim/lsp/clang.nix index cc36ba8..1ed2ff8 100644 --- a/modules/nvim/lsp/clang.nix +++ b/config/desktop/nvim/lsp/clang.nix @@ -4,7 +4,7 @@ _: enable = true; lsp = { enable = true; - server = "ccls"; + server = [ "ccls" ]; }; }; } diff --git a/modules/nvim/lsp/default.nix b/config/desktop/nvim/lsp/default.nix similarity index 100% rename from modules/nvim/lsp/default.nix rename to config/desktop/nvim/lsp/default.nix diff --git a/modules/nvim/lsp/go.nix b/config/desktop/nvim/lsp/go.nix similarity index 100% rename from modules/nvim/lsp/go.nix rename to config/desktop/nvim/lsp/go.nix diff --git a/modules/nvim/lsp/lspkind.nix b/config/desktop/nvim/lsp/lspkind.nix similarity index 100% rename from modules/nvim/lsp/lspkind.nix rename to config/desktop/nvim/lsp/lspkind.nix diff --git a/modules/nvim/lsp/lua.nix b/config/desktop/nvim/lsp/lua.nix similarity index 100% rename from modules/nvim/lsp/lua.nix rename to config/desktop/nvim/lsp/lua.nix diff --git a/modules/nvim/lsp/nix-lang.nix b/config/desktop/nvim/lsp/nix-lang.nix similarity index 89% rename from modules/nvim/lsp/nix-lang.nix rename to config/desktop/nvim/lsp/nix-lang.nix index ea58193..578a9a2 100644 --- a/modules/nvim/lsp/nix-lang.nix +++ b/config/desktop/nvim/lsp/nix-lang.nix @@ -12,7 +12,7 @@ _: }; lsp = { enable = true; - server = "nixd"; + server = [ "nixd" ]; }; }; } diff --git a/modules/nvim/lsp/python.nix b/config/desktop/nvim/lsp/python.nix similarity index 100% rename from modules/nvim/lsp/python.nix rename to config/desktop/nvim/lsp/python.nix diff --git a/modules/nvim/lsp/rust.nix b/config/desktop/nvim/lsp/rust.nix similarity index 100% rename from modules/nvim/lsp/rust.nix rename to config/desktop/nvim/lsp/rust.nix diff --git a/modules/nvim/lualine.nix b/config/desktop/nvim/lualine.nix similarity index 100% rename from modules/nvim/lualine.nix rename to config/desktop/nvim/lualine.nix diff --git a/modules/nvim/neotree.nix b/config/desktop/nvim/neotree.nix similarity index 100% rename from modules/nvim/neotree.nix rename to config/desktop/nvim/neotree.nix diff --git a/modules/nvim/raw/cmp.lua b/config/desktop/nvim/raw/cmp.lua similarity index 100% rename from modules/nvim/raw/cmp.lua rename to config/desktop/nvim/raw/cmp.lua diff --git a/modules/nvim/raw/opts.lua b/config/desktop/nvim/raw/opts.lua similarity index 100% rename from modules/nvim/raw/opts.lua rename to config/desktop/nvim/raw/opts.lua diff --git a/modules/nvim/terminal.nix b/config/desktop/nvim/terminal.nix similarity index 100% rename from modules/nvim/terminal.nix rename to config/desktop/nvim/terminal.nix diff --git a/modules/nvim/ui.nix b/config/desktop/nvim/ui.nix similarity index 100% rename from modules/nvim/ui.nix rename to config/desktop/nvim/ui.nix diff --git a/config/desktop/pkgs.nix b/config/desktop/pkgs.nix new file mode 100644 index 0000000..e9f2094 --- /dev/null +++ b/config/desktop/pkgs.nix @@ -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 + ]; + +} diff --git a/config/desktop/shell.nix b/config/desktop/shell.nix new file mode 100644 index 0000000..755442c --- /dev/null +++ b/config/desktop/shell.nix @@ -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 + ''; + }; + }; +} diff --git a/modules/web/default.nix b/config/desktop/web/default.nix similarity index 100% rename from modules/web/default.nix rename to config/desktop/web/default.nix diff --git a/modules/web/librewolf.nix b/config/desktop/web/librewolf.nix similarity index 100% rename from modules/web/librewolf.nix rename to config/desktop/web/librewolf.nix diff --git a/modules/web/qutebrowser.nix b/config/desktop/web/qutebrowser.nix similarity index 100% rename from modules/web/qutebrowser.nix rename to config/desktop/web/qutebrowser.nix diff --git a/flake.lock b/flake.lock index ff60ce3..15d6714 100644 --- a/flake.lock +++ b/flake.lock @@ -3,11 +3,11 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1751685974, - "narHash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=", + "lastModified": 1777699697, + "narHash": "sha256-Eg9b/rq/ECYwNwEXs5i9wHyhxNI0JrYx2srdI2uZMaQ=", "ref": "refs/heads/main", - "rev": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1", - "revCount": 92, + "rev": "382052b74656a369c5408822af3f2501e9b1af81", + "revCount": 94, "type": "git", "url": "https://git.lix.systems/lix-project/flake-compat.git" }, @@ -25,11 +25,11 @@ ] }, "locked": { - "lastModified": 1753121425, - "narHash": "sha256-TVcTNvOeWWk1DXljFxVRp+E0tzG1LhrVjOGGoMHuXio=", + "lastModified": 1778716662, + "narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "644e0fc48951a860279da645ba77fe4a6e814c5e", + "rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb", "type": "github" }, "original": { @@ -43,11 +43,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1781477932, - "narHash": "sha256-7EZqIpytCiWoVsUQIRytWr2H0esy2xuntQHjG4Hb/48=", + "lastModified": 1783099620, + "narHash": "sha256-prQSM9PGnrfSaqknJOZ3DCQKbpMiXAWLVC5SHbjLcJ4=", "owner": "nix-community", "repo": "home-manager", - "rev": "ed8263e7d7813ec8f447e78e5dcd7f94f333f1d5", + "rev": "b2e4390ff35319c52935d6a700b615da4c0f204d", "type": "github" }, "original": { @@ -58,11 +58,11 @@ }, "mnw": { "locked": { - "lastModified": 1748710831, - "narHash": "sha256-eZu2yH3Y2eA9DD3naKWy/sTxYS5rPK2hO7vj8tvUCSU=", + "lastModified": 1780772958, + "narHash": "sha256-VKKe8r4pwCGWZ3Yr9CPN129R4S3CKLSrlYqdYz3vKpM=", "owner": "Gerg-L", "repo": "mnw", - "rev": "cff958a4e050f8d917a6ff3a5624bc4681c6187d", + "rev": "0871dbf63a53610c95db04439ed8ea4d6ec9c160", "type": "github" }, "original": { @@ -71,13 +71,36 @@ "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": { "locked": { - "lastModified": 1780365719, - "narHash": "sha256-QfWfccTN+70ZQ4m2qlU9PiKfz2Yppq94058iJyARNwc=", + "lastModified": 1782175435, + "narHash": "sha256-EMzXKmnOtBQ2MnvpiNOm7E+kOMvdPrIKaeg52Tip2Uk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ffa10e26ae11d676b2db836259889f1f571cb14f", + "rev": "89570f24e97e614aa34aa9ab1c927b6578a43775", "type": "github" }, "original": { @@ -89,11 +112,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1781577229, - "narHash": "sha256-lrp67w8AulE9Ks53n27I45ADSzbOCn4H+CNW1Ck8B+8=", + "lastModified": 1782959384, + "narHash": "sha256-xnJJk+ct+D2+wdRxj1wk36w5zV9RVESwRqcklPdt3fM=", "owner": "nixos", "repo": "nixpkgs", - "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", + "rev": "65179426c83bb3f6bc14898b42ea1c6f01d374b0", "type": "github" }, "original": { @@ -121,16 +144,16 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1753432016, - "narHash": "sha256-cnL5WWn/xkZoyH/03NNUS7QgW5vI7D1i74g48qplCvg=", + "lastModified": 1781216227, + "narHash": "sha256-9mUW6gNwoN2SWc/l0fW4svPNOulXLl8ijqKyeSOGgJE=", "owner": "nixos", "repo": "nixpkgs", - "rev": "6027c30c8e9810896b92429f0092f624f7b1aace", + "rev": "a0374025a863d007d98e3297f6aa46cc3141c2f0", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixpkgs-unstable", + "ref": "nixos-26.05", "repo": "nixpkgs", "type": "github" } @@ -141,11 +164,11 @@ "nvf": "nvf_2" }, "locked": { - "path": "./modules/nvim", + "path": "./config/desktop/nvim", "type": "path" }, "original": { - "path": "./modules/nvim", + "path": "./config/desktop/nvim", "type": "path" }, "parent": [] @@ -155,15 +178,16 @@ "flake-compat": "flake-compat", "flake-parts": "flake-parts", "mnw": "mnw", + "ndg": "ndg", "nixpkgs": "nixpkgs_4", "systems": "systems" }, "locked": { - "lastModified": 1754388740, - "narHash": "sha256-6++6FDc/hcMpaJPgOrGzwmzCSgix3zIlcuTIy9+aNSs=", + "lastModified": 1781534482, + "narHash": "sha256-d3UIqXuigQhsc7amQkZ7F+SWnaJFAxIROE2f2X+pzUs=", "owner": "notashelf", "repo": "nvf", - "rev": "22fb0d22cc474e85f94c5aa95b6c550c81ca7278", + "rev": "63d8fc82d652c23419a837e2b2934dd4bead04f3", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 1ae759f..fcf3b7a 100644 --- a/flake.nix +++ b/flake.nix @@ -2,28 +2,78 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; 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: let system = "x86_64-linux"; in { - nixosConfigurations.darkstar = 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 = ./modules/home/home.nix; - }; - } - ]; + nixosConfigurations = { + # desktop + darkstar = 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; + }; + } + ]; + }; + + # 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 + ]; + }; }; }; } diff --git a/modules/boot.nix b/hosts/darkstar/config/boot.nix similarity index 100% rename from modules/boot.nix rename to hosts/darkstar/config/boot.nix diff --git a/hosts/darkstar/config/default.nix b/hosts/darkstar/config/default.nix new file mode 100644 index 0000000..591611d --- /dev/null +++ b/hosts/darkstar/config/default.nix @@ -0,0 +1,10 @@ +{ config, pkgs, ... }: +{ + imports = [ + ./boot.nix + ./gaming.nix + ./graphics.nix + ./networking.nix + #./openrgb.nix + ]; +} diff --git a/modules/gaming.nix b/hosts/darkstar/config/gaming.nix similarity index 100% rename from modules/gaming.nix rename to hosts/darkstar/config/gaming.nix diff --git a/modules/graphics.nix b/hosts/darkstar/config/graphics.nix similarity index 100% rename from modules/graphics.nix rename to hosts/darkstar/config/graphics.nix diff --git a/modules/irc.nix b/hosts/darkstar/config/irc.nix similarity index 100% rename from modules/irc.nix rename to hosts/darkstar/config/irc.nix diff --git a/modules/networking.nix b/hosts/darkstar/config/networking.nix similarity index 100% rename from modules/networking.nix rename to hosts/darkstar/config/networking.nix diff --git a/modules/openrgb.nix b/hosts/darkstar/config/openrgb.nix similarity index 100% rename from modules/openrgb.nix rename to hosts/darkstar/config/openrgb.nix diff --git a/hosts/darkstar/configuration.nix b/hosts/darkstar/configuration.nix index f4b852a..b7c4be5 100644 --- a/hosts/darkstar/configuration.nix +++ b/hosts/darkstar/configuration.nix @@ -4,10 +4,11 @@ imports = [ ./hardware-configuration.nix - ../../modules/default.nix + ./config/default.nix + ../../config/default/default.nix + ]; 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"; nixpkgs.config.allowUnfree = true; diff --git a/hosts/kepler/config/boot.nix b/hosts/kepler/config/boot.nix new file mode 100644 index 0000000..15ba7ea --- /dev/null +++ b/hosts/kepler/config/boot.nix @@ -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 + ''; + }; +} diff --git a/hosts/kepler/config/default.nix b/hosts/kepler/config/default.nix new file mode 100644 index 0000000..9e0d155 --- /dev/null +++ b/hosts/kepler/config/default.nix @@ -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 + ]; +} diff --git a/hosts/kepler/config/docker/default.nix b/hosts/kepler/config/docker/default.nix new file mode 100644 index 0000000..ead158e --- /dev/null +++ b/hosts/kepler/config/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 + ]; +} diff --git a/hosts/kepler/config/docker/gluetun.nix b/hosts/kepler/config/docker/gluetun.nix new file mode 100644 index 0000000..04d84a2 --- /dev/null +++ b/hosts/kepler/config/docker/gluetun.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" + ]; + }; + }; +} diff --git a/hosts/kepler/config/docker/jdownloader.nix b/hosts/kepler/config/docker/jdownloader.nix new file mode 100644 index 0000000..0f8c8d1 --- /dev/null +++ b/hosts/kepler/config/docker/jdownloader.nix @@ -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" + ]; + }; + }; +} diff --git a/hosts/kepler/config/docker/qbittorrent.nix b/hosts/kepler/config/docker/qbittorrent.nix new file mode 100644 index 0000000..d0502d6 --- /dev/null +++ b/hosts/kepler/config/docker/qbittorrent.nix @@ -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" + ]; + }; + }; +} diff --git a/hosts/kepler/config/freedom/default.nix b/hosts/kepler/config/freedom/default.nix new file mode 100644 index 0000000..f859940 --- /dev/null +++ b/hosts/kepler/config/freedom/default.nix @@ -0,0 +1,9 @@ +_: +{ + imports = [ + ./invidious.nix + ./nitter.nix + ./tor.nix + ./unbound.nix + ]; +} diff --git a/hosts/kepler/config/freedom/invidious.nix b/hosts/kepler/config/freedom/invidious.nix new file mode 100644 index 0000000..2fff7b2 --- /dev/null +++ b/hosts/kepler/config/freedom/invidious.nix @@ -0,0 +1,9 @@ +{ config, pkgs, ... }: +{ + services = { + invidious = { + enable = true; + port = 3001; + }; + }; +} diff --git a/hosts/kepler/config/freedom/nitter.nix b/hosts/kepler/config/freedom/nitter.nix new file mode 100644 index 0000000..ff30fe3 --- /dev/null +++ b/hosts/kepler/config/freedom/nitter.nix @@ -0,0 +1,14 @@ +{ config, pkgs, ... }: +{ + services = { + nitter = { + enable = true; + + server = { + https = true; + port = 3002; + hostname = "nitter twitter"; + }; + }; + }; +} diff --git a/hosts/kepler/config/freedom/tor.nix b/hosts/kepler/config/freedom/tor.nix new file mode 100644 index 0000000..1af76cc --- /dev/null +++ b/hosts/kepler/config/freedom/tor.nix @@ -0,0 +1,15 @@ +_: +{ + services.tor = { + enable = true; + enableGeoIP = true; + client = { + enable = true; + socksListenAddress = { + IsolateDestAddr = true; + addr = "10.11.0.10"; + port = 9050; + }; + }; + }; +} diff --git a/hosts/kepler/config/freedom/unbound.nix b/hosts/kepler/config/freedom/unbound.nix new file mode 100644 index 0000000..065839a --- /dev/null +++ b/hosts/kepler/config/freedom/unbound.nix @@ -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; + }; + }; + }; +} diff --git a/hosts/kepler/config/git.nix b/hosts/kepler/config/git.nix new file mode 100644 index 0000000..7f7c8ab --- /dev/null +++ b/hosts/kepler/config/git.nix @@ -0,0 +1,4 @@ +_: +{ + +} diff --git a/hosts/kepler/config/gnupg.nix b/hosts/kepler/config/gnupg.nix new file mode 100644 index 0000000..c0aba4e --- /dev/null +++ b/hosts/kepler/config/gnupg.nix @@ -0,0 +1,8 @@ +_: +{ + programs.gnupg.agent = { + enable = true; + enableSSHSupport = true; + }; + +} diff --git a/hosts/kepler/config/home/home.nix b/hosts/kepler/config/home/home.nix new file mode 100644 index 0000000..befb383 --- /dev/null +++ b/hosts/kepler/config/home/home.nix @@ -0,0 +1,10 @@ +{ config, pkgs, ... }: +{ + home = { + username = "user"; + homeDirectory = "/home/user"; + + enableNixpkgsReleaseCheck = false; + stateVersion = "26.05"; + }; +} diff --git a/hosts/kepler/config/jellyfin.nix b/hosts/kepler/config/jellyfin.nix new file mode 100644 index 0000000..6e0192e --- /dev/null +++ b/hosts/kepler/config/jellyfin.nix @@ -0,0 +1,9 @@ +{ config, pkgs, ... }: +{ + services = { + jellyfin = { + enable = true; + openFirewall = false; + }; + }; +} diff --git a/hosts/kepler/config/networking.nix b/hosts/kepler/config/networking.nix new file mode 100644 index 0000000..674b8f7 --- /dev/null +++ b/hosts/kepler/config/networking.nix @@ -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"; + }; + }; +} diff --git a/hosts/kepler/config/pkgs.nix b/hosts/kepler/config/pkgs.nix new file mode 100644 index 0000000..9591956 --- /dev/null +++ b/hosts/kepler/config/pkgs.nix @@ -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 + ]; +} diff --git a/hosts/kepler/config/ssh.nix b/hosts/kepler/config/ssh.nix new file mode 100644 index 0000000..798faae --- /dev/null +++ b/hosts/kepler/config/ssh.nix @@ -0,0 +1,8 @@ +_: +{ + services = { + openssh = { + enable = true; + }; + }; +} diff --git a/hosts/kepler/config/system.nix b/hosts/kepler/config/system.nix new file mode 100644 index 0000000..1c8fca3 --- /dev/null +++ b/hosts/kepler/config/system.nix @@ -0,0 +1,7 @@ +_: +{ + nix.settings.experimental-features = [ "nix-command" "flakes" ]; + system = { + stateVersion = "26.05"; + }; +} diff --git a/hosts/kepler/configuration.nix b/hosts/kepler/configuration.nix new file mode 100644 index 0000000..04cd8c4 --- /dev/null +++ b/hosts/kepler/configuration.nix @@ -0,0 +1,13 @@ +{ config, lib, pkgs, ... }: + +{ + imports = [ + ./hardware-configuration.nix + ./config/default.nix + ../../config/default/default.nix + ]; + + time.timeZone = "Europe/Berlin"; + +} + diff --git a/hosts/kepler/hardware-configuration.nix b/hosts/kepler/hardware-configuration.nix new file mode 100644 index 0000000..0361c64 --- /dev/null +++ b/hosts/kepler/hardware-configuration.nix @@ -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; +} diff --git a/hosts/molniya/config/boot.nix b/hosts/molniya/config/boot.nix new file mode 100644 index 0000000..fdd5778 --- /dev/null +++ b/hosts/molniya/config/boot.nix @@ -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 + } + ''; + }; + }; + }; +} diff --git a/hosts/molniya/config/default.nix b/hosts/molniya/config/default.nix new file mode 100644 index 0000000..4edbc92 --- /dev/null +++ b/hosts/molniya/config/default.nix @@ -0,0 +1,10 @@ +{ config, pkgs, ... }: +{ + imports = + [ + ./boot.nix + ./networking.nix + ./pkgs.nix + ./irc.nix + ]; +} diff --git a/hosts/molniya/config/irc.nix b/hosts/molniya/config/irc.nix new file mode 100644 index 0000000..8e84b65 --- /dev/null +++ b/hosts/molniya/config/irc.nix @@ -0,0 +1,25 @@ +{ pkgs, ... }: +{ + environment.systemPackages = with pkgs; [weechat]; + services = { + weechat = { + enable = true; + }; + tor = { + enable = true; + controlSocket.enable = true; + client = { + enable = true; + socksListenAddress = { + addr = "127.0.0.1"; + port = 9050; + }; + }; + settings = { + MapAddress = "palladium.libera.chat libera75jm6of4wxpxt4aynol3xjmbtxgfyjpu34ss4d7r7q2v5zrpyd.onion"; + ControlPort = [ 9051 ]; + }; + }; + + }; +} diff --git a/hosts/molniya/config/networking.nix b/hosts/molniya/config/networking.nix new file mode 100644 index 0000000..1f62f50 --- /dev/null +++ b/hosts/molniya/config/networking.nix @@ -0,0 +1,22 @@ +{ config, pkgs, ... }: +{ + environment.systemPackages = with pkgs; [ wireguard-tools ]; + services = { + mullvad-vpn = { + enable = true; + package = pkgs.mullvad-vpn; + }; + }; + networking = { + networkmanager = { + enable = true; + }; + firewall = { + enable = false; + checkReversePath = false; + + allowedTCPPorts = []; + allowedUDPPorts = []; + }; + }; +} diff --git a/hosts/molniya/configuration.nix b/hosts/molniya/configuration.nix index e241d69..72d7096 100644 --- a/hosts/molniya/configuration.nix +++ b/hosts/molniya/configuration.nix @@ -2,17 +2,16 @@ { imports = [ - ./hardware-configuration.nix - ../../modules/default.nix + ./hardware-configuration.nix + ./config/default.nix + ../../config/default/default.nix + ../../config/desktop/default.nix ]; networking.hostName = "molniya"; - boot.initrd.luks.devices."luks-9cd65807-a47b-4ffe-ac11-05680b9fffb0".device = "/dev/disk/by-uuid/9cd65807-a47b-4ffe-ac11-05680b9fffb0"; time.timeZone = "Europe/Berlin"; - - services.openssh.enable = true; diff --git a/hosts/voyager/config/boot.nix b/hosts/voyager/config/boot.nix new file mode 100644 index 0000000..fae17e9 --- /dev/null +++ b/hosts/voyager/config/boot.nix @@ -0,0 +1,13 @@ +_: +{ + boot = { + loader = { + systemd-boot = { + enable = true; + }; + efi = { + canTouchEfiVariables = true; + }; + }; + }; +} diff --git a/hosts/voyager/config/default.nix b/hosts/voyager/config/default.nix new file mode 100644 index 0000000..4f30806 --- /dev/null +++ b/hosts/voyager/config/default.nix @@ -0,0 +1,13 @@ +{ config, pkgs, ... }: +{ + imports = [ + #./dhcp.nix + #./nat.nix + #./firewall.nix + ./users.nix + ./networking.nix + ./time.nix + ./system.nix + ./boot.nix + ]; +} diff --git a/hosts/voyager/config/dhcp.nix b/hosts/voyager/config/dhcp.nix new file mode 100644 index 0000000..e69de29 diff --git a/hosts/voyager/config/firewall.nix b/hosts/voyager/config/firewall.nix new file mode 100644 index 0000000..e69de29 diff --git a/hosts/voyager/config/nat.nix b/hosts/voyager/config/nat.nix new file mode 100644 index 0000000..e69de29 diff --git a/hosts/voyager/config/networking.nix b/hosts/voyager/config/networking.nix new file mode 100644 index 0000000..ff4ba82 --- /dev/null +++ b/hosts/voyager/config/networking.nix @@ -0,0 +1,21 @@ +_: +{ + networking = { + hostName = "voyager"; + 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"; + }; + }; +} diff --git a/hosts/voyager/config/system.nix b/hosts/voyager/config/system.nix new file mode 100644 index 0000000..1c8fca3 --- /dev/null +++ b/hosts/voyager/config/system.nix @@ -0,0 +1,7 @@ +_: +{ + nix.settings.experimental-features = [ "nix-command" "flakes" ]; + system = { + stateVersion = "26.05"; + }; +} diff --git a/hosts/voyager/config/time.nix b/hosts/voyager/config/time.nix new file mode 100644 index 0000000..92f2aa3 --- /dev/null +++ b/hosts/voyager/config/time.nix @@ -0,0 +1,4 @@ +_: +{ + time.timeZone = "Europe/Berlin"; +} diff --git a/hosts/voyager/config/users.nix b/hosts/voyager/config/users.nix new file mode 100644 index 0000000..2be8303 --- /dev/null +++ b/hosts/voyager/config/users.nix @@ -0,0 +1,15 @@ +_: +{ + users.users.user = { + isNormalUser = true; + extraGroups = [ "wheel" "docker" "network" "plugdev" ]; + + openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDdCJK3NBMbGwvSxXq0kp/FzWUU0l0D1WX8f4vBubtZ7" ]; + }; + security = { + doas = { + enable = true; + extraConfig = "permit nopass keepenv :wheel"; + }; + }; +} diff --git a/hosts/voyager/configuration.nix b/hosts/voyager/configuration.nix new file mode 100644 index 0000000..950a96a --- /dev/null +++ b/hosts/voyager/configuration.nix @@ -0,0 +1,11 @@ +{ config, lib, pkgs, ... }: + +{ + imports = [ + ./hardware-configuration.nix + ./config/default.nix + ../../config/default/default.nix + ]; + +} + diff --git a/hosts/voyager/hardware-configuration.nix b/hosts/voyager/hardware-configuration.nix new file mode 100644 index 0000000..d4ca9f3 --- /dev/null +++ b/hosts/voyager/hardware-configuration.nix @@ -0,0 +1,28 @@ +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/dfbd029b-d568-41fc-93f3-43a6ac059661"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/1942-B7E9"; + fsType = "vfat"; + options = [ "fmask=0022" "dmask=0022" ]; + }; + + swapDevices = [ ]; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/modules/default.nix b/modules/default.nix deleted file mode 100644 index fb84359..0000000 --- a/modules/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ config, pkgs, ... }: -{ - imports = - [ - ./boot.nix - ./users.nix - ./networking.nix - ./security.nix - ./system.nix - ./pkgs.nix - ./gaming.nix - ./media.nix - ./graphics.nix - #./openrgb.nix - ./shell.nix - ./irc.nix - ./devel/default.nix - ./web/firefox.nix - ./dwm/default.nix - ]; -} diff --git a/modules/nvim/flake.lock b/modules/nvim/flake.lock deleted file mode 100644 index 0e4b2ca..0000000 --- a/modules/nvim/flake.lock +++ /dev/null @@ -1,156 +0,0 @@ -{ - "nodes": { - "flake-compat": { - "flake": false, - "locked": { - "lastModified": 1777699697, - "narHash": "sha256-Eg9b/rq/ECYwNwEXs5i9wHyhxNI0JrYx2srdI2uZMaQ=", - "ref": "refs/heads/main", - "rev": "382052b74656a369c5408822af3f2501e9b1af81", - "revCount": 94, - "type": "git", - "url": "https://git.lix.systems/lix-project/flake-compat.git" - }, - "original": { - "type": "git", - "url": "https://git.lix.systems/lix-project/flake-compat.git" - } - }, - "flake-parts": { - "inputs": { - "nixpkgs-lib": [ - "nvf", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1778716662, - "narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "mnw": { - "locked": { - "lastModified": 1780772958, - "narHash": "sha256-VKKe8r4pwCGWZ3Yr9CPN129R4S3CKLSrlYqdYz3vKpM=", - "owner": "Gerg-L", - "repo": "mnw", - "rev": "0871dbf63a53610c95db04439ed8ea4d6ec9c160", - "type": "github" - }, - "original": { - "owner": "Gerg-L", - "repo": "mnw", - "type": "github" - } - }, - "ndg": { - "inputs": { - "nixpkgs": [ - "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": { - "locked": { - "lastModified": 1754214453, - "narHash": "sha256-Q/I2xJn/j1wpkGhWkQnm20nShYnG7TI99foDBpXm1SY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "5b09dc45f24cf32316283e62aec81ffee3c3e376", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_2": { - "locked": { - "lastModified": 1781216227, - "narHash": "sha256-9mUW6gNwoN2SWc/l0fW4svPNOulXLl8ijqKyeSOGgJE=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "a0374025a863d007d98e3297f6aa46cc3141c2f0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-26.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "nvf": { - "inputs": { - "flake-compat": "flake-compat", - "flake-parts": "flake-parts", - "mnw": "mnw", - "ndg": "ndg", - "nixpkgs": "nixpkgs_2", - "systems": "systems" - }, - "locked": { - "lastModified": 1781534482, - "narHash": "sha256-d3UIqXuigQhsc7amQkZ7F+SWnaJFAxIROE2f2X+pzUs=", - "owner": "notashelf", - "repo": "nvf", - "rev": "63d8fc82d652c23419a837e2b2934dd4bead04f3", - "type": "github" - }, - "original": { - "owner": "notashelf", - "repo": "nvf", - "type": "github" - } - }, - "root": { - "inputs": { - "nixpkgs": "nixpkgs", - "nvf": "nvf" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -}