This commit is contained in:
xqtc161 2024-03-11 14:15:28 +01:00
commit 744a00fe39
26 changed files with 874 additions and 788 deletions

View file

@ -1,7 +1,9 @@
{ config, lib, inputs, pkgs, ... }:
{ {
nixpkgs.config.permittedInsecurePackages = [ config,
"electron-25.9.0" lib,
"electron-24.8.6" inputs,
]; pkgs,
...
}: {
nixpkgs.config.permittedInsecurePackages = ["electron-25.9.0" "electron-24.8.6"];
} }

View file

@ -29,11 +29,11 @@
}, },
"locked": { "locked": {
"dir": "pkgs/firefox-addons", "dir": "pkgs/firefox-addons",
"lastModified": 1709352230, "lastModified": 1709784245,
"narHash": "sha256-7NfxOTEz15jHLxIRYS9WU4+PO0fypxJ/kkHC682Lhr0=", "narHash": "sha256-t1sobS2zj7hD/dZj9aVPipYnskrk+Q7FqAViSqEMLQU=",
"owner": "rycee", "owner": "rycee",
"repo": "nur-expressions", "repo": "nur-expressions",
"rev": "c13d9ef669a370fd70e6732e295513cd7342b20d", "rev": "673c3faea3a5239f4efe545c4649c2b68501dbe1",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@ -81,11 +81,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1706830856, "lastModified": 1709336216,
"narHash": "sha256-a0NYyp+h9hlb7ddVz4LUn1vT/PLwqfrWYcHMvFB1xYg=", "narHash": "sha256-Dt/wOWeW6Sqm11Yh+2+t0dfEWxoMxGBvv3JpIocFl9E=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "b253292d9c0a5ead9bc98c4e9a26c6312e27d69f", "rev": "f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -192,11 +192,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1709204054, "lastModified": 1709764752,
"narHash": "sha256-U1idK0JHs1XOfSI1APYuXi4AEADf+B+ZU4Wifc0pBHk=", "narHash": "sha256-+lM4J4JoJeiN8V+3WSWndPHj1pJ9Jc1UMikGbXLqCTk=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "2f3367769a93b226c467551315e9e270c3f78b15", "rev": "cf111d1a849ddfc38e9155be029519b0e2329615",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -214,11 +214,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1708988456, "lastModified": 1709578243,
"narHash": "sha256-RCz7Xe64tN2zgWk+MVHkzg224znwqknJ1RnB7rVqUWw=", "narHash": "sha256-hF96D+c2PBmAFhymMw3z8hou++lqKtZ7IzpFbYeL1/Y=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "1d085ea4444d26aa52297758b333b449b2aa6fca", "rev": "23ff9821bcaec12981e32049e8687f25f11e5ef3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -235,11 +235,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1709001452, "lastModified": 1709554374,
"narHash": "sha256-FnZ54wkil54hKvr1irdKic1TE27lHQI9dKQmOJRrtlU=", "narHash": "sha256-1yYgwxBzia+QrOaQaZ6YKqGFfiQcSBwYLzd9XRsRLQY=",
"owner": "lnl7", "owner": "lnl7",
"repo": "nix-darwin", "repo": "nix-darwin",
"rev": "6c06334f0843c7300d1678726bb607ce526f6b36", "rev": "daa03606dfb5296a22e842acb02b46c1c4e9f5e7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -250,11 +250,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1709147990, "lastModified": 1709410583,
"narHash": "sha256-vpXMWoaCtMYJ7lisJedCRhQG9BSsInEyZnnG5GfY9tQ=", "narHash": "sha256-esOSUoQ7mblwcsSea0K17McZuwAIjoS6dq/4b83+lvw=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "33a97b5814d36ddd65ad678ad07ce43b1a67f159", "rev": "59e37017b9ed31dee303dbbd4531c594df95cfbc",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -282,11 +282,11 @@
}, },
"nixpkgs-master": { "nixpkgs-master": {
"locked": { "locked": {
"lastModified": 1709403298, "lastModified": 1709840082,
"narHash": "sha256-1Y2ywhgZ73PeeAQB3ndhfbDbAhBSFtxln30QjP8tr4c=", "narHash": "sha256-IE6KVI305U3Oy2J7Wz+hnllqy1SqUapUUT2BaSEJ2F4=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "80b928afb1055901afdfd4ebb0ede839ab1686bb", "rev": "76716d32209e34054ca9dfb0dd69270713d3a7e3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -298,11 +298,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1709237383, "lastModified": 1709703039,
"narHash": "sha256-cy6ArO4k5qTx+l5o+0mL9f5fa86tYUX3ozE1S+Txlds=", "narHash": "sha256-6hqgQ8OK6gsMu1VtcGKBxKQInRLHtzulDo9Z5jxHEFY=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "1536926ef5621b09bba54035ae2bb6d806d72ac8", "rev": "9df3e30ce24fd28c7b3e2de0d986769db5d6225d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -325,16 +325,17 @@
"pre-commit-hooks": "pre-commit-hooks" "pre-commit-hooks": "pre-commit-hooks"
}, },
"locked": { "locked": {
"lastModified": 1709387460, "lastModified": 1709760463,
"narHash": "sha256-NTfi6gAsR5EReuvFGihuDUkBqb9DuQQqFviQcXVwX0c=", "narHash": "sha256-gKP997+xtyWvJXBjnAaiT/Dmk22wo1T/DzkNMDk9GHU=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "274293fd691250ab96985aa4a04c653ab462876e", "rev": "22b587f3dc5c040eb1916aa2a67868f1918d9d17",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "22b587f3dc5c040eb1916aa2a67868f1918d9d17",
"type": "github" "type": "github"
} }
}, },

View file

@ -13,31 +13,36 @@
inputs.nixos-hardware.url = "github:NixOS/nixos-hardware/master"; inputs.nixos-hardware.url = "github:NixOS/nixos-hardware/master";
inputs.nixvim = { inputs.nixvim = {
# If you are not running an unstable channel of nixpkgs, select the corresponding branch of nixvim. # If you are not running an unstable channel of nixpkgs, select the corresponding branch of nixvim.
url = "github:nix-community/nixvim"; url = "github:nix-community/nixvim/22b587f3dc5c040eb1916aa2a67868f1918d9d17";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
outputs = inputs @ {self, nixpkgs, nixpkgs-master, firefox-addons, home-manager, nixos-hardware, nixvim, ...}: let outputs = inputs @ {
self,
nixpkgs,
nixpkgs-master,
firefox-addons,
home-manager,
nixos-hardware,
nixvim,
...
}: let
lib = nixpkgs.lib; lib = nixpkgs.lib;
util = (import ./overlays/util.nix {} {}).util; util = (import ./overlays/util.nix {} {}).util;
system = "x86_64-linux"; system = "x86_64-linux";
pkgs = import nixpkgs { inherit system; overlays = pkgs = import nixpkgs {
util.nixFilesIn ./overlays; };
in {
nixosConfigurations = pkgs.util.mapHostAttrs (host: host) (host: lib.nixosSystem {
inherit system; inherit system;
modules = [ overlays = util.nixFilesIn ./overlays;
./hosts/${host} };
#home-manager.nixosModules.home-manager { in {
# home-manager.useGlobalPkgs = true; nixosConfigurations = pkgs.util.mapHostAttrs (host: host) (host:
# home-manager.useUserPackages = true; lib.nixosSystem {
inherit system;
# home-manager.extraSpecialArgs = inputs; modules = [./hosts/${host}];
# home-manager.users.xqtc = {...}: {imports = [ ./home nixvim.homeManagerModules.nixvim ]; }; specialArgs = {inherit inputs;};
#} });
]; formatter.x86_64-linux =
specialArgs = { inherit inputs; }; inputs.nixpkgs.legacyPackages.x86_64-linux.alejandra;
});
}; };
} }

