diff --git a/config/hypr/hyprland.conf b/config/hypr/hyprland.conf index e0571ab..24db2a5 100644 --- a/config/hypr/hyprland.conf +++ b/config/hypr/hyprland.conf @@ -237,7 +237,7 @@ bind = ,121, exec, pactl set-sink-volume @DEFAULT_SINK@ 0% # other bindings #bind = $mainMod, E, exec, kitty bind = $mainMod, F, fullscreen -bind = $mainMod, Q, exec, kitty lf +bind = $mainMod, Q, exec, kitty yazi bind = ,232,exec,brightnessctl -c backlight set 5%- bind = ,233,exec,brightnessctl -c backlight set +5% #bind = $mainMod SHIFT,C, exec, killall -9 wpaperd && wpaperd diff --git a/config/lf/lfrc b/config/lf/lfrc.backup similarity index 99% rename from config/lf/lfrc rename to config/lf/lfrc.backup index 4325323..04a93fa 100644 --- a/config/lf/lfrc +++ b/config/lf/lfrc.backup @@ -1,5 +1,5 @@ # interpreter for shell commands -set shell zsh +set shell bash # set '-eu' options for shell commands # These options are used to have safer shell commands. Option '-e' is used to diff --git a/config/lf/preview b/config/lf/preview new file mode 100755 index 0000000..1ccf361 --- /dev/null +++ b/config/lf/preview @@ -0,0 +1 @@ +kitty +kitten icat --silent --stdin no --transfer-mode file --place "${w}x${h}@${x}x${y}" "$file" < /dev/null > /dev/tty diff --git a/flake.lock b/flake.lock index d6df66e..284b272 100644 --- a/flake.lock +++ b/flake.lock @@ -121,6 +121,24 @@ } }, "flake-parts": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib_2" + }, + "locked": { + "lastModified": 1756770412, + "narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "4524271976b625a4a605beefd893f270620fd751", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { "inputs": { "nixpkgs-lib": [ "stylix", @@ -234,6 +252,43 @@ "type": "github" } }, + "nix-std": { + "locked": { + "lastModified": 1710870712, + "narHash": "sha256-e+7MJF2gsgTBuOWv4mCimSP0D9+naeFSw9a7N3yEmv4=", + "owner": "chessai", + "repo": "nix-std", + "rev": "31bbc925750cc9d8f828fe55cee1a2bd985e0c00", + "type": "github" + }, + "original": { + "owner": "chessai", + "repo": "nix-std", + "type": "github" + } + }, + "nixos-vfio": { + "inputs": { + "flake-parts": "flake-parts", + "nix-std": "nix-std", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1758101070, + "narHash": "sha256-oJ01wfI1YIvU+9MHN0C/eE3UX2odVoBm8DAPgy8Bkf8=", + "owner": "j-brn", + "repo": "nixos-vfio", + "rev": "bcbc23d59d6adc871fdd19d14420c26b98f4de93", + "type": "github" + }, + "original": { + "owner": "j-brn", + "repo": "nixos-vfio", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1760524057, @@ -265,6 +320,21 @@ "type": "github" } }, + "nixpkgs-lib_2": { + "locked": { + "lastModified": 1754788789, + "narHash": "sha256-x2rJ+Ovzq0sCMpgfgGaaqgBSwY+LST+WbZ6TytnT9Rk=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "a73b9c743612e4244d865a2fdee11865283c04e6", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, "nixpkgs_2": { "locked": { "lastModified": 1760524057, @@ -355,6 +425,7 @@ "disko": "disko", "home-manager": "home-manager", "nix-colors": "nix-colors", + "nixos-vfio": "nixos-vfio", "nixpkgs": "nixpkgs", "noctalia": "noctalia", "quickshell": "quickshell", @@ -389,7 +460,7 @@ "base16-helix": "base16-helix", "base16-vim": "base16-vim", "firefox-gnome-theme": "firefox-gnome-theme", - "flake-parts": "flake-parts", + "flake-parts": "flake-parts_2", "gnome-shell": "gnome-shell", "nixpkgs": [ "nixpkgs" diff --git a/flake.nix b/flake.nix index 5d2caee..774db3f 100644 --- a/flake.nix +++ b/flake.nix @@ -20,6 +20,8 @@ }; nix-colors.url = "github:misterio77/nix-colors"; + nixos-vfio.url = "github:/j-brn/nixos-vfio"; + nixos-vfio.inputs.nixpkgs.follows = "nixpkgs"; zen-browser = { url = "github:0xc000022070/zen-browser-flake"; diff --git a/hosts/virgil/configuration.nix b/hosts/virgil/configuration.nix index d933477..29a1f70 100644 --- a/hosts/virgil/configuration.nix +++ b/hosts/virgil/configuration.nix @@ -23,7 +23,7 @@ nameservers = ["127.0.0.1" "::1"]; }; - services.dnscrypt-proxy2 = { + services.dnscrypt-proxy = { enable = true; settings = { listen_addresses = ["127.0.0.1:53" "[::1]:53"]; @@ -66,7 +66,7 @@ programs.virt-manager.enable = true; virtualisation.libvirtd = { enable = true; - qemuRunAsRoot = false; + qemu.runAsRoot = false; onBoot = "ignore"; onShutdown = "shutdown"; }; @@ -80,6 +80,7 @@ # wget git rose-pine-gtk-theme + virtiofsd ]; # Some programs need SUID wrappers, can be configured further or are diff --git a/hosts/virgil/vfio.nix b/hosts/virgil/vfio.nix index 567d142..a29f7d5 100644 --- a/hosts/virgil/vfio.nix +++ b/hosts/virgil/vfio.nix @@ -1,10 +1,67 @@ { config, pkgs, + lib, + inputs, ... }: { + + + imports = [ + inputs.nixos-vfio.nixosModules.vfio + + + + + ]; + + + boot.kernelParams = ["amd_iommu=on"]; boot.blacklistedKernelModules = ["nvidia" "nouveau"]; + boot.extraModulePackages = [ config.boot.kernelPackages.kvmfr ]; boot.kernelModules = ["vfio_virqfd" "vfio_pci" "vfio_iommu_type1" "vfio"]; boot.extraModprobeConfig = "options vfio-pci ids=10de:2705,10de:22bb"; + + virtualisation.libvirtd = { + deviceACL = [ + "/dev/kvm" + "/dev/kvmfr0" + "/dev/kvmfr1" + "/dev/kvmfr2" + "/dev/shm/scream" + "/dev/shm/looking-glass" + "/dev/null" + "/dev/full" + "/dev/zero" + "/dev/random" + "/dev/urandom" + "/dev/ptmx" + "/dev/kvm" + "/dev/kqemu" + "/dev/rtc" + "/dev/hpet" + "/dev/vfio/vfio" + ]; + }; + virtualisation.spiceUSBRedirection.enable = true; + + virtualisation.vfio = { + enable = true; + IOMMUType = "amd"; + devices = [ + "10de:2705" + "10de:22bb" + ]; + }; + virtualisation.kvmfr = { + enable = true; + devices = lib.singleton { + size = 128; + permissions = { + user = "tulg"; + mode = "0777"; + }; + }; + }; } diff --git a/modules/home-manager/home.nix b/modules/home-manager/home.nix index 595a3ef..17997d0 100644 --- a/modules/home-manager/home.nix +++ b/modules/home-manager/home.nix @@ -44,12 +44,12 @@ in { swww grim slurp - lf inxi pistol waybar wofi mako + feh kitty libsForQt5.qtstyleplugin-kvantum libsForQt5.qt5ct @@ -57,15 +57,20 @@ in { ]; programs.vscode = { enable = true; - extensions = with pkgs.vscode-extensions; [ + profiles.default.extensions = with pkgs.vscode-extensions; [ #pkgs.vscode-extensions.bbenoist.nix pkgs.vscode-extensions.kamadorueda.alejandra pkgs.vscode-extensions.jnoortheen.nix-ide ]; + profiles.tulg.userSettings = { + + + }; }; programs.zen-browser.enable = true; + programs.zsh.enable = true; programs.zen-browser.policies = { DisableAppUpdate = true; DisableTelemetry = true; @@ -77,6 +82,22 @@ in { # theme = spicePkgs.themes.ziro; # colorScheme = "rose-pine-moon"; }; + programs.yazi = { + enable = true; + settings = { + mgr = { + ratio = [1 1 6]; + }; + preview = { + max_width = 1000; + max_height = 900; + }; + tasks = { + image_bound = [ 0 0 ]; + }; + }; + + }; xdg.configFile."hypr" = { source = symlink "${dots}/hypr"; @@ -103,10 +124,10 @@ in { recursive = true; }; - xdg.configFile."lf" = { - source = symlink "${dots}/lf"; - recursive = true; - }; + #xdg.configFile."lf" = { + # source = symlink "${dots}/lf"; + # recursive = true; + #}; programs.firefox.enable = true; programs.bash = { enable = true; @@ -123,8 +144,10 @@ in { programs.git = { enable = true; - userName = "tulg"; - userEmail = "tulg@protonmail.ch"; + settings = { + user.name = "tulg"; + user.email = "tulg@protonmail.ch"; + }; }; # gtk = {