Compare commits

...

12 commits

7 changed files with 150 additions and 70 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
ssh.nix

12
flake.lock generated
View file

@ -28,11 +28,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1779604987, "lastModified": 1780816331,
"narHash": "sha256-ZQ5z+fVhxYKtIFwtqGp5O0PD84BM1riASvqDaN5Xs+s=", "narHash": "sha256-0BYqs8yKWkOz2Q7+SP18N5E5gmDKSo6LSxIVIa0wWes=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nix-index-database", "repo": "nix-index-database",
"rev": "8fba98c80b48fa013820e0163c5096922fea4ddd", "rev": "1a2ea89c917781e88508d9fd2b507f2d2a0e173c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -43,11 +43,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1779467186, "lastModified": 1780952837,
"narHash": "sha256-nOesoDCiXcUftqbRBMz9tt4blI5PvljMWbm3kuCA+0s=", "narHash": "sha256-Fwd1+spDtQ0hDyBwme6ufG3n4mY0UrjjFdYHv+G/Hds=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "b77b3de8775677f84492abe84635f87b0e153f0f", "rev": "e820eb4a444b46a19b2e03e8dfd2359439ff30fe",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -1,5 +1,7 @@
/* See LICENSE file for copyright and license details. */ /* See LICENSE file for copyright and license details. */
#include <X11/XF86keysym.h>
/* appearance */ /* appearance */
static const unsigned int borderpx = 1; /* border pixel of windows */ static const unsigned int borderpx = 1; /* border pixel of windows */
static const unsigned int snap = 32; /* snap pixel */ static const unsigned int snap = 32; /* snap pixel */
@ -60,42 +62,49 @@ static const Layout layouts[] = {
static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */ static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */
static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL }; static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL };
static const char *termcmd[] = { "alacritty", NULL }; static const char *termcmd[] = { "alacritty", NULL };
static const char *brightness[2][4] = { { "brightnessctl", "set", "5%+", NULL }, { "brightnessctl", "set", "5%-", NULL } };
static const char *volume[3][5] = { { "pactl", "set-sink-volume", "@DEFAULT_SINK@", "+5%", NULL}, { "pactl", "set-sink-volume", "@DEFAULT_SINK@", "-5%", NULL}, { "pactl", "set-sink-mute", "@DEFAULT_SINK@", "toggle", NULL} };
static const Key keys[] = { static const Key keys[] = {
/* modifier key function argument */ /* modifier key function argument */
{ MODKEY, XK_p, spawn, {.v = dmenucmd } }, { MODKEY, XK_p, spawn, {.v = dmenucmd } },
{ MODKEY, XK_Return, spawn, {.v = termcmd } }, { MODKEY, XK_Return, spawn, {.v = termcmd } },
{ MODKEY, XK_b, togglebar, {0} }, { MODKEY, XK_b, togglebar, {0} },
{ MODKEY, XK_j, focusstack, {.i = +1 } }, { MODKEY, XK_j, focusstack, {.i = +1 } },
{ MODKEY, XK_k, focusstack, {.i = -1 } }, { MODKEY, XK_k, focusstack, {.i = -1 } },
{ MODKEY, XK_i, incnmaster, {.i = +1 } }, { MODKEY, XK_i, incnmaster, {.i = +1 } },
{ MODKEY, XK_d, incnmaster, {.i = -1 } }, { MODKEY, XK_d, incnmaster, {.i = -1 } },
{ MODKEY, XK_h, setmfact, {.f = -0.05} }, { MODKEY, XK_h, setmfact, {.f = -0.05} },
{ MODKEY, XK_l, setmfact, {.f = +0.05} }, { MODKEY, XK_l, setmfact, {.f = +0.05} },
{ MODKEY|ShiftMask, XK_Return, zoom, {0} }, { MODKEY|ShiftMask, XK_Return, zoom, {0} },
{ MODKEY, XK_Tab, view, {0} }, { MODKEY, XK_Tab, view, {0} },
{ MODKEY|ShiftMask, XK_c, killclient, {0} }, { MODKEY|ShiftMask, XK_c, killclient, {0} },
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, { MODKEY, XK_t, setlayout, {.v = &layouts[0]} },
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, { MODKEY, XK_f, setlayout, {.v = &layouts[1]} },
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, { MODKEY, XK_m, setlayout, {.v = &layouts[2]} },
{ MODKEY, XK_space, setlayout, {0} }, { MODKEY, XK_space, setlayout, {0} },
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} }, { MODKEY|ShiftMask, XK_space, togglefloating, {0} },
{ MODKEY, XK_0, view, {.ui = ~0 } }, { MODKEY, XK_0, view, {.ui = ~0 } },
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } }, { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },
{ MODKEY, XK_comma, focusmon, {.i = -1 } }, { MODKEY, XK_comma, focusmon, {.i = -1 } },
{ MODKEY, XK_period, focusmon, {.i = +1 } }, { MODKEY, XK_period, focusmon, {.i = +1 } },
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },
TAGKEYS( XK_1, 0) { 0, XF86XK_MonBrightnessUp, spawn, {.v = brightness[0] } },
TAGKEYS( XK_2, 1) { 0, XF86XK_MonBrightnessDown, spawn, {.v = brightness[1] } },
TAGKEYS( XK_3, 2) { 0, XF86XK_AudioRaiseVolume, spawn, {.v = volume[0] } },
TAGKEYS( XK_4, 3) { 0, XF86XK_AudioLowerVolume, spawn, {.v = volume[1] } },
TAGKEYS( XK_5, 4) { 0, XF86XK_AudioMute, spawn, {.v = volume[2] } },
TAGKEYS( XK_6, 5) TAGKEYS( XK_1, 0)
TAGKEYS( XK_7, 6) TAGKEYS( XK_2, 1)
TAGKEYS( XK_8, 7) TAGKEYS( XK_3, 2)
TAGKEYS( XK_9, 8) TAGKEYS( XK_4, 3)
{ MODKEY|ShiftMask, XK_q, quit, {0} }, TAGKEYS( XK_5, 4)
TAGKEYS( XK_6, 5)
TAGKEYS( XK_7, 6)
TAGKEYS( XK_8, 7)
TAGKEYS( XK_9, 8)
{ MODKEY|ShiftMask, XK_q, quit, {0} },
}; };
/* button definitions */ /* button definitions */

