This commit is contained in:
WieErWill 2025-05-24 00:12:17 +02:00
commit 5c3a992f34
10 changed files with 542 additions and 51 deletions

180
firefox.nix Normal file
View File

@ -0,0 +1,180 @@
{ config, pkgs, lib, ... }:
{
programs.firefox = {
enable = true;
policies = {
DisablePocket = true;
DisplayBookmarksToolbar = true;
DisableFirefoxStudies = true;
DisableTelemetry = true;
PasswordManagerEnabled = false;
FirefoxHome = {
Search = true;
Pocket = false;
Snippets = false;
TopSites = false;
Highlights = false;
SponsoredPocket = false;
SponsoredTopSites = false;
};
EnableTrackingProtection = {
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
ExtensionSettings = {
"jid1-MnnxcxisBPnSXQ@jetpack" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/privacy-badger17/latest.xpi";
installation_mode = "force_installed";
};
"firefox@ghostery.com" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/ghostery/latest.xpi";
installation_mode = "force_installed";
};
"uBlock0@raymondhill.net" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
installation_mode = "force_installed";
};
"{446900e4-71c2-419f-a6a7-df9c091e268b}" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/bitwarden-password-manager/latest.xpi";
installation_mode = "force_installed";
};
};
};
profiles = {
Personal = {
id = 0;
search = {
force = true;
engines = {
"Nix Packages" = {
urls = [
{
template = "https://search.nixos.org/packages";
params = [
{
name = "query";
value = "{searchTerms}";
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@np" ];
}
];
};
"Nix Options" = {
urls = [
{
template = "https://search.nixos.org/options";
params = [
{
name = "query";
value = "{searchTerms}";
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@no" ];
}
];
};
};
};
bookmarks = [
{
name = "Toolbar";
toolbar = true;
bookmarks = [
{
name = "Development";
bookmarks = [
{
name = "Web";
bookmarks = [
{
name = "TypeScript docs";
url = "https://www.typescriptlang.org/docs/";
}
];
}
{
name = "Typst";
bookmarks = [
{
name = "Typst docs";
url = "https://typst.app/docs/";
}
];
}
{
name = "Nix";
bookmarks = [
{
name = "Nix(OS) manual (stable)";
url = "https://nixos.org/manual/nixos/stable/";
}
{
name = "Home manager options";
url = "https://nix-community.github.io/home-manager/options.xhtml";
}
{
name = "Noogle";
url = "https://noogle.dev/";
}
{
name = "Nixpkgs";
url = "https://github.com/nixos/nixpkgs";
}
];
}
{
name = "GitHub";
url = "https://github.com/";
}
];
}
{
name = "Radio";
bookmarks = [
{
name = "Meshtastic client";
url = "https://client.meshtastic.org/";
}
{
name = "Meshmap";
url = "https://meshmap.net";
}
];
}
];
}
{
name = "Entertainment";
bookmarks = [
{
name = "YouTube";
url = "https://youtube.com/";
}
];
}
];
};
};
};
home = {
sessionVariables.BROWSER = "firefox";
#persistence."/persist/home/wieerwill" = {
# directories = [
# ".mozilla/firefox"
# ];
#};
};
}

View File

@ -1,10 +1,30 @@
{ config, pkgs, lib, ... }:
{
# Configure fonts
fonts = {
fontconfig = {
enable = true;
defaultFonts = {
emoji = ["emojione"];
monospace = ["0xproto"];
sansSerif = ["open-dyslexic"];
serif = ["open-dyslexic"];
};
};
};
}
home.packages = with pkgs; [
emojione
nerd-fonts._0xproto
#nerd-fonts.anonymice
#nerd-fonts.atkynson-mono
#nerd-fonts.code-new-roman
nerd-fonts.droid-sans-mono
nerd-fonts.hack
nerd-fonts.noto
nerd-fonts.open-dyslexic
nerd-fonts.symbols-only
nerd-fonts.ubuntu
];
}

25
git.nix
View File

@ -3,12 +3,25 @@
programs.git = {
enable = true;
userName = "wieerwill";
userEmail = "robert.jeutter@gmx.de";
userName = "wie" + "erwill";
userEmail = "robert"+ ".jeutter@" + "gmx.de";
lfs.enable = true;
aliases = { };
#signing = {
# key = "ssh-ed25519 ...";
# signByDefault = true;
#};
extraConfig = {
credential.helper = "${
pkgs.git.override { withLibsecret = true; }
}/bin/git-credential-libsecret";
#gpg = {
# format = "ssh";
#};
init.defaultBranch = "main";
push.autoSetupRemote = true;
credential.helper = "libsecret";
#credential.helper = "${
# pkgs.git.override { withLibsecret = true; }
# }/bin/git-credential-libsecret";
};
};
}
}

View File