View file

@ -1,9 +1,3 @@
########################################################################################
AUTOGENERATED HYPR CONFIG.
PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT,
OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
########################################################################################
# #
# Please note not all available settings / options are set here. # Please note not all available settings / options are set here.
# For a full list, see the wiki # For a full list, see the wiki
@ -40,6 +34,11 @@ input {
sensitivity = 0 # -1.0 - 1.0, 0 means no modification. sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
} }
device {
name = at-translated-set-2-keyboard
enabled = false
}
general { general {
# See https://wiki.hyprland.org/Configuring/Variables/ for more # See https://wiki.hyprland.org/Configuring/Variables/ for more
@ -118,7 +117,8 @@ $mainMod = SUPER
bind = $mainMod SHIFT, return, exec, wezterm bind = $mainMod SHIFT, return, exec, wezterm
bind = $mainMod SHIFT, Q, killactive, bind = $mainMod SHIFT, Q, killactive,
bind = $mainMod SHIFT, X, exit, bind = $mainMod SHIFT, X, exit,
bind = $mainMod, L, exec, swaylock --indicator --clock --effect-blur 7x5 -e -f -i ~/dotfiles_new/walls/walls/wallpapersdencom_house-in-purple-flower-hyacinth-field_2048x1365.jpg bind = $mainMod, L, exec, swaylock --indicator --clock --effect-blur 7x5 -e -f -i "~/dotfiles_new/walls/walls/Bangqiao Yan - Letter.jpg"
bind = $mainMod SHIFT, SPACE, togglefloating, bind = $mainMod SHIFT, SPACE, togglefloating,
bind = $mainMod, P, exec, tofi-drun --drun-launch=true bind = $mainMod, P, exec, tofi-drun --drun-launch=true
bind = $mainMod SHIFT, P, exec, tofi-run --drun-launch=true bind = $mainMod SHIFT, P, exec, tofi-run --drun-launch=true

View file

@ -1,247 +1,35 @@
{ config, pkgs, lib, inputs, ... }:
{ {
config,
pkgs,
lib,
inputs,
...
}: {
imports = [
./modules/nixvim.nix
./modules/shell.nix
./modules/firefox.nix
./modules/wm.nix
./modules/gtk.nix
./modules/home-pkgs.nix
./modules/git.nix
#./modules/ssh.nix
];
home.username = "xqtc";
home.homeDirectory = "/home/xqtc";
imports = [ programs.wezterm = {
./modules/nixvim.nix enable = true;
./modules/firefox.nix extraConfig = builtins.readFile ./config-files/wezterm.lua;
#./modules/ssh.nix };
];
home.username = "xqtc";
home.homeDirectory = "/home/xqtc";
programs.git = {
enable = true;
userName = "xqtc161";
userEmail = "xqtc@tutanota.com";
};
programs.wezterm = {
enable = true;
extraConfig = builtins.readFile ./config-files/wezterm.lua;
};
programs.joshuto = { programs.joshuto = {enable = true;};
enable = true;
};
programs = { dconf.enable = true;
zsh.enable = true;
atuin = {
enable = true;
enableNushellIntegration = true;
};
eza.enable = true;
nushell = {
enable = true;
shellAliases = {
ls = "eza -l --icons --group-directories-first";
};
extraConfig = "uwufetch --image";
configFile = { text = ''
$env.config = {
show_banner: false
}
'';
};
};
carapace.enable = true;
carapace.enableNushellIntegration = true;
starship =
let
flavour = "mocha";
in
{
enable = true;
enableNushellIntegration = true;
enableBashIntegration = true;
enableZshIntegration = true;
settings = {
# Other config here
character = {
success_symbol = "[λ::](bold green)";
error_symbol = "[λ::](bold red)";
};
username = {
style_user = "bold pink";
format = "[$user]($style)";
show_always = true;
disabled = false;
};
hostname = {
ssh_only = false;
format = "[ 🏳 ](bold pink)[$hostname](bold flamingo)";
disabled = false;
};
right_format = "$all";
format = ''$username$hostname in $directory
$character'';
palette = "catppuccin_${flavour}";
} // builtins.fromTOML (builtins.readFile
(pkgs.fetchFromGitHub
{
owner = "catppuccin";
repo = "starship";
rev = "5629d2356f62a9f2f8efad3ff37476c19969bd4f"; # Replace with the latest commit hash
sha256 = "sha256-nsRuxQFKbQkyEI4TXgvAjcroVdG+heKX5Pauq/4Ota0=";
} + /palettes/${flavour}.toml));
};
};
dconf.enable = true;
dconf.settings = {
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
cursor-theme = "Adwaita";
};
};
gtk = { services.easyeffects = {enable = true;};
enable = true;
theme = {
name = "Catppuccin-Mocha-Compact-Pink-Dark";
package = pkgs.catppuccin-gtk.override {
accents = [ "pink" ];
size = "compact";
tweaks = [ "rimless" ];
variant = "mocha";
};
};
};
home.sessionVariables.DEFAULT_BROWSER = "${pkgs.firefox}/bin/firefox";
home.file."~/.local/share/fonts/AppleColorEmoji.ttf".source = ./config-files/AppleColorEmoji.ttf;
#programs.firefox = {
# enable = true;
# package = pkgs.firefox.override {
# cfg = {
# enableGnomeExtensions = true;
# };
# };
#};
wayland.windowManager.hyprland = {
enable = true;
package = pkgs.hyprland;
#xwayland.enable = true;
#enableNvidiaPatches = true;
extraConfig = builtins.readFile ./config-files/hyprland.conf;
};
programs.waybar = {
enable = true;
settings = {
mainBar = {
layer = "top";
position = "top";
height = 30;
modules-left = [ "hyprland/workspaces" ];
#modules-center = [ "hyprland/window" ];
modules-right = [ "tray" "network" "battery" "battery#bat2" "clock" ];
"tray" = {
"icon-size" = 21;
};
"network" = {
"format-wifi"= "NET: {essid} ({signalStrength}%) ";
"format-ethernet" = "{ifname} ";
"format-disconnected" = "";
"max-length" = 50;
};
"battery" = {
"bat" = "BAT0";
"interval" = 10;
"states" = {
"warning" = 30;
"critical" = 15;
};
"format" = " BAT IN: {capacity}%";
#"format-icons" = ''["", "", "", "", ""]'';
"max-length" = 25;
};
"battery#bat2" = {
"bat" = "BAT1";
"interval" = 10;
"states" = {
"warning" = 30;
"critical" = 15;
};
"format" = " BAT EX: {capacity}%";
#"format-icons" = ''["", "", "", "", ""]'';
"max-length" = 25;
};
};
};
style = builtins.readFile ./config-files/waybar-mocha.css;
};
services.mako = {
enable = true;
font = "Hack Nerd Font 15";
backgroundColor = "#1e1e2e";
textColor = "#cdd6f4";
};
services.easyeffects = {
enable = true;
};
home.packages = with pkgs; [
neofetch
uwufetch
btop
iftop
ranger
obsidian
moodle-dl
brightnessctl
pavucontrol
bitwarden
bitwarden-cli
sway-contrib.grimshot
libnotify
strace
ltrace
nodejs
nerdfonts
vivaldi
vivaldi-ffmpeg-codecs
signal-desktop
vesktop
discord
telegram-desktop
webex
element-desktop
qbittorrent
nicotine-plus
neovide
yubioath-flutter
steam
protonup-qt
spotify
sayonara
mpv
jellyfin-media-player
nixos-icons
swww
];
home.stateVersion = "23.11"; home.stateVersion = "23.11";
programs.home-manager.enable = true; programs.home-manager.enable = true;
} }

View file

@ -1,16 +1,17 @@
{ inputs, outputs, config, pkgs, ... }:
with inputs;
{ {
inputs,
outputs,
config,
pkgs,
...
}:
with inputs; {
home.sessionVariables.DEFAULT_BROWSER = "${pkgs.firefox}/bin/firefox"; home.sessionVariables.DEFAULT_BROWSER = "${pkgs.firefox}/bin/firefox";
programs.firefox = { programs.firefox = {
enable = true; enable = true;
package = pkgs.firefox.override { package =
cfg = { pkgs.firefox.override {cfg = {enableGnomeExtensions = true;};};
enableGnomeExtensions = true;
};
};
profiles.xqtc = { profiles.xqtc = {
isDefault = true; isDefault = true;
extensions = with inputs.firefox-addons.packages.${pkgs.system}; [ extensions = with inputs.firefox-addons.packages.${pkgs.system}; [
@ -19,52 +20,77 @@ with inputs;
sidebery sidebery
leechblock-ng leechblock-ng
darkreader darkreader
stylus stylus
vimium-c vimium-c
noscript noscript
]; ];
search = { search = {
default = "SearX"; default = "SearX";
force = true; force = true;
engines = { engines = {
"SearX" = { "SearX" = {
urls = [{ urls = [
template = "https://searx.org/search"; {
params = [ template = "https://searx.org/search";
{ name = "q"; value = "{searchTerms}"; } params = [
]; {
}]; name = "q";
}; value = "{searchTerms}";
}
];
}
];
};
"Nix Packages" = { "Nix Packages" = {
urls = [{ urls = [
template = "https://search.nixos.org/packages"; {
params = [ template = "https://search.nixos.org/packages";
{ name = "type"; value = "packages"; } params = [
{ name = "query"; value = "{searchTerms}"; } {
]; name = "type";
}]; value = "packages";
}
{
name = "query";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@np" ]; definedAliases = ["@np"];
}; };
"Nix Options" = { "Nix Options" = {
urls = [{ urls = [
template = "https://search.nixos.org/options"; {
params = [ template = "https://search.nixos.org/options";
{ name = "type"; value = "options"; } params = [
{ name = "query"; value = "{searchTerms}"; } {
]; name = "type";
}]; value = "options";
}
{
name = "query";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@no" ]; definedAliases = ["@no"];
}; };
"NixOS Wiki" = { "NixOS Wiki" = {
urls = [{ template = "https://nixos.wiki/index.php?search={searchTerms}"; }]; urls = [
{
template = "https://nixos.wiki/index.php?search={searchTerms}";
}
];
iconUpdateURL = "https://nixos.wiki/favicon.png"; iconUpdateURL = "https://nixos.wiki/favicon.png";
updateInterval = 24 * 60 * 60 * 1000; # every day updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = [ "@nw" ]; definedAliases = ["@nw"];
}; };
"Bing".metaData.hidden = true; "Bing".metaData.hidden = true;
@ -83,22 +109,25 @@ with inputs;
"browser.theme.toolbar-theme" = "0"; "browser.theme.toolbar-theme" = "0";
"browser.newtabpage.activity-stream.showSponsored" = false; "browser.newtabpage.activity-stream.showSponsored" = false;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false; "browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
"services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsored" = false; "services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsored" =
"services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsoredTopSites" = false; false;
"services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsoredTopSites" =
false;
"browser.toolbars.bookmarks.visibility" = "never"; "browser.toolbars.bookmarks.visibility" = "never";
"general.useragent.locale" = "de-DE"; "general.useragent.locale" = "de-DE";
"distribution.searchplugins.defaultLocale" = "de-DE"; "distribution.searchplugins.defaultLocale" = "de-DE";
"signon.rememberSignons" = false; "signon.rememberSignons" = false;
"toolkit.legacyUserProfileCustomizations.stylesheets" = true; # Needed to allow userChrome.css "toolkit.legacyUserProfileCustomizations.stylesheets" =
true; # Needed to allow userChrome.css
}; };
userChrome = '' userChrome = ''
@import "firefox-gnome-theme/userChrome.css"; @import "firefox-gnome-theme/userChrome.css";
#TabsToolbar { #TabsToolbar {
display: none; !important display: none; !important
} }
#sidebar-header { #sidebar-header {
display: none; display: none;
} }
''; '';
}; };
}; };

12
home/modules/git.nix Normal file
View file

@ -0,0 +1,12 @@
{
inputs,
config,
pkgs,
...
}: {
programs.git = {
enable = true;
userName = "xqtc161";
userEmail = "xqtc@tutanota.com";
};
}

26
home/modules/gtk.nix Normal file
View file

@ -0,0 +1,26 @@
{
config,
pkgs,
inputs,
...
}: {
dconf.settings = {
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
cursor-theme = "Adwaita";
};
};
gtk = {
enable = true;
theme = {
name = "Catppuccin-Mocha-Compact-Pink-Dark";
package = pkgs.catppuccin-gtk.override {
accents = ["pink"];
size = "compact";
tweaks = ["rimless"];
variant = "mocha";
};
};
};
}

View file

@ -0,0 +1,66 @@
{
config,
inputs,
pkgs,
...
}: {
home.packages = with pkgs; [
neofetch
uwufetch
btop
iftop
ranger
obsidian
moodle-dl
brightnessctl
pavucontrol
bitwarden
bitwarden-cli
sway-contrib.grimshot
libnotify
strace
ltrace
nodejs
nerdfonts
vivaldi
vivaldi-ffmpeg-codecs
signal-desktop
vesktop
discord
telegram-desktop
webex
element-desktop
qbittorrent
nicotine-plus
via
qmk
qmk-udev-rules
neovide
yubioath-flutter
steam
protonup-qt
spotify
sayonara
mpv
feishin
nixos-icons
swww
];
}

View file

@ -1,176 +1,177 @@
{ pkgs, lib, config, inputs, outputs, ... }:
{ {
programs.nixvim = { pkgs,
enable = true; lib,
globals.mapleader = " "; config,
extraConfigLua = builtins.readFile ../config-files/nvim/init.lua; inputs,
extraPlugins = with pkgs.vimPlugins; [ outputs,
headlines-nvim ...
]; }: {
programs.nixvim = {
clipboard.providers.wl-copy.enable = true; enable = true;
globals.mapleader = " ";
extraConfigLua = builtins.readFile ../config-files/nvim/init.lua;
extraPlugins = with pkgs.vimPlugins; [headlines-nvim];
options = { clipboard.providers.wl-copy.enable = true;
number = true; # Show line numbers
relativenumber = true; # Show relative line numbers
shiftwidth = 2; # Tab width should be 2 options = {
}; number = true; # Show line numbers
relativenumber = true; # Show relative line numbers
colorschemes.catppuccin.enable = true; shiftwidth = 2; # Tab width should be 2
plugins = {
obsidian = {
enable = true;
dir = "~/Documents/Obsidian Vault/";
};
lualine.enable = true;
lsp-format = {
enable = true;
};
lsp = {
enable = true;
servers = {
bashls.enable = true;
lua-ls.enable = true;
nushell.enable = true;
clangd.enable = true;
svelte.enable = true;
tsserver.enable = true;
eslint.enable = true;
rust-analyzer = {
enable = true;
installCargo = false;
installRustc = false;
};
nil_ls.enable = true;
};
};
gitsigns.enable = true;
fugitive.enable = true;
treesitter = {
enable = true;
folding = true;
indent = true;
nixvimInjections = true;
};
treesitter-refactor = {
enable = true;
smartRename.enable = true;
highlightCurrentScope.enable = true;
navigation.enable = true;
};
cursorline.enable = true;
nvim-cmp = {
enable = true;
autoEnableSources = true;
sources = [
{name = "nvim_lsp";}
{name = "path";}
{name = "buffer";}
{name = "luasnip";}
];
snippet.expand = "luasnip";
mapping = {
"<CR>" = "cmp.mapping.confirm({ select = true })";
"<Tab>" = {
action = ''
function(fallback)
local luasnip = require 'luasnip'
if cmp.visible() then
cmp.select_next_item()
elseif luasnip.expandable() then
luasnip.expand()
elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
else
fallback()
end
end
'';
modes = [ "i" "s" ];
};
};
};
telescope.enable = true;
telescope.extensions = {
file_browser.enable = true;
};
which-key.enable = true;
cmp-nvim-lsp.enable = true;
cmp-nvim-lua.enable = true;
noice.enable = true;
notify.enable = true;
luasnip.enable = true;
neo-tree.enable = true;
presence-nvim.enable = true;
crates-nvim.enable = true;
fidget.enable = true;
alpha = {
enable = true;
theme = "startify";
};
bufferline.enable = true;
};
keymaps = [
{
mode = "n";
key = "<leader>ff";
options.silent = true;
action = "<cmd>Telescope file_browser<CR>";
}
{
mode = "n";
key = "<leader>bb";
options.silent = true;
action = "<cmd>Telescope buffers<CR>";
}
{
mode = "n";
key = "<leader>Gp";
action = "<cmd>Git pull<CR>";
}
{
mode = "n";
key = "<leader>GP";
action = "<cmd>Git push<CR>";
}
{
mode = "n";
key = "<leader>Gc";
action = "<cmd>Git commit<CR>";
}
{
mode = "n";
key = "<leader>Ga";
action = "<cmd>Git add .<CR>";
}
{
mode = "n";
key = "<leader>Gd";
action = "<cmd>Git diff<CR>";
}
{
mode = "n";
key = "<leader>nt";
action = "<cmd>Neotree toggle left<CR>";
}
{
mode = "n";
key = "<leader>P";
action = "\"+p";
}
{
mode = [ "n" "v" ];
key = "<leader>y";
action = "[[\"+y]]";
}
{
mode = [ "n" ];
key = "<leader>Y";
action = "[[\"+Y]]";
}
];
}; };
colorschemes.catppuccin.enable = true;
plugins = {
obsidian = {
enable = true;
dir = "~/Documents/Obsidian Vault/";
};
indent-blankline.enable = true;
lualine.enable = true;
lsp-format = {enable = true;};
lsp = {
enable = true;
servers = {
bashls.enable = true;
lua-ls.enable = true;
nushell.enable = true;
clangd.enable = true;
svelte.enable = true;
tsserver.enable = true;
eslint.enable = true;
rust-analyzer = {
enable = true;
installCargo = false;
installRustc = false;
};
nil_ls.enable = true;
};
};
gitsigns.enable = true;
fugitive.enable = true;
treesitter = {
enable = true;
folding = true;
indent = true;
nixvimInjections = true;
};
treesitter-refactor = {
enable = true;
smartRename.enable = true;
highlightCurrentScope.enable = true;
navigation.enable = true;
};
cursorline.enable = true;
nvim-cmp = {
enable = true;
autoEnableSources = true;
sources = [
{name = "nvim_lsp";}
{name = "path";}
{name = "buffer";}
{name = "luasnip";}
];
snippet.expand = "luasnip";
mapping = {
"<CR>" = "cmp.mapping.confirm({ select = true })";
"<Tab>" = {
action = ''
function(fallback)
local luasnip = require 'luasnip'
if cmp.visible() then
cmp.select_next_item()
elseif luasnip.expandable() then
luasnip.expand()
elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
else
fallback()
end
end
'';
modes = ["i" "s"];
};
};
};
telescope.enable = true;
telescope.extensions = {file_browser.enable = true;};
which-key.enable = true;
cmp-nvim-lsp.enable = true;
cmp-nvim-lua.enable = true;
noice.enable = true;
notify.enable = true;
luasnip.enable = true;
neo-tree.enable = true;
presence-nvim.enable = true;
crates-nvim.enable = true;
fidget.enable = true;
alpha = {
enable = true;
theme = "startify";
};
bufferline.enable = true;
};
keymaps = [
{
mode = "n";
key = "<leader>ff";
options.silent = true;
action = "<cmd>Telescope file_browser<CR>";
}
{
mode = "n";
key = "<leader>bb";
options.silent = true;
action = "<cmd>Telescope buffers<CR>";
}
{
mode = "n";
key = "<leader>Gp";
action = "<cmd>Git pull<CR>";
}
{
mode = "n";
key = "<leader>GP";
action = "<cmd>Git push<CR>";
}
{
mode = "n";
key = "<leader>Gc";
action = "<cmd>Git commit<CR>";
}
{
mode = "n";
key = "<leader>Ga";
action = "<cmd>Git add .<CR>";
}
{
mode = "n";
key = "<leader>Gd";
action = "<cmd>Git diff<CR>";
}
{
mode = "n";
key = "<leader>nt";
action = "<cmd>Neotree toggle left<CR>";
}
{
mode = "n";
key = "<leader>P";
action = ''"+p'';
}
{
mode = ["n" "v"];
key = "<leader>y";
action = ''[["+y]]'';
}
{
mode = ["n"];
key = "<leader>Y";
action = ''[["+Y]]'';
}
];
};
} }

68
home/modules/shell.nix Normal file
View file

@ -0,0 +1,68 @@
{
config,
pkgs,
inputs,
...
}: {
programs = {
zsh.enable = true;
atuin = {
enable = true;
enableNushellIntegration = true;
};
eza.enable = true;
nushell = {
enable = true;
shellAliases = {ls = "eza -l --icons --group-directories-first";};
extraConfig = "uwufetch --image";
configFile = {
text = ''
$env.config = {
show_banner: false
}
'';
};
};
carapace.enable = true;
carapace.enableNushellIntegration = true;
starship = let
flavour = "mocha";
in {
enable = true;
enableNushellIntegration = true;
enableBashIntegration = true;
enableZshIntegration = true;
settings =
{
# Other config here
character = {
success_symbol = "[λ::](bold green)";
error_symbol = "[λ::](bold red)";
};
username = {
style_user = "bold pink";
format = "[$user]($style)";
show_always = true;
disabled = false;
};
hostname = {
ssh_only = false;
format = "[ 🏳 ](bold pink)[$hostname](bold flamingo)";
disabled = false;
};
right_format = "$all";
format = ''
$username$hostname in $directory
$character'';
palette = "catppuccin_${flavour}";
}
// builtins.fromTOML (builtins.readFile (pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "starship";
rev = "5629d2356f62a9f2f8efad3ff37476c19969bd4f"; # Replace with the latest commit hash
sha256 = "sha256-nsRuxQFKbQkyEI4TXgvAjcroVdG+heKX5Pauq/4Ota0=";
}
+ /palettes/${flavour}.toml));
};
};
}

View file

@ -1,7 +1,11 @@
{ inputs, lib, config, pkgs, ...}:
{ {
age.identityPaths = [ "${config.home.homeDirectory}/.ssh/agenix" ]; # Use this key to decrypt inputs,
lib,
config,
pkgs,
...
}: {
age.identityPaths = ["${config.home.homeDirectory}/.ssh/agenix"]; # Use this key to decrypt
home.packages = [ home.packages = [
inputs.agenix.packages.x86_64-linux.default # Install CLI tool to encrypt inputs.agenix.packages.x86_64-linux.default # Install CLI tool to encrypt
]; ];

67
home/modules/wm.nix Normal file
View file

@ -0,0 +1,67 @@
{
config,
pkgs,
inputs,
...
}: {
wayland.windowManager.hyprland = {
enable = true;
package = pkgs.hyprland;
#xwayland.enable = true;
#enableNvidiaPatches = true;
extraConfig = builtins.readFile ../config-files/hyprland.conf;
};
programs.waybar = {
enable = true;
settings = {
mainBar = {
layer = "top";
position = "top";
height = 30;
modules-left = ["hyprland/workspaces"];
#modules-center = [ "hyprland/window" ];
modules-right = ["tray" "network" "battery" "battery#bat2" "clock"];
"tray" = {"icon-size" = 21;};
"network" = {
"format-wifi" = "NET: {essid} ({signalStrength}%) ";
"format-ethernet" = "{ifname} ";
"format-disconnected" = "";
"max-length" = 50;
};
"battery" = {
"bat" = "BAT0";
"interval" = 10;
"states" = {
"warning" = 30;
"critical" = 15;
};
"format" = " BAT IN: {capacity}%";
#"format-icons" = ''["", "", "", "", ""]'';
"max-length" = 25;
};
"battery#bat2" = {
"bat" = "BAT1";
"interval" = 10;
"states" = {
"warning" = 30;
"critical" = 15;
};
"format" = " BAT EX: {capacity}%";
#"format-icons" = ''["", "", "", "", ""]'';
"max-length" = 25;
};
};
};
style = builtins.readFile ../config-files/waybar-mocha.css;
};
services.mako = {
enable = true;
font = "Hack Nerd Font 15";
backgroundColor = "#1e1e2e";
textColor = "#cdd6f4";
};
}

View file

@ -1,7 +1,6 @@
let let
xqtc = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFecbWOhXR4z1wrrI5onn4SFGtu/lfsOblreuRWcbLug"; xqtc = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFecbWOhXR4z1wrrI5onn4SFGtu/lfsOblreuRWcbLug";
in in {
{ "xqtc_id_ed25519.age".publicKeys = [xqtc];
"xqtc_id_ed25519.age".publicKeys = [ xqtc ]; "xqtc_id_ed25519_pub.age".publicKeys = [xqtc];
"xqtc_id_ed25519_pub.age".publicKeys = [ xqtc ];
} }

View file

@ -1,10 +1,12 @@
{config, lib, pkgs, ...}:
{ {
config,
lib,
pkgs,
...
}: {
services.clamav = { services.clamav = {
updater.enable = true; updater.enable = true;
updater.settings = { updater.settings = {LogVerbose = true;};
LogVerbose = true;
};
updater.interval = "hourly"; updater.interval = "hourly";
daemon.enable = true; daemon.enable = true;
}; };

View file

@ -15,19 +15,22 @@
*/ */
{ config, inputs, lib, pkgs, ... }:
{ {
imports = config,
[ # Include the results of the hardware scan. inputs,
./hardware-configuration.nix lib,
../../common pkgs,
#../antivirus.nix ...
../../modules/home-manager.nix }: {
../gc.nix imports = [
]; # Include the results of the hardware scan.
./hardware-configuration.nix
../../common
#../antivirus.nix
../../modules/home-manager.nix
../gc.nix
];
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
hardware.opengl = { hardware.opengl = {
@ -58,7 +61,8 @@
networking.hostName = "asmodeus"; # Define your hostname. networking.hostName = "asmodeus"; # Define your hostname.
# Pick only one of the below networking options. # Pick only one of the below networking options.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. networking.networkmanager.enable =
true; # Easiest to use and most distros use this by default.
# Set your time zone. # Set your time zone.
time.timeZone = "Europe/Berlin"; time.timeZone = "Europe/Berlin";
@ -83,7 +87,7 @@
services.xserver.displayManager.defaultSession = "plasmawayland"; services.xserver.displayManager.defaultSession = "plasmawayland";
services.xserver.videoDrivers = ["nvidia"]; services.xserver.videoDrivers = ["nvidia"];
virtualisation.docker.enable = true; virtualisation.docker.enable = true;
# Configure keymap in X11 # Configure keymap in X11
services.xserver.xkb.layout = "us"; services.xserver.xkb.layout = "us";
@ -113,11 +117,8 @@
# Define a user account. Don't forget to set a password with passwd. # Define a user account. Don't forget to set a password with passwd.
users.users.xqtc = { users.users.xqtc = {
isNormalUser = true; isNormalUser = true;
extraGroups = [ "wheel" "sudo" "docker" ]; # Enable sudo for the user. extraGroups = ["wheel" "sudo" "docker"]; # Enable sudo for the user.
packages = with pkgs; [ packages = with pkgs; [wezterm nushell];
wezterm
nushell
];
shell = pkgs.nushell; shell = pkgs.nushell;
}; };
@ -127,25 +128,24 @@
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
wget wget
#git #git
firefox firefox
neovim neovim
gcc13 gcc13
cargo cargo
rustc rustc
wl-clipboard wl-clipboard
xclip xclip
jellyfin jellyfin
jellyfin-web jellyfin-web
jellyfin-ffmpeg jellyfin-ffmpeg
]; ];
#programs.nix-ld.enable = true; #programs.nix-ld.enable = true;
# Some programs need SUID wrappers, can be configured further or are # Some programs need SUID wrappers, can be configured further or are
@ -160,7 +160,7 @@
services.jellyfin.enable = true; services.jellyfin.enable = true;
services.jellyfin.user = "xqtc"; services.jellyfin.user = "xqtc";
#services.calibre-web = { #services.calibre-web = {
# enable = true; # enable = true;
# user = "xqtc"; # user = "xqtc";
@ -177,12 +177,12 @@
#}; #};
services = { services = {
syncthing = { syncthing = {
enable = true; enable = true;
user = "xqtc"; user = "xqtc";
dataDir = "/home/xqtc/Documents"; # Default folder for new synced folders dataDir = "/home/xqtc/Documents"; # Default folder for new synced folders
configDir = "/home/xqtc/Documents/.config/syncthing"; # Folder for Syncthing's settings and keys configDir = "/home/xqtc/Documents/.config/syncthing"; # Folder for Syncthing's settings and keys
}; };
}; };
# Enable the OpenSSH daemon. # Enable the OpenSSH daemon.
services.openssh.enable = true; services.openssh.enable = true;
@ -203,7 +203,7 @@
services.tailscale.enable = true; services.tailscale.enable = true;
# Open ports in the firewall. # Open ports in the firewall.
networking.firewall.allowedTCPPorts = [ 2234 8096 8080 8082 ]; networking.firewall.allowedTCPPorts = [2234 8096 8080 8082];
# networking.firewall.allowedUDPPorts = [ ... ]; # networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether. # Or disable the firewall altogether.
# networking.firewall.enable = false; # networking.firewall.enable = false;
@ -230,8 +230,6 @@
# #
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
system.stateVersion = "23.11"; # Did you read the comment? system.stateVersion = "23.11"; # Did you read the comment?
nix.settings.experimental-features = [ "nix-command" "flakes" ];
nix.settings.experimental-features = ["nix-command" "flakes"];
} }

View file

@ -1,37 +1,39 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
]; pkgs,
modulesPath,
...
}: {
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" "sr_mod" ]; boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" "sr_mod"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/5e34fc38-c199-4b85-b756-1c65ed7471fc"; device = "/dev/disk/by-uuid/5e34fc38-c199-4b85-b756-1c65ed7471fc";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/C3D3-9E29"; device = "/dev/disk/by-uuid/C3D3-9E29";
fsType = "vfat"; fsType = "vfat";
}; };
fileSystems."/mnt/HDD1" = fileSystems."/mnt/HDD1" = {
{ device = "/dev/disk/by-uuid/bc68de4c-ad5c-4016-ac11-65de448949fe"; device = "/dev/disk/by-uuid/bc68de4c-ad5c-4016-ac11-65de448949fe";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/mnt/HDD2" = fileSystems."/mnt/HDD2" = {
{ device = "/dev/disk/by-uuid/c37bc41d-8d92-4b7e-ac45-3420804d086c"; device = "/dev/disk/by-uuid/c37bc41d-8d92-4b7e-ac45-3420804d086c";
fsType = "ext4"; fsType = "ext4";
}; };
swapDevices = [ ]; swapDevices = [];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's # (the default) this is the recommended approach. When using systemd-networkd it's
@ -42,5 +44,6 @@
# networking.interfaces.wlo1.useDHCP = lib.mkDefault true; # networking.interfaces.wlo1.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.amd.updateMicrocode =
lib.mkDefault config.hardware.enableRedistributableFirmware;
} }

View file

@ -1,5 +1,4 @@
{ config, ... }: {config, ...}: {
{
nix.gc = { nix.gc = {
automatic = true; automatic = true;
dates = "daily"; dates = "daily";

View file

@ -13,15 +13,17 @@
*/ */
{ config, lib, pkgs, ... }:
{ {
imports = config,
[ # Include the results of the hardware scan. lib,
./hardware-configuration.nix pkgs,
]; ...
}: {
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
];
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
security.pam.services.swaylock = {}; security.pam.services.swaylock = {};
@ -48,11 +50,7 @@
hardware.bluetooth = { hardware.bluetooth = {
enable = true; enable = true;
powerOnBoot = true; powerOnBoot = true;
settings = { settings = {General = {Enable = "Source,Sink,Media,Socket";};};
General = {
Enable = "Source,Sink,Media,Socket";
};
};
}; };
# Use the systemd-boot EFI boot loader. # Use the systemd-boot EFI boot loader.
@ -64,7 +62,8 @@
networking.hostName = "lambda"; # Define your hostname. networking.hostName = "lambda"; # Define your hostname.
# Pick only one of the below networking options. # Pick only one of the below networking options.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. networking.networkmanager.enable =
true; # Easiest to use and most distros use this by default.
# Set your time zone. # Set your time zone.
time.timeZone = "Europe/Berlin"; time.timeZone = "Europe/Berlin";
@ -88,7 +87,7 @@
#services.xserver.desktopManager.gnome.enable = true; #services.xserver.desktopManager.gnome.enable = true;
#services.xserver.displayManager.defaultSession = "plasmawayland"; #services.xserver.displayManager.defaultSession = "plasmawayland";
#services.xserver.videoDrivers = ["nvidia"]; #services.xserver.videoDrivers = ["nvidia"];
services.blueman.enable = true; services.blueman.enable = true;
# Configure keymap in X11 # Configure keymap in X11
@ -111,32 +110,29 @@
# Define a user account. Don't forget to set a password with passwd. # Define a user account. Don't forget to set a password with passwd.
users.users.xqtc = { users.users.xqtc = {
isNormalUser = true; isNormalUser = true;
extraGroups = [ "wheel" ]; # Enable sudo for the user. extraGroups = ["wheel"]; # Enable sudo for the user.
packages = with pkgs; [ packages = with pkgs; [wezterm nushell];
wezterm
nushell
];
shell = pkgs.nushell; shell = pkgs.nushell;
}; };
# List packages installed in system profile. To search, run: # List packages installed in system profile. To search, run:
# $ nix search wget # $ nix search wget
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
wget wget
#git #git
firefox firefox
neovim neovim
gcc13 gcc13
cargo cargo
cargo-generate cargo-generate
sway sway
swaylock swaylock
swaylock-effects swaylock-effects
tofi tofi
waybar waybar
wl-clipboard wl-clipboard
wdisplays wdisplays
]; ];
# Some programs need SUID wrappers, can be configured further or are # Some programs need SUID wrappers, can be configured further or are
@ -146,7 +142,7 @@
enable = true; enable = true;
enableSSHSupport = true; enableSSHSupport = true;
}; };
services.udev.packages = [ pkgs.yubikey-personalization ]; services.udev.packages = [pkgs.yubikey-personalization];
services.pcscd.enable = true; services.pcscd.enable = true;
# List services that you want to enable: # List services that you want to enable:
@ -169,7 +165,7 @@
services.tailscale.enable = true; services.tailscale.enable = true;
# Open ports in the firewall. # Open ports in the firewall.
networking.firewall.allowedTCPPorts = [ 8080 5173 ]; networking.firewall.allowedTCPPorts = [8080 5173];
# networking.firewall.allowedUDPPorts = [ ... ]; # networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether. # Or disable the firewall altogether.
# networking.firewall.enable = false; # networking.firewall.enable = false;
@ -196,8 +192,6 @@
# #
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
system.stateVersion = "23.11"; # Did you read the comment? system.stateVersion = "23.11"; # Did you read the comment?
nix.settings.experimental-features = [ "nix-command" "flakes" ];
nix.settings.experimental-features = ["nix-command" "flakes"];
} }

View file

@ -1,31 +1,31 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
]; pkgs,
modulesPath,
...
}: {
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ ]; boot.kernelModules = [];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/0b6d9cc6-88a7-45b4-b79e-81496f480e7c"; device = "/dev/disk/by-uuid/0b6d9cc6-88a7-45b4-b79e-81496f480e7c";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/6F98-B5D8"; device = "/dev/disk/by-uuid/6F98-B5D8";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = swapDevices = [{device = "/dev/disk/by-uuid/6cf4542a-9611-4a15-83df-12e3ec91b673";}];
[ { device = "/dev/disk/by-uuid/6cf4542a-9611-4a15-83df-12e3ec91b673"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's # (the default) this is the recommended approach. When using systemd-networkd it's
@ -35,5 +35,6 @@
# networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true; # networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.intel.updateMicrocode =
lib.mkDefault config.hardware.enableRedistributableFirmware;
} }

View file

@ -1,16 +1,20 @@
{ config, lib, inputs, pkgs, ... }:
{ {
imports = config,
[ # Include the results of the hardware scan. lib,
./hardware-configuration.nix inputs,
../../common pkgs,
#../antivirus.nix ...
../../modules/home-manager.nix }: {
inputs.nixos-hardware.nixosModules.lenovo-thinkpad-t480 imports = [
../gc.nix # Include the results of the hardware scan.
]; ./hardware-configuration.nix
../../common
#../antivirus.nix
../../modules/home-manager.nix
inputs.nixos-hardware.nixosModules.lenovo-thinkpad-t480
../gc.nix
];
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
security.pam.services.swaylock = {}; security.pam.services.swaylock = {};
@ -24,11 +28,7 @@
hardware.bluetooth = { hardware.bluetooth = {
enable = true; enable = true;
powerOnBoot = true; powerOnBoot = true;
settings = { settings = {General = {Enable = "Source,Sink,Media,Socket";};};
General = {
Enable = "Source,Sink,Media,Socket";
};
};
}; };
# Use the systemd-boot EFI boot loader. # Use the systemd-boot EFI boot loader.
@ -56,7 +56,8 @@
networking.hostName = "lilith"; # Define your hostname. networking.hostName = "lilith"; # Define your hostname.
# Pick only one of the below networking options. # Pick only one of the below networking options.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. networking.networkmanager.enable =
true; # Easiest to use and most distros use this by default.
# Set your time zone. # Set your time zone.
time.timeZone = "Europe/Berlin"; time.timeZone = "Europe/Berlin";
@ -80,7 +81,7 @@
#services.xserver.desktopManager.gnome.enable = true; #services.xserver.desktopManager.gnome.enable = true;
#services.xserver.displayManager.defaultSession = "plasmawayland"; #services.xserver.displayManager.defaultSession = "plasmawayland";
#services.xserver.videoDrivers = ["nvidia"]; #services.xserver.videoDrivers = ["nvidia"];
services.blueman.enable = true; services.blueman.enable = true;
# Configure keymap in X11 # Configure keymap in X11
@ -123,37 +124,34 @@
# Define a user account. Don't forget to set a password with passwd. # Define a user account. Don't forget to set a password with passwd.
users.users.xqtc = { users.users.xqtc = {
isNormalUser = true; isNormalUser = true;
extraGroups = [ "wheel" "libvirtd" ]; # Enable sudo for the user. extraGroups = ["wheel" "libvirtd"]; # Enable sudo for the user.
packages = with pkgs; [ packages = with pkgs; [nushell clamtk];
nushell
clamtk
];
shell = pkgs.nushell; shell = pkgs.nushell;
}; };
# List packages installed in system profile. To search, run: # List packages installed in system profile. To search, run:
# $ nix search wget # $ nix search wget
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
wget wget
#git #git
neovim neovim
gcc13 gcc13
cargo cargo
cargo-generate cargo-generate
sway sway
gnome3.adwaita-icon-theme gnome3.adwaita-icon-theme
glib glib
#swaylock #swaylock
swaylock-effects swaylock-effects
tofi tofi
waybar waybar
wl-clipboard wl-clipboard
wdisplays wdisplays
#qemu_full #qemu_full
gnomeExtensions.blur-my-shell gnomeExtensions.blur-my-shell
surrealdb surrealdb
zathura zathura
]; ];
# Some programs need SUID wrappers, can be configured further or are # Some programs need SUID wrappers, can be configured further or are
@ -163,7 +161,7 @@
enable = true; enable = true;
enableSSHSupport = true; enableSSHSupport = true;
}; };
services.udev.packages = [ pkgs.yubikey-personalization ]; services.udev.packages = [pkgs.yubikey-personalization];
services.pcscd.enable = true; services.pcscd.enable = true;
programs.dconf.enable = true; programs.dconf.enable = true;
@ -190,20 +188,19 @@
#]; #];
services.resolved = { services.resolved = {
enable = true; enable = true;
# #dnssec = "true"; # #dnssec = "true";
# domains = [ "~." ]; # domains = [ "~." ];
# fallbackDns = ["1.1.1.1#one.one.one.one"]; # fallbackDns = ["1.1.1.1#one.one.one.one"];
# #extraConfig = '' # #extraConfig = ''
# # MulticastDNS=yes # # MulticastDNS=yes
# #''; # #'';
}; };
#networking.wireguard.enable = true; #networking.wireguard.enable = true;
services.tailscale.enable = true; services.tailscale.enable = true;
# Open ports in the firewall. # Open ports in the firewall.
networking.firewall.allowedTCPPorts = [ 22 2234 8080 5173 ]; networking.firewall.allowedTCPPorts = [22 2234 8080 5173];
# networking.firewall.allowedUDPPorts = [ ... ]; # networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether. # Or disable the firewall altogether.
# networking.firewall.enable = false; # networking.firewall.enable = false;
@ -230,8 +227,6 @@
# #
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
system.stateVersion = "23.11"; # Did you read the comment? system.stateVersion = "23.11"; # Did you read the comment?
nix.settings.experimental-features = [ "nix-command" "flakes" ];
nix.settings.experimental-features = ["nix-command" "flakes"];
} }

View file

@ -1,29 +1,31 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
]; pkgs,
modulesPath,
...
}: {
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" ]; boot.initrd.availableKernelModules = ["xhci_pci" "nvme" "usb_storage" "sd_mod"];
boot.initrd.kernelModules = [ "dm-snapshot" ]; boot.initrd.kernelModules = ["dm-snapshot"];
boot.kernelModules = [ ]; boot.kernelModules = [];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/a73b1d2a-cdeb-40e7-9200-b6243aad03e0"; device = "/dev/disk/by-uuid/a73b1d2a-cdeb-40e7-9200-b6243aad03e0";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/AA05-0A9A"; device = "/dev/disk/by-uuid/AA05-0A9A";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = [ ]; swapDevices = [];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's # (the default) this is the recommended approach. When using systemd-networkd it's
@ -35,5 +37,6 @@
# networking.interfaces.wwp0s20f0u6.useDHCP = lib.mkDefault true; # networking.interfaces.wwp0s20f0u6.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.intel.updateMicrocode =
lib.mkDefault config.hardware.enableRedistributableFirmware;
} }

