ADD: qemu config
This commit is contained in:
parent
ca0610b675
commit
79917facf3
6 changed files with 201 additions and 143 deletions
43
apps/qemu.nix
Normal file
43
apps/qemu.nix
Normal 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 :
|
||||||
|
|
@ -2,3 +2,4 @@
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
# vim: set ts=2 sw=2 sts=2 et :
|
||||||
|
|
|
||||||
|
|
@ -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 = [];
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
280
wm/bspwm.nix
280
wm/bspwm.nix
|
|
@ -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 :
|
||||||
|
|
|
||||||
18
wm/gnome.nix
18
wm/gnome.nix
|
|
@ -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 :
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue