Merge branch 'main' of https://git.wieerwill.dev/wieerwill/nix-home-manager
This commit is contained in:
commit
5c3a992f34
180
firefox.nix
Normal file
180
firefox.nix
Normal 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"
|
||||
# ];
|
||||
#};
|
||||
};
|
||||
|
||||
}
|
22
fonts.nix
22
fonts.nix
@ -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
|
||||
];
|
||||
|
||||
}
|
23
git.nix
23
git.nix
@ -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";
|
||||
};
|
||||
};
|
||||
|
||||
}
|
13
home.nix
13
home.nix
@ -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;
|
||||
|
49
programs.nix
49
programs.nix
@ -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
50
security.nix
Normal 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" ]
|
||||
# };
|
||||
#};
|
||||
|
||||
}
|
26
sway.nix
26
sway.nix
@ -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";
|
||||
};
|
||||
};
|
||||
|
||||
}
|
77
terminal.nix
77
terminal.nix
@ -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;
|
||||
};
|
||||
|
||||
}
|
51
vim.nix
51
vim.nix
@ -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
92
vscode.nix
Normal 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
|
||||
];
|
||||
};
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user