View file

@ -17,8 +17,36 @@
hardware.bluetooth = { hardware.bluetooth = {
enable = true; enable = true;
powerOnBoot = false; powerOnBoot = true;
settings = {
General = {
Name = "Hello";
ControllerMode = "dual";
FastConnectable = "true";
Experimental = "true";
};
Policy = {
AutoEnable = "true";
};
};
}; };
services.blueman.enable = true;
hardware.enableAllFirmware = true;
# boot.kernelPackages = pkgs.linuxPackages_latest;
boot.kernelPackages = pkgs.linuxPackagesFor (
pkgs.linux_latest.override {
argsOverride = rec {
version = "7.0.6";
modDirVersion = "7.0.6";
src = pkgs.fetchurl {
url = "mirror://kernel/linux/kernel/v7.x/linux-${version}.tar.xz";
sha256 = "08vm18wx6399phzgr3wz94yga3ab4fyca79445ygvbspm904996b";
};
};
}
);
# Bootloader. # Bootloader.
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
@ -28,6 +56,9 @@
"/dev/disk/by-uuid/1dfcf980-6806-4f69-bd86-ee87c904c04b"; "/dev/disk/by-uuid/1dfcf980-6806-4f69-bd86-ee87c904c04b";
networking.hostName = "fw"; # Define your hostname. networking.hostName = "fw"; # Define your hostname.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
#networking.extraHosts = ''
# 65.109.157.161 wstn.de
#'';
# Configure network proxy if necessary # Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/"; # networking.proxy.default = "http://user:password@proxy:port/";
@ -64,18 +95,18 @@
variant = ""; variant = "";
}; };
services.xserver.windowManager.dwm = { #services.xserver.windowManager.dwm = {
enable = true; # enable = true;
package = pkgs.dwm.overrideAttrs { # package = pkgs.dwm.overrideAttrs {
src = ./config/dwm; # src = ./config/dwm;
}; # };
}; #};
# Enable the KDE Plasma Desktop Environment. # Enable the KDE Plasma Desktop Environment.
# services.displayManager.sddm.enable = true; services.displayManager.sddm.enable = true;
# services.desktopManager.plasma6.enable = true; services.desktopManager.plasma6.enable = true;
services.displayManager.ly.enable = true; #services.displayManager.ly.enable = true;
# Enable CUPS to print documents. # Enable CUPS to print documents.
services.printing.enable = true; services.printing.enable = true;
@ -106,6 +137,9 @@
extraGroups = [ extraGroups = [
"networkmanager" "networkmanager"
"wheel" "wheel"
"libvirtd"
"docker"
"video"
]; ];
packages = with pkgs; [ ]; packages = with pkgs; [ ];
}; };
@ -124,8 +158,51 @@
keepassxc keepassxc
nextcloud-client nextcloud-client
dmenu dmenu
arandr
brave
pavucontrol
signal-desktop
simplex-chat-desktop
ayugram-desktop
dnsmasq
file
gnumake
rustdesk
nmap
usbutils
brightnessctl
pulseaudio
moreutils
spacer
yubioath-flutter
slack
mpv
netbird-ui
python3
]; ];
virtualisation.libvirtd.enable = true;
virtualisation.docker = {
enable = true;
package = pkgs.docker_29;
};
programs.virt-manager.enable = true;
programs.fuse.userAllowOther = true;
services.pcscd.enable = true;
services.netbird.enable = true;
#services.netbird.clients.wt0 = {
# login = {
# enable = true;
# #setupKeyFile = /home/tsi/.config/netbird/setup-key;
# };
# port = 51821;
# ui.enable = true;
# #openFirewall = true;
# #oepnInternalFirewall = true;
#};
# Some programs need SUID wrappers, can be configured further or are # Some programs need SUID wrappers, can be configured further or are
# started in user sessions. # started in user sessions.
# programs.mtr.enable = true; # programs.mtr.enable = true;
@ -143,7 +220,7 @@
# networking.firewall.allowedTCPPorts = [ ... ]; # networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ]; # networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether. # Or disable the firewall altogether.
# networking.firewall.enable = false; networking.firewall.enable = false;
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # settings for stateful data, like file locations and database versions

View file

@ -3,6 +3,9 @@
{ {
programs.bash = { programs.bash = {
enable = true; enable = true;
initExtra = ''
xset r rate 200 60
'';
shellAliases = { shellAliases = {
rb = "sudo nixos-rebuild switch --flake /etc/nixos#fw"; rb = "sudo nixos-rebuild switch --flake /etc/nixos#fw";
nx = "vim ~/nixos-config/hosts/fw/configuration.nix"; nx = "vim ~/nixos-config/hosts/fw/configuration.nix";

View file

@ -0,0 +1,9 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
rustdesk
];
home.file.".config/rustdesk/RustDesk2.toml".source = ./rustdesk/RustDesk2.toml;
}

View file

@ -1,19 +0,0 @@
{ ... }:
{
services.ssh-agent.enable = true;
home.sessionVariables = {
SSH_AUTH_SOCK = "$XDG_RUNTIME_DIR/ssh-agent";
};
programs.ssh = {
enable = true;
enableDefaultConfig = false;
matchBlocks = {
"*" = {
identitiesOnly = true;
};
};
};
}