@ -1,24 +1,25 @@
{ config, pkgs, lib, ... }:
let
in
{
imports = [
./firefox.nix
./fonts.nix
./git.nix
./programs.nix
./security.nix
./sway.nix
./terminal.nix
./vim.nix
./vscode.nix
];
# Home Manager needs a bit of information about you and the paths it should
# manage.
# Home Manager needs a bit of information about you
# and the paths it should manage.
home = {
username = "wieerwill";
homeDirectory = "/home/wieerwill";
enableNixpkgsReleaseCheck = false;
stateVersion = "24.05"; # Please read the comment before changing.
stateVersion = "24.05"; # read DOCs before changing.
file = {
# ".screenrc".source = dotfiles/screenrc;

View File

@ -1,30 +1,28 @@
{ config, pkgs, lib, ... }:
{
# The home.packages option allows you to install Nix packages into your
# environment.
# The home.packages option allows you to install
# Nix packages into your environment.
home.packages = with pkgs; [
# List of programs
thunderbird
#signal-desktop
vscodium # ide
vlc # video player
keepassxc # password manager
alacritty # terminal emulator
#logseq # note taking organization
okular # pdf viewer
firefox # browser
borgbackup # system/data bakups
filezilla # ftp client
#inetutils # ftp cli
discord
# utility
ranger
#ranger
vimiv-qt
zip
unzip
htop
btop
signal-desktop
#vscodium
vlc
keepassxc
logseq
okular
#firefox
borgbackup
discord
# utility
pulsemixer
brightnessctl
gammastep # color temperature
@ -32,7 +30,7 @@
xwayland
grim # screenshot functionality
slurp # screenshot functionality
wl-clipboard # wl-copy and wl-paste for copy/paste from stdin / stdout
wl-clipboard # copy/paste from stdin / stdout
mako # notification system developed by swaywm maintainer
# secret management
@ -42,15 +40,8 @@
# steam deck touch compability in non-steam games
#caribou
#evtest # for input key testing
# # It is sometimes useful to fine-tune packages, for example, by applying
# # overrides. You can do that directly here, just don't forget the
# # parentheses. Maybe you want to install Nerd Fonts with a limited number of
# # fonts?
#(pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
nerd-fonts.fantasque-sans-mono
nerd-fonts.droid-sans-mono
nerd-fonts.jetbrains-mono
nerd-fonts.hack
];
programs.direnv.enable = true;
}

50
security.nix Normal file
View File

@ -0,0 +1,50 @@
{ config, pkgs, lib, ... }:
{
#networking.firewall = {
# enable = true;
# allowedTCPPorts = [ 22 ];
#};
#services.fail2ban = {
# enable = true;
# maxretry = 3; # Ban IP after 3 failures
# bantime = "24h"; # Ban IPs for one day on the first ban
# bantime-increment = {
# enable = true; # increment of bantime after each violation
# formula = "ban.Time * math.exp(float(ban.Count+1)*banFactor)/math.exp(1*banFactor)";
# multipliers = "1 2 4 8 16 32 64";
# maxtime = "168h"; # Do not ban for more than 1 week
# overalljails = true; # bantime based on all violations
# };
#};
programs.gpg = {
enable = true;
mutableKeys = true; # allow changes in keys or trust
mutableTrust = true;
#publicKeys = [
# {
# source = ""; #./path/to/key.a;
# trust = "ultimate";
# }
#];
};
programs.ssh = {
enable = true;
addKeysToAgent = "yes"; # let home manager manage ssh keys
};
#services.openssh = {
# enable = true;
# ##Ports = [ 5432 ];
# settings = {
# PasswordAuthentication = false;
# KbdInteractiveAuthentication = false;
# PermitRootLogin = "no";
# #AllowUsers = [ "wieerwill" ]
# };
#};
}

View File

@ -3,7 +3,7 @@
let
# Define variables for your workspaces and displays
display1 = "card1-eDP-1";
touchDisplay = "10248:4117:FTS3528:00_2808:1015";
touchDisplay = "10248:4117:FTS3528:00_2808:1015"; #steamdeck
workspace1 = "1:Web";
workspace2 = "2:App";
workspace3 = "3:Chat";
@ -179,4 +179,28 @@ in
};
};
};
}
services.swayidle = {
enable = true;
timeouts = [
{
timeout = 60 * 4;
command = lib.getExe config.programs.swaylock.package;
}
];
};
programs.swaylock = {
enable = true;
#package = pkgs.swaylock-effects;
settings = {
font = "hack";
screenshots = true;
clock = true;
show-failed-attempts = true;
indicator-idle-visible = true;
effect-blur = "8x5";
};
};
}

View File