View file

@ -1,16 +1,20 @@
{ config, inputs, lib, pkgs, ... }:
{ {
imports = config,
[ # Include the results of the hardware scan. inputs,
./hardware-configuration.nix lib,
../../modules/home-manager.nix pkgs,
../../common ...
inputs.nixos-hardware.nixosModules.common-cpu-intel }: {
../gc.nix imports = [
]; # Include the results of the hardware scan.
./hardware-configuration.nix
../../modules/home-manager.nix
../../common
inputs.nixos-hardware.nixosModules.common-cpu-intel
../gc.nix
];
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
nix.settings.experimental-features = [ "nix-command" "flakes" ]; nix.settings.experimental-features = ["nix-command" "flakes"];
# Use the systemd-boot EFI boot loader. # Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
@ -20,7 +24,8 @@
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
#networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. #networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
nixpkgs.config.packageOverrides = pkgs: { nixpkgs.config.packageOverrides = pkgs: {
intel-vaapi-driver = pkgs.intel-vaapi-driver.override { enableHybridCodec = true; }; intel-vaapi-driver =
pkgs.intel-vaapi-driver.override {enableHybridCodec = true;};
}; };
hardware.opengl = { hardware.opengl = {
enable = true; enable = true;
@ -31,7 +36,9 @@
libvdpau-va-gl libvdpau-va-gl
]; ];
}; };
environment.sessionVariables = { LIBVA_DRIVER_NAME = "iHD"; }; # Force intel-media-driver environment.sessionVariables = {
LIBVA_DRIVER_NAME = "iHD";
}; # Force intel-media-driver
# Set your time zone. # Set your time zone.
time.timeZone = "Europe/Berlin"; time.timeZone = "Europe/Berlin";
@ -51,9 +58,6 @@
# Enable the X11 windowing system. # Enable the X11 windowing system.
#services.xserver.enable = true; #services.xserver.enable = true;
# Configure keymap in X11 # Configure keymap in X11
services.xserver.xkb.layout = "us"; services.xserver.xkb.layout = "us";
# services.xserver.xkb.options = "eurosign:e,caps:escape"; # services.xserver.xkb.options = "eurosign:e,caps:escape";
@ -71,10 +75,8 @@
# Define a user account. Don't forget to set a password with passwd. # Define a user account. Don't forget to set a password with passwd.
users.users.xqtc = { users.users.xqtc = {
isNormalUser = true; isNormalUser = true;
extraGroups = [ "wheel" ]; # Enable sudo for the user. extraGroups = ["wheel"]; # Enable sudo for the user.
packages = with pkgs; [ packages = with pkgs; [tree];
tree
];
shell = pkgs.nushell; shell = pkgs.nushell;
}; };
@ -96,7 +98,7 @@
networking.resolvconf.enable = false; networking.resolvconf.enable = false;
services.resolved.enable = true; services.resolved.enable = true;
services.transmission = { services.transmission = {
enable = true; enable = true;
user = "xqtc"; user = "xqtc";
@ -108,9 +110,8 @@
rpc-bind-address = "0.0.0.0"; rpc-bind-address = "0.0.0.0";
rpc-whitelist-enabled = "false"; rpc-whitelist-enabled = "false";
rpc-authentication-required = "true"; rpc-authentication-required = "true";
rpc-username = "xqtc"; rpc-username = "xqtc";
rpc-password = "Klavier2016"; rpc-password = "Klavier2016";
}; };
}; };
@ -149,7 +150,7 @@
services.openssh.enable = true; services.openssh.enable = true;
# Open ports in the firewall. # Open ports in the firewall.
networking.firewall.allowedTCPPorts = [ 22 8096 9091 5001 ]; networking.firewall.allowedTCPPorts = [22 8096 9091 5001];
# networking.firewall.allowedUDPPorts = [ ... ]; # networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether. # Or disable the firewall altogether.
# networking.firewall.enable = false; # networking.firewall.enable = false;
@ -176,6 +177,4 @@
# #
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
system.stateVersion = "23.11"; # Did you read the comment? system.stateVersion = "23.11"; # Did you read the comment?
} }

