diff --git a/apps/qemu.nix b/apps/qemu.nix new file mode 100644 index 0000000..b11afc9 --- /dev/null +++ b/apps/qemu.nix @@ -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 : diff --git a/apps/template.nix b/apps/template.nix index a8100cd..b9b59db 100644 --- a/apps/template.nix +++ b/apps/template.nix @@ -2,3 +2,4 @@ { } + # vim: set ts=2 sw=2 sts=2 et : diff --git a/hosts/pennsardin/configuration.nix b/hosts/pennsardin/configuration.nix index 8b7b530..d1d3d90 100644 --- a/hosts/pennsardin/configuration.nix +++ b/hosts/pennsardin/configuration.nix @@ -5,6 +5,7 @@ ./raid.nix ./bepovim.nix ../../wm/bspwm.nix + ../../apps/qemu.nix ]; nix.settings.experimental-features = ["nix-command" "flakes" ]; boot.initrd.kernelModules = []; diff --git a/user/lomig.nix b/user/lomig.nix index 8e6d9f6..18801e1 100644 --- a/user/lomig.nix +++ b/user/lomig.nix @@ -11,6 +11,7 @@ home.packages = with pkgs; [ bat nerd-fonts.iosevka + obsidian telegram-desktop tree fastfetch diff --git a/wm/bspwm.nix b/wm/bspwm.nix index 013bad6..cdf137a 100644 --- a/wm/bspwm.nix +++ b/wm/bspwm.nix @@ -1,159 +1,165 @@ -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: { - services.xserver = { - enable = true ; - displayManager.lightdm.enable = true ; - windowManager.bspwm.enable = true ; - }; - 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 - ]; + services = { + xserver = { + enable = true ; + displayManager = { + lightdm.enable = true ; + }; + windowManager.bspwm.enable = true ; + }; + desktopManager.gnome.enable = lib.mkForce false ; + displayManager.gdm.enable = lib.mkForce false ; + }; + 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.initExtra = '' - xset s 300 300 - xset s on - xsession s noblank + xsession.enable = true ; + xsession.initExtra = '' + xset s 300 300 + xset s on + xsession s noblank - xset +dpms - xset dpms 0 0 500 - ''; - systemd.user.services.xidlehook = { - Unit.Description = "Idle actions (lock at 1m, suspend at 5m)"; - Service = { - ExecStart = '' - ${pkgs.xidlehook}/bin/xidlehook \ - --detect-sleep \ - --not-when-fullscreen \ - --timer 300 "${pkgs.betterlockscreen}/bin/betterlockscreen -l dim" "" \ - --timer 500 "systemctl suspend" "" - ''; - Restart = "always"; - }; - Install.WantedBy = [ "graphical-session.target" ]; - }; + xset +dpms + xset dpms 0 0 500 + ''; + systemd.user.services.xidlehook = { + Unit.Description = "Idle actions (lock at 1m, suspend at 5m)"; + Service = { + ExecStart = '' + ${pkgs.xidlehook}/bin/xidlehook \ + --detect-sleep \ + --not-when-fullscreen \ + --timer 300 "${pkgs.betterlockscreen}/bin/betterlockscreen -l dim" "" \ + --timer 500 "systemctl suspend" "" + ''; + Restart = "always"; + }; + Install.WantedBy = [ "graphical-session.target" ]; + }; - xsession.windowManager.bspwm = { - enable = true ; - startupPrograms = [ - "killall polybar" - "setxkbmap bepovim" - "sxhkd -m 1" - "xrandr \\ - --output DisplayPort-1 --rate 60 --pos 0x0" - "while pgrep -x polybar >/dev/null; do sleep 0.2; done" - "polybar" + xsession.windowManager.bspwm = { + enable = true ; + startupPrograms = [ + "killall polybar" + "setxkbmap bepovim" + "sxhkd -m 1" + "xrandr \\ + --output DisplayPort-1 --rate 60 --pos 0x0" + "while pgrep -x polybar >/dev/null; do sleep 0.2; done" + "polybar" "bash ~/.fehbg" - ]; - extraConfig = '' - bspc config borderless_monocle true - bspc config gapless_monocle true - bspc config single_monocle true - bspc monitor -d I II III IV V VI - ''; - }; - services.sxhkd = { - enable = true ; - extraOptions = [ "-m 1" ] ; - keybindings = { - "super + Return" = "alacritty"; - "super + c" = "bspc node -c"; - "Menu" = "rofi -show drun"; - "super + space" = "rofi -show drun"; + ]; + extraConfig = '' + bspc config borderless_monocle true + bspc config gapless_monocle true + bspc config single_monocle true + bspc monitor -d I II III IV V VI + ''; + }; + services.sxhkd = { + enable = true ; + extraOptions = [ "-m 1" ] ; + keybindings = { + "super + Return" = "alacritty"; + "super + c" = "bspc node -c"; + "Menu" = "rofi -show drun"; + "super + space" = "rofi -show drun"; # Aller au bureau ^1 .. ^6 - "F1" = "bspc desktop -f ^1"; - "F2" = "bspc desktop -f ^2"; - "F3" = "bspc desktop -f ^3"; - "F4" = "bspc desktop -f ^4"; - "F5" = "bspc desktop -f ^5"; - "F6" = "bspc desktop -f ^6"; + "F1" = "bspc desktop -f ^1"; + "F2" = "bspc desktop -f ^2"; + "F3" = "bspc desktop -f ^3"; + "F4" = "bspc desktop -f ^4"; + "F5" = "bspc desktop -f ^5"; + "F6" = "bspc desktop -f ^6"; # Déplacer la fenetre courante vers le bureau cible et suivre - "shift + F1" = "bspc node -d ^1 --follow"; - "shift + F2" = "bspc node -d ^2 --follow"; - "shift + F3" = "bspc node -d ^3 --follow"; - "shift + F4" = "bspc node -d ^4 --follow"; - "shift + F5" = "bspc node -d ^5 --follow"; - "shift + F6" = "bspc node -d ^6 --follow"; + "shift + F1" = "bspc node -d ^1 --follow"; + "shift + F2" = "bspc node -d ^2 --follow"; + "shift + F3" = "bspc node -d ^3 --follow"; + "shift + F4" = "bspc node -d ^4 --follow"; + "shift + F5" = "bspc node -d ^5 --follow"; + "shift + F6" = "bspc node -d ^6 --follow"; # Focus dans un meme bureau - "super + h" = "bspc node -f west"; - "super + j" = "bspc node -f south"; - "super + k" = "bspc node -f north"; - "super + l" = "bspc node -f east"; + "super + h" = "bspc node -f west"; + "super + j" = "bspc node -f south"; + "super + k" = "bspc node -f north"; + "super + l" = "bspc node -f east"; # Swap la fenetre dans le bureau - "super + shift + h" = "bspc node -s west"; - "super + shift + j" = "bspc node -s south"; - "super + shift + k" = "bspc node -s north"; - "super + shift + l" = "bspc node -s east"; - }; - }; + "super + shift + h" = "bspc node -s west"; + "super + shift + j" = "bspc node -s south"; + "super + shift + k" = "bspc node -s north"; + "super + shift + l" = "bspc node -s east"; + }; + }; - services.polybar = { - enable = true ; - script = "polybar main &"; - config = { - "bar/main" = { - width = "100%"; - height = "28"; - background = "\\\${colors.background}"; - foreground = "\\\${colors.foreground}"; - font-0 = "Iosevka Nerd Font:size=10;2"; - font-1 = "Font Awesome 6 Free:style=Solid:pixelsize=10;2"; - modules-left = "bspwm"; - modules-center = "date"; - modules-right = "pulseaudio memory cpu"; - }; + services.polybar = { + enable = true ; + script = "polybar main &"; + config = { + "bar/main" = { + width = "100%"; + height = "28"; + background = "\\\${colors.background}"; + foreground = "\\\${colors.foreground}"; + font-0 = "Iosevka Nerd Font:size=10;2"; + font-1 = "Font Awesome 6 Free:style=Solid:pixelsize=10;2"; + modules-left = "bspwm"; + modules-center = "date"; + modules-right = "pulseaudio memory cpu"; + }; - "module/bspwm" = { - type = "internal/bspwm"; - label-focused = "%name%"; - label-focused-background = "\\\${colors.primary}"; - label-focused-foreground = "#e6e0de"; - label-focused-padding = 2; - label-occupied = "%name%"; - label-occupied-padding = 2; - label-urgent = "%name%"; - label-urgent-background = "#e42127"; - label-urgent-foreground = "#ffffff"; - label-empty = "%name%"; - label-empty-foreground = "#645d56"; - label-empty-padding = 2; - }; + "module/bspwm" = { + type = "internal/bspwm"; + label-focused = "%name%"; + label-focused-background = "\\\${colors.primary}"; + label-focused-foreground = "#e6e0de"; + label-focused-padding = 2; + label-occupied = "%name%"; + label-occupied-padding = 2; + label-urgent = "%name%"; + label-urgent-background = "#e42127"; + label-urgent-foreground = "#ffffff"; + label-empty = "%name%"; + label-empty-foreground = "#645d56"; + label-empty-padding = 2; + }; - "module/date" = { - type = "internal/date"; - interval = 60; - date = "%d-%m-%Y %H:%M"; - }; + "module/date" = { + type = "internal/date"; + interval = 60; + date = "%d-%m-%Y %H:%M"; + }; - }; - }; - programs.alacritty.enable = true ; - programs.alacritty.settings = { - general.import = [ - "~/.cache/wal/colors-alacritty.toml" - ]; - font = { - normal = { family = "Iosevka Nerd Font"; style = "Regular"; }; - bold = { family = "Iosevka Nerd Font"; style = "Bold"; }; - italic = { family = "Iosevka Nerd Font"; style = "Italic"; }; - size = 9; - }; - }; + }; + }; + programs.alacritty.enable = true ; + programs.alacritty.settings = { + general.import = [ + "~/.cache/wal/colors-alacritty.toml" + ]; + font = { + normal = { family = "Iosevka Nerd Font"; style = "Regular"; }; + bold = { family = "Iosevka Nerd Font"; style = "Bold"; }; + italic = { family = "Iosevka Nerd Font"; style = "Italic"; }; + size = 9; + }; + }; - programs.floorp = { - enable = true ; - languagePacks = [ "fr" ] ; - }; - }; + programs.floorp = { + enable = true ; + languagePacks = [ "fr" ] ; + }; + }; } # vim: set ts=2 sw=2 sts=2 et : diff --git a/wm/gnome.nix b/wm/gnome.nix index e500128..2b5a2e3 100644 --- a/wm/gnome.nix +++ b/wm/gnome.nix @@ -1,11 +1,17 @@ -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: { - services = { - displayManager.gdm = { - enable = true ; + services = { + displayManager = { + 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 :