ADD: qemu config

This commit is contained in:
Lomig 2025-08-21 16:21:54 +02:00
parent ca0610b675
commit 79917facf3
6 changed files with 201 additions and 143 deletions

43
apps/qemu.nix Normal file
View file

@ -0,0 +1,43 @@
{ config, pkgs, ... }:
{
boot.kernelModules = [ "tun" ];
environment.systemPackages = with pkgs; [
qemu_kvm
];
services.spice-vdagentd.enable = true;
virtualisation.libvirtd = {
enable = true ;
qemu = {
swtpm.enable = true ;
ovmf.enable = true ;
ovmf.packages = [ pkgs.OVMFFull.fd ];
runAsRoot = false ;
};
};
users.users.lomig.extraGroups = [ "libvirtd" "kvm" "input" ];
networking.firewall.allowedTCPPorts = [ 5900 5901 5902 ] ;
networking.useNetworkd = true ;
networking.useDHCP = false ;
services.resolved.enable = true ;
networking.bridges.br0.interfaces = [ "enp11s0" ];
systemd.network.networks."10-br0" = {
matchConfig.Name = "br0";
networkConfig.DHCP = "yes" ;
};
# security.wrappers.qemu-bridge-helper = {
# source = "${pkgs.qemu_kvm}/libexec/qemu-bridge-helper";
# owner = "root";
# group = "root";
# setuid = true ;
# permissions = "u+xs,g+x,o-x";
# };
environment.etc."qemu/bridge.conf".text = ''
allow br0
'';
}
# vim: set ts=2 sw=2 sts=2 et :

View file

@ -2,3 +2,4 @@
{ {
} }
# vim: set ts=2 sw=2 sts=2 et :

View file

@ -5,6 +5,7 @@
./raid.nix ./raid.nix
./bepovim.nix ./bepovim.nix
../../wm/bspwm.nix ../../wm/bspwm.nix
../../apps/qemu.nix
]; ];
nix.settings.experimental-features = ["nix-command" "flakes" ]; nix.settings.experimental-features = ["nix-command" "flakes" ];
boot.initrd.kernelModules = []; boot.initrd.kernelModules = [];

View file