View file

@ -1,29 +1,40 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
]; pkgs,
modulesPath,
...
}: {
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "firewire_ohci" "usbhid" "usb_storage" "sd_mod" "sdhci_pci" ]; boot.initrd.availableKernelModules = [
boot.initrd.kernelModules = [ ]; "xhci_pci"
boot.kernelModules = [ "kvm-intel" "wl" ]; "ehci_pci"
boot.extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ]; "ahci"
"firewire_ohci"
"usbhid"
"usb_storage"
"sd_mod"
"sdhci_pci"
];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-intel" "wl"];
boot.extraModulePackages = [config.boot.kernelPackages.broadcom_sta];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/7317806c-aa54-460c-b094-18104496d245"; device = "/dev/disk/by-uuid/7317806c-aa54-460c-b094-18104496d245";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/0AE9-6A7E"; device = "/dev/disk/by-uuid/0AE9-6A7E";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = [ ]; swapDevices = [];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's # (the default) this is the recommended approach. When using systemd-networkd it's
@ -33,5 +44,6 @@
# networking.interfaces.enp1s0f0.useDHCP = lib.mkDefault true; # networking.interfaces.enp1s0f0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.intel.updateMicrocode =
lib.mkDefault config.hardware.enableRedistributableFirmware;
} }

View file

