experimenting new editor settings

This commit is contained in:
WieErWill 2025-05-22 21:07:56 +02:00
parent 94f26e3fe5
commit 85241ed529
10 changed files with 534 additions and 33 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, ... }: { config, pkgs, lib, ... }:
{ {
# Configure fonts
fonts = { fonts = {
fontconfig = { fontconfig = {
enable = true; enable = true;
defaultFonts = {
emoji = [emojione];
monospace = [nerd-fonts._0xproto];
sansSerif = [nerd-fonts.open-dyslexic];
serif = [nerd-fonts.open-dyslexic];
};
}; };
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
];
}; };
} }

23
git.nix
View File

@ -3,12 +3,25 @@
programs.git = { programs.git = {
enable = true; enable = true;
userName = "wieerwill"; userName = "wie" + "erwill";
userEmail = "robert.jeutter@gmx.de"; userEmail = "robert"+ ".jeutter@" + "gmx.de";
lfs.enable = true;
aliases = { };
signing = {
key = "ssh-ed25519 ...";
signByDefault = true;
};
extraConfig = { extraConfig = {
credential.helper = "${ gpg = {
pkgs.git.override { withLibsecret = true; } format = "ssh";
}/bin/git-credential-libsecret"; };
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, ... }: { config, pkgs, lib, ... }:
let
in
{ {
imports = [ imports = [
./firefox.nix
./fonts.nix ./fonts.nix
./git.nix ./git.nix
./programs.nix ./programs.nix
./security.nix
./sway.nix ./sway.nix
./terminal.nix ./terminal.nix
./vim.nix ./vim.nix
./vscode.nix
]; ];
# Home Manager needs a bit of information about you and the paths it should # Home Manager needs a bit of information about you
# manage. # and the paths it should manage.
home = { home = {
username = "wieerwill"; username = "wieerwill";
homeDirectory = "/home/wieerwill"; homeDirectory = "/home/wieerwill";
enableNixpkgsReleaseCheck = false; enableNixpkgsReleaseCheck = false;
stateVersion = "24.05"; # Please read the comment before changing. stateVersion = "24.05"; # read DOCs before changing.
file = { file = {
# ".screenrc".source = dotfiles/screenrc; # ".screenrc".source = dotfiles/screenrc;

View File

@ -1,22 +1,21 @@
{ config, pkgs, lib, ... }: { 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; [ home.packages = with pkgs; [
# List of programs # List of programs
thunderbird thunderbird
signal-desktop signal-desktop
vscodium #vscodium
vlc vlc
keepassxc keepassxc
alacritty
logseq logseq
okular okular
firefox #firefox
borgbackup borgbackup
# utility # utility
htop
pulsemixer pulsemixer
brightnessctl brightnessctl
gammastep # color temperature gammastep # color temperature
@ -24,18 +23,16 @@
xwayland xwayland
grim # screenshot functionality grim # screenshot functionality
slurp # 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 mako # notification system developed by swaywm maintainer
#caribou # steam deck touch compability in non-steam games
# steam deck touch compability in non-steam games
#caribou
#evtest # for input key testing #evtest # for input key testing
# # It is sometimes useful to fine-tune packages, for example, by applying # install Nerd Fonts with a limited number of fonts
# # 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" ]; }) (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
]; ];
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 let
# Define variables for your workspaces and displays # Define variables for your workspaces and displays
display1 = "card1-eDP-1"; display1 = "card1-eDP-1";
touchDisplay = "10248:4117:FTS3528:00_2808:1015"; touchDisplay = "10248:4117:FTS3528:00_2808:1015"; #steamdeck
workspace1 = "1:Web"; workspace1 = "1:Web";
workspace2 = "2:App"; workspace2 = "2:App";
workspace3 = "3:Chat"; 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,84 @@
programs.alacritty = { programs.alacritty = {
enable = true; 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;
autosuggestions.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
};
ohMyZsh = {
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
};
histSize = 10000;
histFile = "$HOME/.zsh_history";
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; enable = true;
viAlias = true; viAlias = true;
vimAlias = true; vimAlias = true;
#defaultEditor = true; vimdiffAlias = true;
#extraConfig = '' defaultEditor = true;
# set number relativenumber 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
];
};
} }

94
vscode.nix Normal file
View File

@ -0,0 +1,94 @@
{ config, pkgs, lib, ... }:
{
programs.vscode = {
enable = true;
profiles.default = {
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
];
};
};
}