@ -3,5 +3,82 @@
programs.alacritty = {
enable = true;
settings = {
font.normal = { family = "hack"; style = "Regular"; };
size = "12";
colors.primary = {
foreground = "#d8d8d8"; # RRGGBB
background = "#181818";
dim_foreground = "#828482";
};
#shell = { program = "/bin/zsh", args = ["-l"] };
};
};
}
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
#autosuggestion.highlight = null; # Custom styles for autosuggestion highlighting
syntaxHighlighting = {
enable = true;
highlighters = [ "main" "brackets" "cursor" ];
patterns = { "rm -rf *" = "fg=white,bold,bg=red"; };
};
enableVteIntegration = true; # let the terminal track the current working directory
autocd = null; # Automatically enter into a directory if typed directly into shell.
sessionVariables = { # Environment variables that will be set for zsh session
isZSH = true;
};
oh-my-zsh = {
# enable = true;
# plugins = [
# "alias-finder" # learn alias easier
# "colorize"
# "cp"
# "direnv"
# "git"
# "git-extras"
# "git-lfs"
# "history"
# "rust"
# "ssh"
# "sudo"
# "vscode"
# "z"
# ];
# theme = "jonathan"; # "amuse"; #"robbyrussell";
};
shellAliases = {
ll = "ls -l";
edit = "sudo -e";
".." = "cd ..";
update = "sudo nixos-rebuild switch";
};
history = {
ignoreAllDups = true;
expireDuplicatesFirst = true;
ignorePatterns = ["rm *" "pkill *"];
save = 10000; # number of history lines
};
#setOptions = [
# "HIST_IGNORE_ALL_DUPS"
#];
};
programs.btop = {
enable = true;
settings = {
color_theme = "tokyo-night"; # "Default";
truecolor = true;
};
};
programs.htop = {
enable = true;
};
}

53
vim.nix
View File

@ -5,9 +5,52 @@
enable = true;
viAlias = true;
vimAlias = true;
#defaultEditor = true;
#extraConfig = ''
# set number relativenumber
#'';
};
vimdiffAlias = true;
defaultEditor = true;
extraConfig = ''
set number relativenumber
'';
plugins = let
nvim-treesitter-with-plugins = pkgs.vimPlugins.nvim-treesitter.withPlugins (treesitter-plugins:
with treesitter-plugins; [
astro
bash
c
css
cpp
dockerfile
git_config
git_rebase
gitattributes
gitcommit
gitignore
html
http
javascript
json
latex
markdown
nix
python
rust
sql
sway
typescript
vim
zig
]);
in
with pkgs.vimPlugins; [
# vim-nerdtree??
#vim-rainbrow
vim-colors-solarized
# vim-lightline
# syntastic
vim-nix
nvim-lspconfig
nvim-treesitter-with-plugins
];
};
}

92
vscode.nix Normal file
View File

@ -0,0 +1,92 @@
{ config, pkgs, lib, ... }:
{
programs.vscode = {
enable = true;
enableUpdateCheck = false;
enableExtensionUpdateCheck = false;
userSettings = {
"editor.formatOnSave" = true;
"editor.inlineSuggest.enabled" = true;
"editor.minimap.enabled" = false;
"editor.minimap.autohide" = true;
"editor.minimap.renderCharacters" = false;
"explorer.autoReveal" = false;
"explorer.excludeGitIgnore" = true;
"extensions.autoUpdate" = false;
"git.autofetch" = true;
"git.suggestSmartCommit" = false;
"git.confirmSync" = false;
"security.workspace.trust.enabled" = false;
"security.workspace.trust.untrustedFiles" = "open";
"workbench.colorTheme" = "SynthWave '84";
"workbench.iconTheme" = "material-icon-theme";
"workbench.startupEditor" = "none";
"workbench.tree.indent" = 16;
"rust-analyzer.lens.implementations.enable" = false;
"[typescript]" = {
"editor.defaultFormatter" = "esbenp.prettier-vscode";
};
"[vue]" = {
"editor.defaultFormatter" = "Vue.volar";
};
"[mdx]" = {
"editor.defaultFormatter" = "unifiedjs.vscode-mdx";
};
"[astro]" = {
"editor.defaultFormatter" = "astro-build.astro-vscode";
};
"[nix]" = {
"editor.defaultFormatter" = "jnoortheen.nix-ide";
};
};
extensions = with pkgs.vscode-extensions; [
# Nix
bbenoist.nix
jnoortheen.nix-ide
#kamadorueda.alejandra
# Rust
rust-lang.rust-analyzer
tamasfe.even-better-toml
## ? probe-rs.probe-rs-debugger
# Swellaby.vscode-rust-test-adapter
# Python
ms-python.python
ms-python.debugpy
# JS/TS
# codeandstuff.package-json-upgrade
dbaeumer.vscode-eslint
esbenp.prettier-vscode
# Vue.volar
astro-build.astro-vscode
# Misc
yzhang.markdown-all-in-one
unifiedjs.vscode-mdx
# James-Yu.latex-workshop
fill-labs.dependi
alefragnani.project-manager
foxundermoon.shell-format
usernamehw.errorlens
# Git
waderyan.gitblame
mhutchie.git-graph
donjayamanne.githistory
# felipecaputo.git-project-manager
codezombiech.gitignore
# Theme
# RobbOwen.synthwave-vscode
# PKief.material-icon-theme
];
};
}