@ -11,6 +11,7 @@
home.packages = with pkgs; [ home.packages = with pkgs; [
bat bat
nerd-fonts.iosevka nerd-fonts.iosevka
obsidian
telegram-desktop telegram-desktop
tree tree
fastfetch fastfetch

View file

@ -1,159 +1,165 @@
{ config, pkgs, ... }: { config, pkgs, lib, ... }:
{ {
services.xserver = { services = {
enable = true ; xserver = {
displayManager.lightdm.enable = true ; enable = true ;
windowManager.bspwm.enable = true ; displayManager = {
}; lightdm.enable = true ;
home-manager.users.lomig = { pkgs, ... }: { };
home.packages = with pkgs; [ windowManager.bspwm.enable = true ;
bspwm sxhkd xorg.xinit xterm };
alacritty rofi feh font-awesome desktopManager.gnome.enable = lib.mkForce false ;
picom xorg.xset xidlehook betterlockscreen displayManager.gdm.enable = lib.mkForce false ;
pywal16 imagemagick };
]; home-manager.users.lomig = { pkgs, ... }: {
home.packages = with pkgs; [
bspwm sxhkd xorg.xinit xterm
alacritty rofi feh font-awesome
picom xorg.xset xidlehook betterlockscreen
pywal16 imagemagick
];
xsession.enable = true ; xsession.enable = true ;
xsession.initExtra = '' xsession.initExtra = ''
xset s 300 300 xset s 300 300
xset s on xset s on
xsession s noblank xsession s noblank
xset +dpms xset +dpms
xset dpms 0 0 500 xset dpms 0 0 500
''; '';
systemd.user.services.xidlehook = { systemd.user.services.xidlehook = {
Unit.Description = "Idle actions (lock at 1m, suspend at 5m)"; Unit.Description = "Idle actions (lock at 1m, suspend at 5m)";
Service = { Service = {
ExecStart = '' ExecStart = ''
${pkgs.xidlehook}/bin/xidlehook \ ${pkgs.xidlehook}/bin/xidlehook \
--detect-sleep \ --detect-sleep \
--not-when-fullscreen \ --not-when-fullscreen \
--timer 300 "${pkgs.betterlockscreen}/bin/betterlockscreen -l dim" "" \ --timer 300 "${pkgs.betterlockscreen}/bin/betterlockscreen -l dim" "" \
--timer 500 "systemctl suspend" "" --timer 500 "systemctl suspend" ""
''; '';
Restart = "always"; Restart = "always";
}; };
Install.WantedBy = [ "graphical-session.target" ]; Install.WantedBy = [ "graphical-session.target" ];
}; };
xsession.windowManager.bspwm = { xsession.windowManager.bspwm = {
enable = true ; enable = true ;
startupPrograms = [ startupPrograms = [
"killall polybar" "killall polybar"
"setxkbmap bepovim" "setxkbmap bepovim"
"sxhkd -m 1" "sxhkd -m 1"
"xrandr \\ "xrandr \\
--output DisplayPort-1 --rate 60 --pos 0x0" --output DisplayPort-1 --rate 60 --pos 0x0"
"while pgrep -x polybar >/dev/null; do sleep 0.2; done" "while pgrep -x polybar >/dev/null; do sleep 0.2; done"
"polybar" "polybar"
"bash ~/.fehbg" "bash ~/.fehbg"
]; ];
extraConfig = '' extraConfig = ''
bspc config borderless_monocle true bspc config borderless_monocle true
bspc config gapless_monocle true bspc config gapless_monocle true
bspc config single_monocle true bspc config single_monocle true
bspc monitor -d I II III IV V VI bspc monitor -d I II III IV V VI
''; '';
}; };
services.sxhkd = { services.sxhkd = {
enable = true ; enable = true ;
extraOptions = [ "-m 1" ] ; extraOptions = [ "-m 1" ] ;
keybindings = { keybindings = {
"super + Return" = "alacritty"; "super + Return" = "alacritty";
"super + c" = "bspc node -c"; "super + c" = "bspc node -c";
"Menu" = "rofi -show drun"; "Menu" = "rofi -show drun";
"super + space" = "rofi -show drun"; "super + space" = "rofi -show drun";
# Aller au bureau ^1 .. ^6 # Aller au bureau ^1 .. ^6
"F1" = "bspc desktop -f ^1"; "F1" = "bspc desktop -f ^1";
"F2" = "bspc desktop -f ^2"; "F2" = "bspc desktop -f ^2";
"F3" = "bspc desktop -f ^3"; "F3" = "bspc desktop -f ^3";
"F4" = "bspc desktop -f ^4"; "F4" = "bspc desktop -f ^4";
"F5" = "bspc desktop -f ^5"; "F5" = "bspc desktop -f ^5";
"F6" = "bspc desktop -f ^6"; "F6" = "bspc desktop -f ^6";
# Déplacer la fenetre courante vers le bureau cible et suivre # Déplacer la fenetre courante vers le bureau cible et suivre
"shift + F1" = "bspc node -d ^1 --follow"; "shift + F1" = "bspc node -d ^1 --follow";
"shift + F2" = "bspc node -d ^2 --follow"; "shift + F2" = "bspc node -d ^2 --follow";
"shift + F3" = "bspc node -d ^3 --follow"; "shift + F3" = "bspc node -d ^3 --follow";
"shift + F4" = "bspc node -d ^4 --follow"; "shift + F4" = "bspc node -d ^4 --follow";
"shift + F5" = "bspc node -d ^5 --follow"; "shift + F5" = "bspc node -d ^5 --follow";
"shift + F6" = "bspc node -d ^6 --follow"; "shift + F6" = "bspc node -d ^6 --follow";
# Focus dans un meme bureau # Focus dans un meme bureau
"super + h" = "bspc node -f west"; "super + h" = "bspc node -f west";
"super + j" = "bspc node -f south"; "super + j" = "bspc node -f south";
"super + k" = "bspc node -f north"; "super + k" = "bspc node -f north";
"super + l" = "bspc node -f east"; "super + l" = "bspc node -f east";
# Swap la fenetre dans le bureau # Swap la fenetre dans le bureau
"super + shift + h" = "bspc node -s west"; "super + shift + h" = "bspc node -s west";
"super + shift + j" = "bspc node -s south"; "super + shift + j" = "bspc node -s south";
"super + shift + k" = "bspc node -s north"; "super + shift + k" = "bspc node -s north";
"super + shift + l" = "bspc node -s east"; "super + shift + l" = "bspc node -s east";
}; };
}; };
services.polybar = { services.polybar = {
enable = true ; enable = true ;
script = "polybar main &"; script = "polybar main &";
config = { config = {
"bar/main" = { "bar/main" = {
width = "100%"; width = "100%";
height = "28"; height = "28";
background = "\\\${colors.background}"; background = "\\\${colors.background}";
foreground = "\\\${colors.foreground}"; foreground = "\\\${colors.foreground}";
font-0 = "Iosevka Nerd Font:size=10;2"; font-0 = "Iosevka Nerd Font:size=10;2";
font-1 = "Font Awesome 6 Free:style=Solid:pixelsize=10;2"; font-1 = "Font Awesome 6 Free:style=Solid:pixelsize=10;2";
modules-left = "bspwm"; modules-left = "bspwm";
modules-center = "date"; modules-center = "date";
modules-right = "pulseaudio memory cpu"; modules-right = "pulseaudio memory cpu";
}; };
"module/bspwm" = { "module/bspwm" = {
type = "internal/bspwm"; type = "internal/bspwm";
label-focused = "%name%"; label-focused = "%name%";
label-focused-background = "\\\${colors.primary}"; label-focused-background = "\\\${colors.primary}";
label-focused-foreground = "#e6e0de"; label-focused-foreground = "#e6e0de";
label-focused-padding = 2; label-focused-padding = 2;
label-occupied = "%name%"; label-occupied = "%name%";
label-occupied-padding = 2; label-occupied-padding = 2;
label-urgent = "%name%"; label-urgent = "%name%";
label-urgent-background = "#e42127"; label-urgent-background = "#e42127";
label-urgent-foreground = "#ffffff"; label-urgent-foreground = "#ffffff";
label-empty = "%name%"; label-empty = "%name%";
label-empty-foreground = "#645d56"; label-empty-foreground = "#645d56";
label-empty-padding = 2; label-empty-padding = 2;
}; };
"module/date" = { "module/date" = {
type = "internal/date"; type = "internal/date";
interval = 60; interval = 60;
date = "%d-%m-%Y %H:%M"; date = "%d-%m-%Y %H:%M";
}; };
}; };
}; };
programs.alacritty.enable = true ; programs.alacritty.enable = true ;
programs.alacritty.settings = { programs.alacritty.settings = {
general.import = [ general.import = [
"~/.cache/wal/colors-alacritty.toml" "~/.cache/wal/colors-alacritty.toml"
]; ];
font = { font = {
normal = { family = "Iosevka Nerd Font"; style = "Regular"; }; normal = { family = "Iosevka Nerd Font"; style = "Regular"; };
bold = { family = "Iosevka Nerd Font"; style = "Bold"; }; bold = { family = "Iosevka Nerd Font"; style = "Bold"; };
italic = { family = "Iosevka Nerd Font"; style = "Italic"; }; italic = { family = "Iosevka Nerd Font"; style = "Italic"; };
size = 9; size = 9;
}; };
}; };
programs.floorp = { programs.floorp = {
enable = true ; enable = true ;
languagePacks = [ "fr" ] ; languagePacks = [ "fr" ] ;
}; };
}; };
} }
# vim: set ts=2 sw=2 sts=2 et : # vim: set ts=2 sw=2 sts=2 et :

View file

@ -1,11 +1,17 @@
{ config, pkgs, ... }: { config, pkgs, lib, ... }:
{ {
services = { services = {
displayManager.gdm = { displayManager = {
enable = true ; gdm = {
enable = true ;
}; };
desktopManager.gnome.enable = true ; };
}; desktopManager.gnome.enable = true ;
xserver = {
windowManager.bspwm.enable = lib.mkForce false ;
displayManager.lightdm.enable = lib.mkForce false ;
};
};
} }
# vim: set ts=2 sw=2 sts=2 et : # vim: set ts=2 sw=2 sts=2 et :