@ -1,14 +1,20 @@
{lib, inputs, ...}: { {
imports = [ inputs.home-manager.nixosModules.home-manager ]; lib,
inputs,
...
}: {
imports = [inputs.home-manager.nixosModules.home-manager];
config = { config = {
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = {inherit inputs;}; home-manager.extraSpecialArgs = {inherit inputs;};
home-manager.users.xqtc = {...}: {imports = [ home-manager.users.xqtc = {...}: {
../home imports = [
inputs.nixvim.homeManagerModules.nixvim ../home
#inputs.agenix.homeManagerModules.default inputs.nixvim.homeManagerModules.nixvim
]; }; #inputs.agenix.homeManagerModules.default
];
};
}; };
} }

View file

@ -1,13 +1,19 @@
self: super: { self: super: {
util = rec { util = rec {
dirEntries = path: builtins.attrNames (builtins.readDir path); dirEntries = path: builtins.attrNames (builtins.readDir path);
mapHosts = f: builtins.map f (dirEntries ../hosts); mapHosts = f: builtins.map f (dirEntries ../hosts);
mapHostAttrs = key_f: val_f: builtins.listToAttrs (mapHosts (host: {name = key_f host; value = val_f host;})); mapHostAttrs = key_f: val_f:
mapObjKeys = obj: f: builtins.map f (builtins.attrNames obj); builtins.listToAttrs (mapHosts (host: {
mapKeys = obj: f: builtins.map f obj; name = key_f host;
nixFilesIn = path: builtins.map value = val_f host;
(e: import (path + /${e})) }));
(builtins.filter (x: (builtins.match ".*\\.nix$" x) != null) (dirEntries path)); mapObjKeys = obj: f: builtins.map f (builtins.attrNames obj);
without = exclusions: list: builtins.filter (x: !builtins.elem x exclusions) list; mapKeys = obj: f: builtins.map f obj;
}; nixFilesIn = path:
builtins.map (e: import (path + /${e}))
(builtins.filter (x: (builtins.match ".*\\.nix$" x) != null)
(dirEntries path));
without = exclusions: list:
builtins.filter (x: !builtins.elem x exclusions) list;
};
} }