Merge branch 'main' of github.com:fwastring/nix

This commit is contained in:
fwastring 2025-04-07 14:21:35 +02:00
commit 82a0300eec
19 changed files with 1047 additions and 565 deletions

View file

@ -6,10 +6,11 @@
config,
pkgs,
...
}: {
imports = [
# ../shared/vial.nix
];
}:
{
imports = [
# ../shared/vial.nix
];
nixpkgs = {
overlays = [
];
@ -18,27 +19,26 @@
};
};
nix.registry = (lib.mapAttrs (_: flake: {inherit flake;})) ((lib.filterAttrs (_: lib.isType "flake")) inputs);
nix.nixPath = ["/etc/nix/path"];
nix.registry = (lib.mapAttrs (_: flake: { inherit flake; })) (
(lib.filterAttrs (_: lib.isType "flake")) inputs
);
nix.nixPath = [ "/etc/nix/path" ];
users.defaultUserShell = pkgs.bash;
documentation.man.generateCaches = false;
programs.fish.enable = true;
programs.bash = {
interactiveShellInit = ''
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
then
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
fi
'';
};
environment.etc =
lib.mapAttrs'
(name: value: {
name = "nix/path/${name}";
value.source = value.flake;
})
config.nix.registry;
programs.bash = {
interactiveShellInit = ''
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
then
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
fi
'';
};
environment.etc = lib.mapAttrs' (name: value: {
name = "nix/path/${name}";
value.source = value.flake;
}) config.nix.registry;
nix.settings = {
experimental-features = "nix-command flakes";
@ -47,57 +47,56 @@
virtualisation.docker = {
enable = true;
liveRestore = false;
liveRestore = false;
};
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services = {
tailscale = {
enable = true;
};
pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
};
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services = {
tailscale = {
enable = true;
};
pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
};
hardware = {
bluetooth = {
enable = true;
powerOnBoot = true;
settings = {
General = {
Disable="Headset";
};
};
settings = {
General = {
Disable = "Headset";
};
};
};
};
networking.networkmanager.enable = true;
networking.nameservers = [ "8.8.8.8" ];
# networking.resolvconf.enable = pkgs.lib.mkForce false;
# networking.dhcpcd.extraConfig = "nohook resolv.conf";
# networking.networkmanager.dns = "none";
# networking.dhcpcd.extraConfig = "nohook resolv.conf";
# networking.networkmanager.dns = "none";
environment.sessionVariables = {
EDITOR = "nvim";
EDITOR = "nvim";
TERM = "xterm-256color";
};
time.timeZone = "Europe/Stockholm";
fonts.packages = with pkgs; [
(nerdfonts.override {
fonts = [
"Hack"
"FiraCode"
];
(nerdfonts.override {
fonts = [
"Hack"
"FiraCode"
];
})
];
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "sv_SE.UTF-8";
@ -112,55 +111,57 @@
};
boot.loader = {
efi = {
canTouchEfiVariables = false;
};
grub = {
efiSupport = true;
efiInstallAsRemovable = true;
device = "nodev";
};
};
efi = {
canTouchEfiVariables = false;
};
grub = {
efiSupport = true;
efiInstallAsRemovable = true;
device = "nodev";
};
};
console.keyMap = "sv-latin1";
environment.systemPackages = with pkgs; [
vim
neovim
git
openssh
rofi
];
environment.systemPackages = with pkgs; [
vim
neovim
git
openssh
rofi
(wrapHelm kubernetes-helm {
plugins = with pkgs.kubernetes-helmPlugins; [
helm-secrets
helm-diff
helm-s3
helm-git
];
})
k3sup
nixfmt-rfc-style
nixd
vault
];
services = {
# udev = {
# extraRules = ''
# KERNEL=="ttyACM0", MODE:="666"
# '';
# packages = with pkgs; [
# vial
# via
# ];
# };
picom.enable = true;
picom.enable = true;
openssh = {
enable = true;
};
strongswan = {
enable = true;
secrets = [
"ipsec.d/ipsec.nm-l2tp.secrets"
];
};
xserver = {
displayManager = {
startx.enable = true;
};
strongswan = {
enable = true;
xkb = {
layout = "se";
variant = "";
};
secrets = [
"ipsec.d/ipsec.nm-l2tp.secrets"
];
};
xserver = {
displayManager = {
startx.enable = true;
};
enable = true;
xkb = {
layout = "se";
variant = "";
};
windowManager = {
dwm = {
enable = true;
@ -170,7 +171,7 @@
locate = {
enable = true;
package = pkgs.mlocate;
localuser = null;
localuser = null;
};
blueman = {
enable = true;
@ -179,4 +180,3 @@
system.stateVersion = "23.11";
}

176
config/home-desktop.nix Normal file
View file

@ -0,0 +1,176 @@
# This is your home-manager configuration file
# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix)
{
inputs,
lib,
config,
pkgs,
myhostname,
...
}: {
imports = [
../shared/dwm.nix
../shared/vscode.nix
../shared/dmenu.nix
../shared/rofi.nix
../shared/kitty.nix
../shared/alacritty.nix
../shared/tmux.nix
../shared/vim.nix
../shared/fish.nix
../shared/git.nix
../shared/nixpkgs.nix
../shared/firefox.nix
../shared/zathura.nix
../shared/lazygit.nix
../shared/ssh.nix
../shared/aerc.nix
../shared/oh-my-posh.nix
];
nixpkgs = {
overlays = [];
config = {
allowUnfree = true;
allowUnfreePredicate = _: true;
};
};
home.packages = with pkgs; [
# System
xsel
unzip
zip
wget
alsa-utils
upower
gcc
gnumake
cmake
arion
htop
pavucontrol
procps
openssh
networkmanager
fd
bat
bluez
bluez-tools
unstable.betterlockscreen
tmux
unstable.fzf
eza
btop
thttpd
xcolor
openssl
dig
jq
# Dev
unstable.deno
unstable.hugo
unstable.logstash
ngrok
tailwindcss
nodejs_22
gh-f
gh
yarn
plantuml
go
dotnetCorePackages.sdk_8_0_3xx
templ
#Tools
qrencode
air
k9s
git
lazydocker
kubectl
#LSP
roslyn
roslyn-ls
python312Packages.python-lsp-server
yaml-language-server
nil
jdt-language-server
texlab
marksman
nodePackages_latest.bash-language-server
typescript
nodePackages_latest.typescript-language-server
nodePackages_latest.vls
nodePackages_latest.volar
lua-language-server
tree-sitter
gopls
rust-analyzer
# UI
rofi-bluetooth
pastel
imagemagick
#VPN
openvpn
networkmanagerapplet
networkmanager-l2tp
strongswan
# Display
scrot
xbanish
feh
brightnessctl
dunst
# Documents
ripgrep
grc
texliveFull
pandoc
poppler_utils
#Desktop
unstable.feishin
firefox
libreoffice
unstable.signal-desktop
pinta
zathura
vial
thunderbird
alacritty
unstable.neovim
fastfetch
lazygit
byzanz
remmina
obsidian
# Utils
speedcrunch
#Unfree
discord
slack
];
programs.home-manager.enable = true;
programs.fish.enable = true;
programs.man.generateCaches = false;
xsession.enable = true;
xsession.windowManager.command = if myhostname == "laptop" then "/home/fw/nix/.xinitrc.laptop" else if myhostname == "jobb" then "/home/fw/nix/.xinitrc.jobb" else "/home/fw/nix/.xinitrc";
home.username = "fw";
home.homeDirectory = "/home/fw";
home.stateVersion = "23.11"; # Did you read the comment?
systemd.user.startServices = "sd-switch";
}

View file

@ -7,18 +7,19 @@
pkgs,
myhostname,
...
}: {
}:
{
imports = [
../shared/dwm.nix
../shared/vscode.nix
# ../shared/dmenu.nix
# ../shared/rofi.nix
# ../shared/mpv.nix
# ../shared/rofi.nix
# ../shared/mpv.nix
../shared/kitty.nix
../shared/alacritty.nix
../shared/tmux.nix
../shared/vim.nix
../shared/fish.nix
../shared/fish.nix
../shared/git.nix
../shared/nixpkgs.nix
../shared/firefox.nix
@ -30,145 +31,142 @@
];
nixpkgs = {
overlays = [];
overlays = [ ];
config = {
allowUnfree = true;
allowUnfreePredicate = _: true;
};
};
home.packages = with pkgs; [
# System
# System
xsel
unzip
zip
zip
wget
alsa-utils
upower
gcc
gnumake
cmake
arion
cmake
arion
htop
pavucontrol
procps
procps
openssh
networkmanager
fd
bat
bluez
bluez-tools
unstable.betterlockscreen
# tmux
fzf
eza
btop
thttpd
xcolor
openssl
dig
jq
wireguard-tools
acpi
light
fd
bat
bluez
bluez-tools
unstable.betterlockscreen
# tmux
fzf
eza
btop
thttpd
xcolor
openssl
dig
jq
wireguard-tools
acpi
light
# Dev
unstable.fluxcd
argocd
gh
unstable.deno
unstable.hugo
unstable.logstash
ngrok
tailwindcss
nodejs_23
yarn
plantuml
go
# dotnetCorePackages.sdk_8_0_3xx
dotnetCorePackages.sdk_9_0_1xx
templ
goa
azuredatastudio
mdbtools
prettierd
# Dev
unstable.fluxcd
argocd
gh
unstable.deno
unstable.hugo
unstable.logstash
ngrok
tailwindcss
nodejs_23
yarn
plantuml
go
templ
goa
azuredatastudio
mdbtools
prettierd
#Tools
qrencode
air
k9s
#Tools
qrencode
air
unstable.k9s
git
lazydocker
kubectl
lazydocker
kubectl
#LSP
# roslyn
roslyn-ls
dockerfile-language-server-nodejs
docker-compose-language-service
bash-language-server
python312Packages.python-lsp-server
yaml-language-server
lua-language-server
typescript
#LSP
# roslyn
roslyn-ls
dockerfile-language-server-nodejs
docker-compose-language-service
bash-language-server
python312Packages.python-lsp-server
yaml-language-server
lua-language-server
typescript
nil
jdt-language-server
texlab
marksman
tree-sitter
vue-language-server
typescript-language-server
gopls
rust-analyzer
jdt-language-server
texlab
marksman
tree-sitter
vue-language-server
typescript-language-server
gopls
rust-analyzer
# UI
# rofi-bluetooth
pastel
imagemagick
# UI
# rofi-bluetooth
pastel
imagemagick
#VPN
openvpn
networkmanagerapplet
networkmanager-l2tp
strongswan
networkmanager_strongswan
networkmanager_strongswan
# Display
# Display
scrot
xbanish
feh
brightnessctl
dunst
# Documents
ripgrep
grc
texliveFull
pandoc
poppler_utils
# Documents
ripgrep
grc
texliveFull
pandoc
poppler_utils
#Desktop
fluent-reader
unstable.feishin
libreoffice
unstable.signal-desktop
pinta
#Desktop
fluent-reader
unstable.feishin
libreoffice
unstable.signal-desktop
pinta
zathura
vial
vial
thunderbird
alacritty
alacritty
neovim
fastfetch
lazygit
byzanz
byzanz
remmina
obsidian
obsidian
# Utils
speedcrunch
# Utils
speedcrunch
#Unfree
#Unfree
discord
slack
];
@ -177,7 +175,13 @@
programs.man.generateCaches = false;
xsession.enable = true;
xsession.windowManager.command = if myhostname == "laptop" then "/home/fw/nix/.xinitrc.laptop" else if myhostname == "jobb" then "/home/fw/nix/.xinitrc.jobb" else "/home/fw/nix/.xinitrc";
xsession.windowManager.command =
if myhostname == "laptop" then
"/home/fw/nix/.xinitrc.laptop"
else if myhostname == "jobb" then
"/home/fw/nix/.xinitrc.jobb"
else
"/home/fw/nix/.xinitrc";
home.username = "fw";
home.homeDirectory = "/home/fw";

View file

@ -1,41 +1,43 @@
{ config
, pkgs
, ...
}: {
{
config,
pkgs,
...
}:
{
# TODO: Configure your system-wide user settings (groups, etc), add more users as needed.
users = {
defaultUserShell = pkgs.bash;
groups = {
ios = {};
};
groups = {
ios = { };
};
users = {
fw = {
initialPassword = "password";
isNormalUser = true;
description = "Fredrik Wastring";
extraGroups = [
"networkmanager"
extraGroups = [
"networkmanager"
"wheel"
"audio"
"audio"
"docker"
"input"
"input"
];
openssh.authorizedKeys = {
keys = [
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDALsdpwvC0w/Aj+1fWtzJyyWoUrGkdh8o2thVHeQQBNo0D7cmVberYmi4Cv9gWGX6PaElrnOl0KRdGyro2wxOYokSxgk2VgWW67BFITAQAbKyG2NhXXPbhb4jccDo7WH7TtOG8IofuJTPRu1Duda6k4RN0I0CkyAN6LGX+zy49cq0qKf9ijXYhCDYNih3+Fu/ig0aW/SYmsVoUl2VFTWdI5x5/wLvIjTEZhmAtYIeYADaLnom356cFrUysZa++FUujQAz3Ow236BvP95XZdTsqvfWNZFNIpC9VYF72JeIDCs5wDIr0GFmanF2On1nar+jJpoOE8SdHt357p5g/PqXV5TisN2xQRkqVwO9tWtMl4sF84jA4ULnY2gQWv9jErMxymUQ1IwuPUzDDlbRHCtfexAtkBy7wv6xslKAzG1QahvF/btNs5Caj3LN31rgAuxyooCbKGKTeBP3kHPKcz1iupgidfbO/QqVXBRQJTEdGyAKa8hVmLQZZPC/XUhxESAk= fw@fw-nix"
];
};
openssh.authorizedKeys = {
keys = [
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDALsdpwvC0w/Aj+1fWtzJyyWoUrGkdh8o2thVHeQQBNo0D7cmVberYmi4Cv9gWGX6PaElrnOl0KRdGyro2wxOYokSxgk2VgWW67BFITAQAbKyG2NhXXPbhb4jccDo7WH7TtOG8IofuJTPRu1Duda6k4RN0I0CkyAN6LGX+zy49cq0qKf9ijXYhCDYNih3+Fu/ig0aW/SYmsVoUl2VFTWdI5x5/wLvIjTEZhmAtYIeYADaLnom356cFrUysZa++FUujQAz3Ow236BvP95XZdTsqvfWNZFNIpC9VYF72JeIDCs5wDIr0GFmanF2On1nar+jJpoOE8SdHt357p5g/PqXV5TisN2xQRkqVwO9tWtMl4sF84jA4ULnY2gQWv9jErMxymUQ1IwuPUzDDlbRHCtfexAtkBy7wv6xslKAzG1QahvF/btNs5Caj3LN31rgAuxyooCbKGKTeBP3kHPKcz1iupgidfbO/QqVXBRQJTEdGyAKa8hVmLQZZPC/XUhxESAk= fw@fw-nix"
];
};
};
ios = {
initialPassword = "password";
isNormalUser = true;
description = "iOS Integration";
group = "ios";
openssh.authorizedKeys = {
keys = [
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDIQ9GkzI12xKZyZMmBusLw3UkxdkKEmifxTxSP74YnOXM7SknBUxkpAm0OY3wwbeF8Qht8O/mUM8x1ILpjIUPg2OZh2OslqU+slcoWAoeR8DE6hEwUIrozzlqLkL3JKIE1g2Sx7Gay7QheTJH4e51sXn15Gb3h3ByTa1LyQCWBXP4BPRs4hbVbGu0U1Qe3qav+ubnEthmLbaE+jS6SZb0TkQqKFJIq3skCRI59AkWTCOywhB3CpwP05y/to4EKUDYttf8r8pyfvJ7WMTYHFPCL3uVnutAuIVScHchMwt52kRHD8sZR2/vOM8tOeWB3zIo2XYyCIKlZjm318unqlLv8ol3sfzsSHcEvXLzXxF66/NmpTfjtlnze6hE/GxvjxC4zM7oCf/7o0UNq8VrQto0qUScjqgv5uP7GOitx2dVMGjFfGmXngeBPEIbN+WrPFPUrzylZP5tivrnyzamm7SlGUMlvtKm/G5vurxjtrvpvLKDPvKLAtueTii2xViOXTxZBQw6/mvLyhIrc3+jepgUvTVyKb88Home0WPzedCWPqzkHWgo7wvh4ybZ/JDJv2Gh1vKtKPNUwUbwl2ljJ8DagHK3qxyrfVFo9b+NmR+S21RBzF8CVhP3+MVGRNtsGMxLm4GjvODpcJrCPj/5R6NAWE7sBCP63SvHaLnlaHefsHQ== ios"
];
};
openssh.authorizedKeys = {
keys = [
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDIQ9GkzI12xKZyZMmBusLw3UkxdkKEmifxTxSP74YnOXM7SknBUxkpAm0OY3wwbeF8Qht8O/mUM8x1ILpjIUPg2OZh2OslqU+slcoWAoeR8DE6hEwUIrozzlqLkL3JKIE1g2Sx7Gay7QheTJH4e51sXn15Gb3h3ByTa1LyQCWBXP4BPRs4hbVbGu0U1Qe3qav+ubnEthmLbaE+jS6SZb0TkQqKFJIq3skCRI59AkWTCOywhB3CpwP05y/to4EKUDYttf8r8pyfvJ7WMTYHFPCL3uVnutAuIVScHchMwt52kRHD8sZR2/vOM8tOeWB3zIo2XYyCIKlZjm318unqlLv8ol3sfzsSHcEvXLzXxF66/NmpTfjtlnze6hE/GxvjxC4zM7oCf/7o0UNq8VrQto0qUScjqgv5uP7GOitx2dVMGjFfGmXngeBPEIbN+WrPFPUrzylZP5tivrnyzamm7SlGUMlvtKm/G5vurxjtrvpvLKDPvKLAtueTii2xViOXTxZBQw6/mvLyhIrc3+jepgUvTVyKb88Home0WPzedCWPqzkHWgo7wvh4ybZ/JDJv2Gh1vKtKPNUwUbwl2ljJ8DagHK3qxyrfVFo9b+NmR+S21RBzF8CVhP3+MVGRNtsGMxLm4GjvODpcJrCPj/5R6NAWE7sBCP63SvHaLnlaHefsHQ== ios"
];
};
};
};
};