diff --git a/Hosts/isoimage/cosmic.nix b/Hosts/isoimage/cosmic.nix new file mode 100644 index 0000000..a239bdc --- /dev/null +++ b/Hosts/isoimage/cosmic.nix @@ -0,0 +1,57 @@ +{ pkgs, modulesPath, lib, config, ... }: + +{ + imports = [ + "${modulesPath}/installer/cd-dvd/installation-cd-graphical-base.nix" + ]; + + nixpkgs.hostPlatform = "x86_64-linux"; + # Enable the Plasma 5 Desktop Environment. + + environment.systemPackages = with pkgs; [ + firefox + bcachefs-tools + gparted + parted + git + disko + + # Calamares for graphical installation + #libsForQt5.kpmcore + #calamares-nixos + #calamares-nixos-autostart + #calamares-nixos-extensions + # Get list of locales + #glibcLocales + ]; + + + # Support choosing from any locale + i18n.supportedLocales = [ "all" ]; + + nix.settings.experimental-features = [ "nix-command" "flakes" ]; + +# services.displayManager = { +# # Automatically login as nixos. +# sddm.enable = true; +# #autoLogin = { +# # enable = true; +# # user = "nixos"; +# #}; +# }; + + services.desktopManager.cosmic.enable = true; + services.displayManager.cosmic-greeter.enable = true; + + + boot.kernelPackages = lib.mkOverride 0 pkgs.linuxPackages; + nixpkgs.config.allowUnfree = true; + boot.supportedFilesystems.zfs = lib.mkForce false; + + services.xserver.videoDrivers = ["nvidia"]; + hardware.nvidia.open = true; + boot.kernelParams = [ "nvidia_drm.fbdev=1" ]; + + networking.networkmanager.enable = true; + networking.wireless.enable = false; +} diff --git a/Hosts/rose/hardware-configuration.nix b/Hosts/rose/hardware-configuration.nix index cbd3176..e4dfe2e 100644 --- a/Hosts/rose/hardware-configuration.nix +++ b/Hosts/rose/hardware-configuration.nix @@ -14,15 +14,15 @@ boot.extraModulePackages = [ ]; fileSystems."/" = - { device = "/dev/disk/by-uuid/91197cda-1a2a-490b-bd44-ed8389ed171d"; + { device = "/dev/disk/by-uuid/08cea4dc-a1af-43da-86fb-17097928d631"; fsType = "btrfs"; options = [ "subvol=@" ]; }; - boot.initrd.luks.devices."luks-268eb191-9317-4026-896b-bb8985ac7c06".device = "/dev/disk/by-uuid/268eb191-9317-4026-896b-bb8985ac7c06"; + boot.initrd.luks.devices."luks-94e2bb81-4203-49e4-86db-81470dc71812".device = "/dev/disk/by-uuid/94e2bb81-4203-49e4-86db-81470dc71812"; fileSystems."/boot" = - { device = "/dev/disk/by-uuid/EE07-F633"; + { device = "/dev/disk/by-uuid/299E-28F7"; fsType = "vfat"; options = [ "fmask=0077" "dmask=0077" ]; }; diff --git a/Modules/Home/Core/CLI/containers.nix b/Modules/Home/Core/CLI/containers.nix index 0c72211..51ede85 100644 --- a/Modules/Home/Core/CLI/containers.nix +++ b/Modules/Home/Core/CLI/containers.nix @@ -1,20 +1,34 @@ { pkgs, lib, config, inputs, ... }: { + + # distrobox create --name [name] --additional-flags "--device nvidia.com/gpu=all --security-opt=label=disable" --image [image] + # Enable common container config files in /etc/containers virtualisation.containers.enable = true; - virtualisation.docker.enable = true; - virtualisation.docker.rootless = { - enable = true; - #setSocketVariable = true; - }; + virtualisation.oci-containers.backend = "podman"; hardware.nvidia-container-toolkit.enable = true; - virtualisation.docker.extraOptions = "--add-runtime nvidia=/run/current-system/sw/bin/nvidia-container-runtime"; +# virtualisation.docker.extraOptions = "--add-runtime nvidia=/run/current-system/sw/bin/nvidia-container-runtime"; nixpkgs.config.cudaSupport = true; + virtualisation = { + podman = { + enable = true; + dockerSocket.enable = true; + + # Create a `docker` alias for podman, to use it as a drop-in replacement + dockerCompat = true; + + # Required for containers under podman-compose to be able to talk to each other. + defaultNetwork.settings.dns_enabled = true; + }; + }; # Useful other development tools environment.systemPackages = with pkgs; [ + dive # look into docker image layers + podman-tui # status of containers in the terminal + #docker-compose # start group of containers for dev + podman-compose # start group of containers for dev nvidia-container-toolkit - cudatoolkit - nvidia-docker + #nvidia-podman ]; } diff --git a/Modules/Home/Core/CLI/nvim.nix b/Modules/Home/Core/CLI/nvim.nix new file mode 100644 index 0000000..0218042 --- /dev/null +++ b/Modules/Home/Core/CLI/nvim.nix @@ -0,0 +1,279 @@ +{ pkgs, config, lib, userSettings, inputs, ... }: +{ + +# My wife wants me to use neovim (to gamer) [SHOOKED] + + programs = { + neovide = { + enable = true; + settings = { + tabs = true; + vsync = true; + theme = "auto"; + fork = false; + mouse-cursor-icon = "block"; + font = { + normal = [ "JetBrains Mono" ]; + size = 10; + }; + }; + }; + nixvim = { + enable = true; + + keymaps = [ + { + action = "f"; + key = "Telescope find_files "; + } + { + action = "r"; + key = "Telescope oldfiles "; + } + { + action = "g"; + key = "Telescope live_grep "; + } + { + action = "tn"; + key = "tabnew"; + } + ]; + + opts = { + number = true; + relativenumber = true; + clipboard = { + providers = { + wl-copy.enable = true; # Wayland + xsel.enable = true; # For X11 + }; + register = "unnamedplus"; + }; + + globals = { + mapleader = " "; + maplocalleader = "h"; + }; + }; + + colorschemes.base16.enable = true; + + plugins = { + lualine.enable = true; + neocord.enable = true; + telescope.enable = true; + web-devicons.enable = true; + oil.enable = true; + which-key.enable = true; + persistence.enable = true; + #plugins.startup.enable = true; + alpha = { + enable = true; + theme = null; + layout = + let + padding = val: { + type = "padding"; + inherit val; + }; + in + [ + (padding 4) + { + opts = { + hl = "AlphaHeader"; + position = "center"; + }; + type = "text"; + val = [ + " " + " " + " " + " /$$ /$$ /$$ /$$ /$$ /$$ " + " | $$$ | $$| $$ /$$/| $$ / $$ " + " | $$$$| $$ \ $$ /$$/ | $$/ $$/ " + " | $$ $$ $$ \ $$$$/ \ $$$$/ " + " | $$ $$$$ \ $$/ >$$ $$ " + " | $$\ $$$ | $$ /$$/\ $$ " + " | $$ \ $$ | $$ | $$ \ $$ " + " |__/ \__/ |__/ |__/ |__/ " + " " + " " + " " + ]; + } + (padding 2) + { + type = "button"; + val = " Find File"; + on_press = { + __raw = "function() require('telescope.builtin').find_files() end"; + }; + opts = { + # hl = "comment"; + keymap = [ + "n" + "f" + ":Telescope find_files " + { + noremap = true; + silent = true; + nowait = true; + } + ]; + shortcut = "f"; + + position = "center"; + cursor = 3; + width = 38; + align_shortcut = "right"; + hl_shortcut = "Keyword"; + }; + } + (padding 1) + { + type = "button"; + val = " New File"; + on_press = { + __raw = "function() vim.cmd[[ene]] end"; + }; + opts = { + # hl = "comment"; + keymap = [ + "n" + "n" + ":ene startinsert " + { + noremap = true; + silent = true; + nowait = true; + } + ]; + shortcut = "n"; + + position = "center"; + cursor = 3; + width = 38; + align_shortcut = "right"; + hl_shortcut = "Keyword"; + }; + } + (padding 1) + { + type = "button"; + val = "󰈚 Recent Files"; + on_press = { + __raw = "function() require('telescope.builtin').oldfiles() end"; + }; + opts = { + # hl = "comment"; + keymap = [ + "n" + "r" + ":Telescope oldfiles " + { + noremap = true; + silent = true; + nowait = true; + } + ]; + shortcut = "r"; + + position = "center"; + cursor = 3; + width = 38; + align_shortcut = "right"; + hl_shortcut = "Keyword"; + }; + } + (padding 1) + { + type = "button"; + val = "󰈭 Find Word"; + on_press = { + __raw = "function() require('telescope.builtin').live_grep() end"; + }; + opts = { + # hl = "comment"; + keymap = [ + "n" + "g" + ":Telescope live_grep " + { + noremap = true; + silent = true; + nowait = true; + } + ]; + shortcut = "g"; + + position = "center"; + cursor = 3; + width = 38; + align_shortcut = "right"; + hl_shortcut = "Keyword"; + }; + } + (padding 1) + { + type = "button"; + val = " Restore Session"; + on_press = { + __raw = "function() require('persistence').load() end"; + }; + opts = { + # hl = "comment"; + keymap = [ + "n" + "s" + ":lua require('persistence').load()" + { + noremap = true; + silent = true; + nowait = true; + } + ]; + shortcut = "s"; + + position = "center"; + cursor = 3; + width = 38; + align_shortcut = "right"; + hl_shortcut = "Keyword"; + }; + } + (padding 1) + { + type = "button"; + val = " Quit Neovim"; + on_press = { + __raw = "function() vim.cmd[[qa]] end"; + }; + opts = { + # hl = "comment"; + keymap = [ + "n" + "q" + ":qa" + { + noremap = true; + silent = true; + nowait = true; + } + ]; + shortcut = "q"; + + position = "center"; + cursor = 3; + width = 38; + align_shortcut = "right"; + hl_shortcut = "Keyword"; + }; + } + ]; + }; + }; + }; + }; +} diff --git a/Modules/Home/Core/Games/Minecraft/default.nix b/Modules/Home/Core/Games/Minecraft/default.nix index 2558110..00f6a5e 100644 --- a/Modules/Home/Core/Games/Minecraft/default.nix +++ b/Modules/Home/Core/Games/Minecraft/default.nix @@ -1,4 +1,4 @@ -{pkgs, inputs, config, lib, userSettings, ...}: +{pkgs, inputs, config, lib, userSettings, flux, ...}: { imports = [ inputs.nix-minecraft.nixosModules.minecraft-servers ]; nixpkgs.overlays = [ inputs.nix-minecraft.overlay ]; @@ -9,21 +9,28 @@ services.minecraft-servers = { enable = true; eula = true; - dataDir = "/var/lib/mixium"; + dataDir = "/var/lib/minecraft"; servers = { - mixium = { + mx = { enable = true; - package = pkgs.fabricServers.fabric-1_21_1.override { loaderVersion = "0.16.5"; }; + package = pkgs.fabricServers.fabric-1_20_1.override { + loaderVersion = "0.16.7"; + #jre_headless = pkgs.temurin-jre-bin-21; + }; openFirewall = true; enableReload = true; serverProperties = { - motd = "Minecraft Server Powered Via Nyx:tm:"; - #server-port = 25565; + motd = "Silly Server For friens and such! [MS CORP IS NOT ALLOWED]"; + server-port = 25565; + log-ips = false; + enforce-secure-profiles = false; }; whitelist = {/* */}; + #jvmOpts = "-Xms18432M -Xmx18432M -XX:+UseZGC -XX:+ZGenerational"; + symlinks = let # modpack = (pkgs.fetchPackwizModpack { @@ -35,58 +42,205 @@ services.minecraft-servers = { # “mods” = ”${modpack}/mods”; # Directories - "world" = ./world; - "mods" = ./mods; + #"world" = ./world; + #"mods" = ./mods; + + "server-icon.png" = ./server-icon.png; # Fetching from the internet -# "mods" = { -# AppleSkin = pkgs.fetchurl { -# url = "https://cdn.modrinth.com/data/EsAfCjCV/versions/fG1xJao0/appleskin-fabric-mc1.21-3.0.5.jar"; -# sha512 = "sha512-MhdjhHefbiI85saL+jxQUiK+DVohYGoZVWK0cdKbL3ryU7tCdW3WY3NHW7dVgvwRxy2L0vMRvQ8K0GgW5PYaKQ=="; -# }; -# Blahaj = pkgs.fetchurl { -# url = "https://cdn.modrinth.com/data/5bb5rG4b/versions/3rGg0FOJ/blahaj-fabric-1.21-2.0.0.jar"; -# sha512 = "sha512-qdEBO0Wx62PB7TtV1iELwlebff6F99rLl/Tjj3woweeJa6p1XeZcLEEcV1r1D9xsI+p1A89Xd7JwWRxEYjjD6w=="; -# }; -# Comforts = pkgs.fetchurl { -# url = "https://cdn.modrinth.com/data/SaCpeal4/versions/hDG8neIB/comforts-fabric-9.0.0%2B1.21.jar"; -# sha512 = "sha512-GCZH2T2T0nQ8s+a5Kk34ye73CB3/Y1SRJiFyV+U76MladIhNtNPY8uvPkItjPpfXHKjs7lsDnTisl+4KTSPaWg=="; -# }; -# Wildfires-Female-Gender-Mod = pkgs.fetchurl { -# url = "https://cdn.modrinth.com/data/bcOsQHnC/versions/kJmjQvAS/Female-Gender-Mod-fabric-3.2.1%2B1.21.jar"; -# sha512 = "sha512-QKI5nYcEz7GsMZVXn610jTEtqZwv2IaxSLA1Yk1X5lrwPgAJ+Ez8Zp9RTF2cE5hScBBakSiTkYseWlqIHC47Xw=="; -# }; -# FallingTree = pkgs.fetchurl { -# url = "https://cdn.modrinth.com/data/Fb4jn8m6/versions/uni2ZHB8/FallingTree-1.21-1.21.0.7.jar"; -# sha512 = "sha512-Q4I74qboToaT7wo/Miy8cuNbAY3sAxaIvN2pgNx6qeNGKjJHJGRqt/SCDhWU3wMAVRhG6+lGzE0sDBGcOvVyeg=="; -# }; -# Lithium = pkgs.fetchurl { -# url = "https://cdn.modrinth.com/data/gvQqBUqZ/versions/M7RXiitG/lithium-fabric-mc1.21-0.13.1.jar"; -# sha512 = "sha512-xCo4EzmPycuZubj9/Jr4n7zjJFwcXVTNCO3AXlGdPB7hScAPdFo6DrIW89GDbqNbSRD1jmMS6gZeF+V0IoUyFw=="; -# }; -# Vegan-Mob-Drops = pkgs.fetchurl { -# url = "https://cdn.modrinth.com/data/ZrQkwH6G/versions/DF3HzGOZ/vegan-mob-drops-4.2.jar"; -# sha512 = "sha512-uXGEo99VJqulG5OuyW0ITJ11uAmU4+cKd4oMeD+6m1dxUZPezExU0caLnMRw/GRB5iwfBtZ2a18rF/THdvPEPQ=="; -# }; -# FerriteCore = pkgs.fetchurl { -# url = "https://cdn.modrinth.com/data/uXXizFIs/versions/wmIZ4wP4/ferritecore-7.0.0-fabric.jar"; -# sha512 = "sha512-Dy+bWuvXHvMGT8lN+WQpasbujqEiIQmLnfA3vcqsp7zNRzyYF5X01X/z1J2j74HxOkJWaIC58R3GRkXpyK1dTw=="; -# }; -# VoiceChat = pkgs.fetchurl { -# url = "https://cdn.modrinth.com/data/9eGKb6K1/versions/FvsJfBJ0/voicechat-fabric-1.21.1-2.5.23.jar"; -# sha512 = "sha512-BfdYpVr1Ab7IWjdbpVbGuBoWPb7oarRjITVoLSc6R3C9dEiFD9txfXVoGf//PuDTDGsxtpiKbChBX7NlKIV2zQ=="; -# }; -# Text-Placeholder-API = pkgs.fetchurl { -# url = "https://cdn.modrinth.com/data/eXts2L7r/versions/cE5TczQr/placeholder-api-2.4.1%2B1.21.jar"; -# sha512 = "sha512-D8KxBjJ34crasw/bXxFxy976VR8W422qYR9np3U1PnCkhTgIXivPj8ItZX1FDOdNyKqcz26Lxt5tWoQftG4IKA=="; -# }; -# fabric-api = pkgs.fetchurl { -# url = "https://cdn.modrinth.com/data/P7dR8mSH/versions/bK6OgzFj/fabric-api-0.102.1%2B1.21.1.jar"; -# sha512 = "sha512-/wWL200whmo0p0rkV9p+mBr/0TDCOIfAyBlMbstQI8yjU917gxMmqzPfXG07v7HQeqcbvXnbswzKVTT9dMX1UQ=="; -# }; -# }; + mods = pkgs.linkFarmFromDrvs "mods" (builtins.attrValues { + MixinConflictHelper = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/MR1VIQJJ/versions/8dRAFcey/MixinConflictHelper-1.2.0.jar"; + sha256 = "sha256-TWM30iINbCZYE1LyWitO68Bxe9NzH7zRhl4id97mBLo="; + }; +# bettercombat = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/5sy6g3kz/versions/qxfX3jsR/bettercombat-fabric-1.8.6%2B1.20.1.jar"; +# sha256 = "sha256-9CB8QuoLiA2hDgrXff1h2e7uoVT8RsMTMNxZXaHhdt4="; +# }; + ferritecore = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/uXXizFIs/versions/unerR5MN/ferritecore-6.0.1-fabric.jar"; + sha256 = "sha256-x7oRGKBbLakA0cNp++EBej4+w8r+XlE5i4USebm+zyQ="; + }; + krypton = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/fQEb0iXm/versions/jiDwS0W1/krypton-0.2.3.jar"; + sha256 = "sha256-aa0YECBs4SGBsbCDZA8ETn4lB4HDbJbGVerDYgkFdpg="; + }; + lithium = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/gvQqBUqZ/versions/ZSNsJrPI/lithium-fabric-mc1.20.1-0.11.2.jar"; + sha256 = "sha256-oMWVNV1oDgyHv46uuv7f9pANTncajWiU7m0tQ3Tejfk="; + }; + chunky = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/fALzjamp/versions/NHWYq9at/Chunky-1.3.146.jar"; + sha256 = "sha256-rn+501o6nZ1PIQSurnsxqQHF5YQokeLt2d3MQsJkajg="; + }; + chunkyborder = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/s86X568j/versions/74w5ono0/ChunkyBorder-1.1.53.jar"; + sha256 = "sha256-gugJX8t90qIIlvq/Nj1IOdIM0WSquMJNYYET6eIQn1U="; + }; + ccapi = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/9s6osm5g/versions/2xQdCMyG/cloth-config-11.1.136-fabric.jar"; + sha256 = "sha256-hE9JwznI8xROFnqyG30AWfDVcQVOJihaB0k0jaJcSfo="; + }; + fabapi = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/P7dR8mSH/versions/P7uGFii0/fabric-api-0.92.2%2B1.20.1.jar"; + sha256 = "sha256-RQD4RMRVc9A51o05Y8mIWqnedxJnAhbgrT5d8WxncPw="; + }; + ybd = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/o1C1Dkj5/versions/nidyvq2m/YungsBetterDungeons-1.20-Fabric-4.0.4.jar"; + sha256 = "sha256-bGn9AxbESM+ccLctvqQkqFvogfmtw+elbo8LCONhH/8="; + }; + ye = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/ZYgyPyfq/versions/pfVTUz1L/YungsExtras-1.20-Fabric-4.0.3.jar"; + sha256 = "sha256-F2XQiF6OvlMK6B8rKuPW2TyEK7BOA7294A8rRckYyXo="; + }; + ybm = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/HjmxVlSr/versions/qLnQnqXS/YungsBetterMineshafts-1.20-Fabric-4.0.4.jar"; + sha256 = "sha256-CkZXaJIXM5ofYHmi2d2gP20BvqysWcFOCT3tM1fbK4Y="; + }; + ybdt = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/XNlO7sBv/versions/1Z9HNWpj/YungsBetterDesertTemples-1.20-Fabric-3.0.3.jar"; + sha256 = "sha256-eQ4xwqGRlLgcoNwTRpSlufk1xcGcUKrc+0+QphPBm/8="; + }; + ybom = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/3dT9sgt4/versions/4c00pjbt/YungsBetterOceanMonuments-1.20-Fabric-3.0.4.jar"; + sha256 = "sha256-MBNIS87uclQKHrdtQDoMNtsP1tmaHhtaOYs3ylDyf7I="; + }; + yb = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/Ht4BfYp6/versions/hvfjXu8d/YungsBridges-1.20-Fabric-4.0.3.jar"; + sha256 = "sha256-mkVIcn/SL9Bu+lpwtL2gIxJJvhB6pbkazGFZgdVY67A="; + }; + yapi = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/Ua7DFN59/versions/lscV1N5k/YungsApi-1.20-Fabric-4.0.6.jar"; + sha256 = "sha256-Jrbcgfh2qr89U+rVnlkIqLD1Q01GwVDP03bAJ6xUBT4="; + }; + ybs = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/kidLKymU/versions/yV6hn0bB/YungsBetterStrongholds-1.20-Fabric-4.0.3.jar"; + sha256 = "sha256-Eit01ZYpv3VWYyY6TOQ+WKXRO3Tme+ozLUSpvttRt0o="; + }; + ybwh = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/t5FRdP87/versions/lYpHN3iF/YungsBetterWitchHuts-1.20-Fabric-3.0.3.jar"; + sha256 = "sha256-ehoivpUDu3VW6G60RxpQrNYY/IhZDVQWTTWZyf26lOg="; + }; + ybnf = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/Z2mXHnxP/versions/FL88RLRu/YungsBetterNetherFortresses-1.20-Fabric-2.0.6.jar"; + sha256 = "sha256-k+DlN/zyCxjA6jQObU8sICJaKcRSUrnPeOIFEHq08Do="; + }; + ybnt = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/z9Ve58Ih/versions/6LPrzuB0/YungsBetterJungleTemples-1.20-Fabric-2.0.5.jar"; + sha256 = "sha256-RL7iDn9RLYRobsU2rI3WvQeBG45k0A6kjEcMk91eKeg="; + }; + ybei = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/2BwBOmBQ/versions/qJTsmyiE/YungsBetterEndIsland-1.20-Fabric-2.0.6.jar"; + sha256 = "sha256-jmGDo4DBdnfSPV13kNBL8YWJ7RKGdGDs4yMn6HZQRvo="; + }; +# nethermap = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/fdtm99de/versions/w97ixzc7/nethermap-3.0.0-1.20.1.jar"; +# sha256 = "sha256-2ivOs5Xxyl9tQ1Vj/2NHOshIsbYvVizye5tMonCAJCs="; +# }; + treeharvester = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/abooMhox/versions/eeRIweZ0/treeharvester-1.20.1-9.1.jar"; + sha256 = "sha256-1nVch4clnSfbYyprpkzOmzQ15LDh+S+5RNobmagxLxA="; + }; + plasmovoice = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/1bZhdhsH/versions/9ha1XP2j/plasmovoice-fabric-1.20.1-2.1.1.jar"; + sha256 = "sha256-wq5PSK1+oc6M6f+wkJ7J3zrh1zDfCCthBwjMS8L2DXk="; + }; + collective = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/e0M1UDsY/versions/aNzU64AT/collective-1.20.1-7.87.jar"; + sha256 = "sha256-VwIjJoCPMc57qx5MFp27/sMggVyawQ0KykDxdLWmmfM="; + }; + pv-addon-groups = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/g2HFPeCl/versions/UrbDrJ9B/pv-addon-groups-1.1.0.jar"; + sha256 = "sha256-gKonbs0+ppSegQzOBanJ50KXO3hQFGwgLbShI5fdf0Y="; + }; + pv-addon-sculk = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/7dI2zrDy/versions/HmseAzbt/pv-addon-sculk-1.1.0.jar"; + sha256 = "sha256-bjwZXJdr4p0g436j6Ny0iTQsgT6E6cNWGznP4KVDIo8="; + }; + pv-addon-broadcast = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/ZI9h3Y7k/versions/RNSzWpVe/pv-addon-broadcast-1.1.0.jar"; + sha256 = "sha256-PE45WC17cjYSmpzKQkEtX679G6VPLmN+0QJ8B5HzHQg="; + }; + pv-addon-spectator = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/bZwNKr3n/versions/ugWqtFbc/pv-addon-spectator-1.1.0.jar"; + sha256 = "sha256-ZHA+/D6FIakV/R6EDlIoUvFarMrK8gL8d8fAIpxkb9o="; + }; + pv-addon-whisper = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/pZxauj81/versions/ZgizC1Oe/pv-addon-whisper-1.1.0.jar"; + sha256 = "sha256-Asim/kQNojegS6G7SMYbCzZGUPdvNY0AvneMRZUbYAI="; + }; + pv-addon-priority = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/DoKOaUOC/versions/xPHUGv4E/pv-addon-priority-1.1.0.jar"; + sha256 = "sha256-OL3l6ocXJlnm3CRv0mbsWTzKIMMDN5HpamJM+BgUfG8="; + }; + pv-addon-lavaplayer-lib = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/Kx9d4acU/versions/9mqvAql8/pv-addon-lavaplayer-lib-1.1.0.jar"; + sha256 = "sha256-4Ot+Akw0DM++6eVIs8MzLxSp/mZIngPWeV1KQro8XkA="; + }; + spark = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/l6YH9Als/versions/XGW2fviP/spark-1.10.53-fabric.jar"; + sha256 = "sha256-AMA05oT6RHG0FTncKajTnMbyLrKbL6QjiV78l4o5HS0="; + }; + sleep = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/WTzuSu8P/versions/R5tblQON/sleep-v.2.1.2.jar"; + sha256 = "sha256-9ykEnw0qtvhfkHpD299KHEKCjvLRJaJ95Y9rShRQl1c="; + }; + tcdcommons-api = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/Eldc1g37/versions/2mfYVOhd/tcdcommons-3.9.7%2Bfabric-1.20.1.jar"; + sha256 = "sha256-fOGKYmcY/9BI6CPmECOMzV7DqXUQiY+//vBMtOxHpYI="; + }; +# rei = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/nfn13YXA/versions/Lg9Hl5NP/RoughlyEnoughItems-12.1.780-fabric.jar"; +# sha256 = "sha256-PjTDlAkj324GBWlYqDTnGkdJrurfTktMEPGQD+Svolc="; +# }; + terralith = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/8oi3bsk5/versions/YFeeBgIL/Terralith_1.20_v2.5.4.zip"; + sha256 = "sha256-9oItTcUMfo5NPcCncAxiOm3pqd9yOhtsIwdaWy34YMw="; + }; + player-animation-lib = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/gedNE4y2/versions/yDqYTUaf/player-animation-lib-fabric-1.0.2-rc1%2B1.20.jar"; + sha256 = "sha256-CxACH6Y4mXOYEQd3dHcmsct6J7w/j/GxLiuTrAF4QBg="; + }; + emi = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/fRiHVvU7/versions/L452maHz/emi-1.1.16%2B1.20.1%2Bfabric.jar"; + sha256 = "sha256-yJ6uB5xPiI0OIsIUjrTFFDYSfK3XbHWSLxuAs35yNhQ="; + }; + gauntlets = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/daIJrdNd/versions/w7gNtOs3/gauntlets-1.0.0.jar"; + sha256 = "sha256-yrOiVbf/KD8CPTauMNEg5r4OBAdej8665Ctbju/jj1Q="; + }; + addadd = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/R4TvILfj/versions/1ljqbdZZ/AdditionalAdditions-6.0.1.jar"; + sha256 = "sha256-4S1WwlTyUqQpQ8MlEZHj89cRjseNEkTOy/BK8zySu28="; + }; + morevanillashields = pkgs.fetchurl { url = "https://mediafilez.forgecdn.net/files/5841/255/morevanillashields-1.0.5-1.20.1.jar"; + sha256 = "sha256-EbFe+9S11E+kohMjYlNdjBtnW7nGOnB5Lm9stPxGiLQ="; + }; + simplyswords = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/bK3Ubu9p/versions/xe5E39uw/simplyswords-fabric-1.56.0-1.20.1.jar"; + sha256 = "sha256-3br4q4WmsAOoF9DA6Bfcvfn8/muInHKf9yxLajsfPpo="; + }; + architectury = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/lhGA9TYQ/versions/WbL7MStR/architectury-9.2.14-fabric.jar"; + sha256 = "sha256-vXpwMr7bL/lsaZGoRqRMhXM2pRRCoQX1hZAX6LqdEyE="; + }; + wthit = pkgs.fetchurl { url = "https://mediafilez.forgecdn.net/files/5721/800/wthit-fabric-8.15.2.jar"; + sha256 = "sha256-UmiT6uXRN65uQVz8OfWnOI7d4QNUYah05F7NsB02HCk="; + }; + badpackets = pkgs.fetchurl { url = "https://mediafilez.forgecdn.net/files/4784/394/badpackets-fabric-0.4.3.jar"; + sha256 = "sha256-SmuEziDXo10X74b+KUF95vJXBPR47i9fksfC7nbqiZ4="; + }; + reputation = pkgs.fetchurl { url = "https://mediafilez.forgecdn.net/files/4594/936/your-reputation-0.2.4%2Bwthit.1.20.jar"; + sha256 = "sha256-zGmr3hYc80TAjdl8yHXNYY20qCRopgPqp9lapcSrVeM="; + }; + alloy-forgery = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/jhl28YkY/versions/j3GoCoCc/alloy-forgery-2.1.2%2B1.20.jar"; + sha256 = "sha256-6ujgZRPEWPirqDlhiAeKIuLGXxIo9I9SiNF1VDlRhmY="; + }; + mythicmetals = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/bAWzYNRd/versions/usAeRRkO/mythicmetals-0.19.9%2B1.20.1.jar"; + sha256 = "sha256-OLGfB3LG6CJbgXFGcBqPyBQAp3sNXNjxlD6IpYBDjec="; + }; + basic_fluid_hopper = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/P5cDzldd/versions/pb2kE9LA/basic_fluid_hopper-fabric-0.4.0-1.20.1.jar"; + sha256 = "sha256-Vqg+gToU6PSl15e0S56kkn+FjA9NLF2BVIMp3fcS2y0="; + }; + largefluidtank = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/uMlJQMHT/versions/llOBsGfb/largefluidtank-fabric-20.7.5.jar"; + sha256 = "sha256-kXXP75LMBs2epoYzskRQtYGxAfBFCddaj8OG8sG9X2o="; + }; + YetAnotherConfigLib = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/1eAoo2KR/versions/nYfjbBJd/YetAnotherConfigLib-3.6.1%2B1.20.1-fabric.jar"; + sha256 = "sha256-pKmEPHKEYkOgbnKWHwMOMWfQmX8Y6uo6FIL4TO3m8kU="; + }; + fluidlogged = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/BnXpPaut/versions/BQ0t7nK0/fluidlogged-2.0.1-beta.2-fabric-mc1.20.1.jar"; + sha256 = "sha256-VuF3PVcYjRTU9JfZh16yLFIOIJlEKDicJ1PkmlwVKvE="; + }; +# owo-lib = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/ccKDOlHs/versions/zyOBB7J4/owo-lib-0.11.2%2B1.20.jar"; +# sha256 = "sha256-HCScMNPlC7pcs14MOs6/S9X5ab0zQC3i86amGf1ojRI="; +# }; + scalablecatsforce = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/zr0QMQMo/versions/hFiNqs6b/scalable-cats-force-fabric-3.1.2.jar"; + sha256 = "sha256-MoU61/KWLwas6eAmElZ67WMgHkUqCuLzh3YL1bJ/CHU="; + }; +# harvestwithease = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/W4Ajthd2/versions/F0rAkd7c/harvest-with-ease-fabric-1.20.1-9.2.0.jar"; +# sha256 = "sha256-dSjk58el51klnU6hfPGIqJbTrQzFE9GrPdzpLea21tQ="; +# }; + veganrecipes = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/LlKsFkYG/versions/OeKZ7GLp/All%20Vegan%20Recipes%20v1.3%20%281.20-1.21.2%29.zip"; + sha256 = "sha256-FCNN7ljVaAL0K60U8hAbKfAnEiiBqAmt69t7jm7Ltm8="; + }; + farmersdelight = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/7vxePowz/versions/NoioB3or/FarmersDelight-1.20.1-2.1.6%2Brefabricated.jar"; + sha256 = "sha256-OaHLQTB16OM8c4Sd1o7ytY+N/dTlWtzcnxNBnc6B5tw="; + }; + moredelight = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/znHQQtuU/versions/zst5fZig/moredelight-24.09.27-1.20-fabric.jar"; + sha256 = "sha256-eWcvzPAo76fTm/A8WTqKpkvUvj03+hwn03TPi2IPk7U="; + }; + Vegandelight = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/vtNhfMsL/versions/NtTxqoSb/VeganDelightFabric-1.1.0.jar"; + sha256 = "sha256-EOijCuqqWNT44g8TTvtcvbP6p98Xc7psMmJTY9Yq6K4="; + }; + forge-config-api = pkgs.fetchurl { url = "https://modrinth.com/mod/forge-config-api-port/version/v8.0.0-1.20.1-Fabric"; + sha256 = "sha256-I9sbpmWwaXoeugONZ8yt3S8ca6IIn+QV98+Oqx74TRo="; + }; + essential = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/k2ZPuTBm/versions/dpx10jgF/essential_1-3-4-3_forge_1-20-1.jar"; + sha256 = "sha256-U8W3XT35h7v1/7jj4a674E4QqsfkQHPvHkV7gYiAuNI="; + }; + cobweb = pkgs.fetchurl { url = "https://cdn.modrinth.com/data/dQcfqGbl/versions/AyWecby3/cobweb-fabric-1.20.1-1.0.0.jar"; + sha256 = "sha256-zdMRaZwBOmlP93xZk3P6zzc/ZeCkxMYwE7at02lXlu0="; + }; + }); + }; }; }; }; -}; } diff --git a/Modules/Home/Core/Games/Minecraft/server-icon.png b/Modules/Home/Core/Games/Minecraft/server-icon.png new file mode 100644 index 0000000..d51c531 Binary files /dev/null and b/Modules/Home/Core/Games/Minecraft/server-icon.png differ diff --git a/Modules/Home/Core/Games/default.nix b/Modules/Home/Core/Games/default.nix index fd4a532..0fc37e6 100644 --- a/Modules/Home/Core/Games/default.nix +++ b/Modules/Home/Core/Games/default.nix @@ -2,6 +2,6 @@ { imports = [ ./steam.nix - ./Minecraft + #./Minecraft ]; } diff --git a/Modules/Home/Core/Network/Browser/firefox.nix b/Modules/Home/Core/Network/Browser/firefox.nix index 445f9e0..61d88be 100644 --- a/Modules/Home/Core/Network/Browser/firefox.nix +++ b/Modules/Home/Core/Network/Browser/firefox.nix @@ -20,12 +20,12 @@ programs.firefox = { "0100" = { "0104"."browser.newtabpage.enabled".value = true; }; - "4500" = { - enable = true; - "4504"."privacy.resistFingerprinting.letterboxing".value = false; - "4504"."privacy.resistFingerprinting.letterboxing.dimensions".value = "1920x1080"; - "4501"."privacy.resistFingerprinting".value = false; -}; +# "4500" = { +# enable = true; +# "4504"."privacy.resistFingerprinting.letterboxing".value = false; +# "4504"."privacy.resistFingerprinting.letterboxing.dimensions".value = "1920x1080"; +# "4501"."privacy.resistFingerprinting".value = false; +# }; "8000" = { enable = true; "0803"."browser.search.suggest.enabled".value = true; @@ -207,6 +207,7 @@ programs.firefox = { "browser.tabs.firefox-view-next" = false; "browser.tabs.hoverPreview.enabled" = false; "browser.tabs.hoverPreview.showThumbnails" = false; + "privacy.resistFingerprinting.randomization.daily_reset.enabled" = true; }; }; }; diff --git a/Modules/Home/Core/Network/Email/thunderbird.nix b/Modules/Home/Core/Network/Email/thunderbird.nix index 25c15d9..d694a51 100644 --- a/Modules/Home/Core/Network/Email/thunderbird.nix +++ b/Modules/Home/Core/Network/Email/thunderbird.nix @@ -3,5 +3,8 @@ # enable thunderbird programs.thunderbird = { enable = true; + profiles.nyx = { + isDefault = true; + }; }; } diff --git a/Modules/Home/Core/Network/default.nix b/Modules/Home/Core/Network/default.nix index ec122f3..7b4d95c 100644 --- a/Modules/Home/Core/Network/default.nix +++ b/Modules/Home/Core/Network/default.nix @@ -2,7 +2,7 @@ { imports = [ ./DNS - #./Firewall + ./Firewall ./Wireless/nm.nix ]; diff --git a/Modules/Home/VM/default.nix b/Modules/Home/VM/default.nix index 9986a18..3c59231 100644 --- a/Modules/Home/VM/default.nix +++ b/Modules/Home/VM/default.nix @@ -1,6 +1,5 @@ { pkgs, config, userSettings, ... }: { - virtualisation.virtualbox.host.enable = true; users.extraGroups.vboxusers.members = [ userSettings.username ]; virtualisation.virtualbox.guest.enable = true; diff --git a/Modules/Home/VM/kvm.nix b/Modules/Home/VM/kvm.nix new file mode 100644 index 0000000..851b7ac --- /dev/null +++ b/Modules/Home/VM/kvm.nix @@ -0,0 +1,50 @@ +{ pkgs, config, userSettings, ... }: + +let + # Change this to your username. + user = "oomfie"; + # Change this to match your system's CPU. + platform = "intel"; + # Change this to specify the IOMMU ids you wrote down earlier. + vfioIds = [ "10de:2507" "10de:228e" ]; +in { + # Configure kernel options to make sure IOMMU & KVM support is on. + boot = { + kernelModules = [ "kvm-${platform}" "vfio_virqfd" "vfio_pci" "vfio_iommu_type1" "vfio" ]; + kernelParams = [ "${platform}_iommu=on" "${platform}_iommu=pt" "kvm.ignore_msrs=1" ]; + extraModprobeConfig = "options vfio-pci ids=${builtins.concatStringsSep "," vfioIds}"; + }; + +# # Add a file for looking-glass to use later. This will allow for viewing the guest VM's screen in a +# # performant way. + systemd.tmpfiles.rules = [ + "f /dev/shm/looking-glass 0660 ${user} qemu-libvirtd -" + ]; + + programs.virt-manager.enable = true; + programs.dconf.enable = true; + + # Add virt-manager and looking-glass to use later. + environment.systemPackages = with pkgs; [ + # virt-manager + looking-glass-client + ]; + + # Enable virtualisation programs. These will be used by virt-manager to run your VM. + virtualisation = { + libvirtd = { + enable = true; + + qemu = { + package = pkgs.qemu_kvm; + ovmf.enable = true; + verbatimConfig = '' + namespaces = [] + user = "+${builtins.toString config.users.users.${user}.uid}" + ''; + }; + }; + }; + + users.users.${userSettings.username}.extraGroups = [ "qemu-libvirtd" "libvirtd" "disk" ]; +} diff --git a/Modules/Home/default.nix b/Modules/Home/default.nix index a6ccafb..123aaeb 100644 --- a/Modules/Home/default.nix +++ b/Modules/Home/default.nix @@ -5,6 +5,7 @@ ./Desktop ./Users #./VM + #./VM/kvm.nix ]; } diff --git a/Modules/NixOS/Core/Kernel/default.nix b/Modules/NixOS/Core/Kernel/default.nix index fb911e7..a916596 100755 --- a/Modules/NixOS/Core/Kernel/default.nix +++ b/Modules/NixOS/Core/Kernel/default.nix @@ -1,6 +1,8 @@ { pkgs, config, lib, systemSettings, ... }: { +#imports = [ ./selinux.nix ]; + # // Switch to xanmod kernel linuxKernel.packages.linux_xanmod_latest // boot.kernelPackages = systemSettings.kernel; @@ -35,10 +37,10 @@ security = { # options iwlwifi lar_disable=1 # ''; # -# boot.kernelParams = [ -# "pcie_port_pm=off" + boot.kernelParams = [ + "pcie_aspm=off" # "pcie_aspm.policy=performance" -# ]; + ]; } diff --git a/Modules/NixOS/Core/Kernel/selinux.nix b/Modules/NixOS/Core/Kernel/selinux.nix new file mode 100644 index 0000000..7714a3e --- /dev/null +++ b/Modules/NixOS/Core/Kernel/selinux.nix @@ -0,0 +1,23 @@ +{ pkgs, config, lib, systemSettings, ... }: +{ + # Selinux!!! + boot.kernelParams = [ "security=selinux" ]; + # compile kernel with SELinux support - but also support for other LSM modules + boot.kernelPatches = [ { + name = "selinux-config"; + patch = null; + extraConfig = '' + SECURITY_SELINUX y + SECURITY_SELINUX_BOOTPARAM n + SECURITY_SELINUX_DISABLE n + SECURITY_SELINUX_DEVELOP y + SECURITY_SELINUX_AVC_STATS y + SECURITY_SELINUX_CHECKREQPROT_VALUE 0 + DEFAULT_SECURITY_SELINUX n + ''; + } ]; + # policycoreutils is for load_policy, fixfiles, setfiles, setsebool, semodile, and sestatus. + environment.systemPackages = with pkgs; [ policycoreutils ]; + # build systemd with SELinux support so it loads policy at boot and supports file labelling + systemd.package = pkgs.systemd.override { withSelinux = true; }; +} diff --git a/Modules/NixOS/Core/Nix/nh.nix b/Modules/NixOS/Core/Nix/nh.nix new file mode 100644 index 0000000..4418dae --- /dev/null +++ b/Modules/NixOS/Core/Nix/nh.nix @@ -0,0 +1,10 @@ +{ config, lib, pkgs, inputs, userSettings, ... }: +{ + +# Install nh and nix-output-monitor +programs.nh = { + enable = true; + flake = "/home/${userSettings.username}/nyx"; + }; + +} diff --git a/Modules/NixOS/Core/Nix/security.nix b/Modules/NixOS/Core/Nix/security.nix index 061ebad..61b9c20 100755 --- a/Modules/NixOS/Core/Nix/security.nix +++ b/Modules/NixOS/Core/Nix/security.nix @@ -2,17 +2,17 @@ { # // Enable doas & Disable sudo // - security.doas.enable = true; -# security.sudo.enable = true; -# security.sudo.execWheelOnly = true; +# security.doas.enable = true; +security.sudo.enable = true; +security.sudo.execWheelOnly = true; # // Configure doas // - security.doas.extraRules = [{ - users = [ userSettings.username ]; # // Replace username with your username // - groups = [ "wheel" ]; - keepEnv = true; - persist = true; -}]; +# security.doas.extraRules = [{ +# users = [ userSettings.username ]; # // Replace username with your username // +# groups = [ "wheel" ]; +# keepEnv = true; +# persist = true; +# }]; #security.tpm2.enable = true; #security.tpm2.pkcs11.enable = true; # expose /run/current-system/sw/lib/libtpm2_pkcs11.so diff --git a/Modules/NixOS/Hardware/firmware.nix b/Modules/NixOS/Hardware/firmware.nix index 7645a24..732ee4c 100755 --- a/Modules/NixOS/Hardware/firmware.nix +++ b/Modules/NixOS/Hardware/firmware.nix @@ -12,5 +12,7 @@ in { # // Enable firmware update service // services.fwupd.enable = true; + + services.power-profiles-daemon.enable = true; }; } diff --git a/flake.lock b/flake.lock index 71f556b..447bb80 100755 --- a/flake.lock +++ b/flake.lock @@ -116,11 +116,11 @@ }, "locked": { "dir": "pkgs/firefox-addons", - "lastModified": 1728533014, - "narHash": "sha256-fDu4kCTw82r79DpDRjoX9sh2INwZ5l9Alv1kYXVtyHY=", + "lastModified": 1731038603, + "narHash": "sha256-4eJQfKZnMwy7Y2bFHqw/mpZjsPWrXfITmgTLPGmfl/w=", "owner": "rycee", "repo": "nur-expressions", - "rev": "a19c9b6e6fd1d4d82263963345cd8e672dc67aff", + "rev": "674763b3eb6f0bdfa1f987984711bd3f33efc7bf", "type": "gitlab" }, "original": { @@ -179,6 +179,22 @@ } }, "flake-compat_4": { + "flake": false, + "locked": { + "lastModified": 1717312683, + "narHash": "sha256-FrlieJH50AuvagamEvWMIE6D2OAnERuDboFDYAED/dE=", + "owner": "nix-community", + "repo": "flake-compat", + "rev": "38fd3954cf65ce6faf3d0d45cd26059e059f07ea", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_5": { "flake": false, "locked": { "lastModified": 1673956053, @@ -377,11 +393,11 @@ ] }, "locked": { - "lastModified": 1728337164, - "narHash": "sha256-VdRTjJFyq4Q9U7Z/UoC2Q5jK8vSo6E86lHc2OanXtvc=", + "lastModified": 1730837930, + "narHash": "sha256-0kZL4m+bKBJUBQse0HanewWO0g8hDdCvBhudzxgehqc=", "owner": "nix-community", "repo": "home-manager", - "rev": "038630363e7de57c36c417fd2f5d7c14773403e4", + "rev": "2f607e07f3ac7e53541120536708e824acccfaa8", "type": "github" }, "original": { @@ -471,11 +487,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1727037144, - "narHash": "sha256-pxV+e/IGccFn4VcLJ4buEj6yOmoqmdqaLMoFzUbijvs=", + "lastModified": 1730699102, + "narHash": "sha256-xkplzGzjywMPOpfTOw5oXbwuH4X14VfXEa3m10aHqrY=", "owner": "musnix", "repo": "musnix", - "rev": "45250275206d366c8328ed1c57ceebffc945ba43", + "rev": "3feabdc65fb3466f07f306fa5f4e9c43234186e6", "type": "github" }, "original": { @@ -491,11 +507,11 @@ "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1728524736, - "narHash": "sha256-YI6vKob4ZFwB2FTorVUDmaEidddnkLKuBqV1CgnPo4Q=", + "lastModified": 1731030299, + "narHash": "sha256-PwtzMWPJhz9Rn/0rzQfMb6icSA6DtJZKCuK88IwFSos=", "owner": "Infinidoge", "repo": "nix-minecraft", - "rev": "8b4292a37b3e0544f62e2aa030a5b58f166e6b3b", + "rev": "11ca743d2e4602d5b8bfc8d65303f969d58ec338", "type": "github" }, "original": { @@ -506,11 +522,11 @@ }, "nixlib": { "locked": { - "lastModified": 1728176478, - "narHash": "sha256-px3Q0W//c+mZ4kPMXq4poztsjtXM1Ja1rN+825YMDUQ=", + "lastModified": 1729386149, + "narHash": "sha256-hUP9oxmnOmNnKcDOf5Y55HQ+NnoT0+bLWHLQWLLw9Ks=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "b61309c3c1b6013d36299bc8285612865b3b9e4c", + "rev": "cce4521b6df014e79a7b7afc58c703ed683c916e", "type": "github" }, "original": { @@ -519,6 +535,27 @@ "type": "github" } }, + "nixos-cosmic": { + "inputs": { + "flake-compat": "flake-compat_4", + "nixpkgs": "nixpkgs_5", + "nixpkgs-stable": "nixpkgs-stable_2", + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1731029778, + "narHash": "sha256-hhGQBLgRc/QfEN4YhmNdI3YTkEtXkWW8UvQANHCPBl4=", + "owner": "lilyinstarlight", + "repo": "nixos-cosmic", + "rev": "5421fc0cb8e440ac02b23400d8c919a3a77f56f2", + "type": "github" + }, + "original": { + "owner": "lilyinstarlight", + "repo": "nixos-cosmic", + "type": "github" + } + }, "nixos-generators": { "inputs": { "nixlib": "nixlib", @@ -527,11 +564,11 @@ ] }, "locked": { - "lastModified": 1728522165, - "narHash": "sha256-UQpsJ0Ev6JBGsCYRlS2oOVvb+eWcDD0xTV3RVlqbeVU=", + "lastModified": 1729472750, + "narHash": "sha256-s93LPHi5BN7I2xSGNAFWiYb8WRsPvT1LE9ZjZBrpFlg=", "owner": "nix-community", "repo": "nixos-generators", - "rev": "40c8d30c490414910fc63626ad1b67af7db40cd3", + "rev": "7c60ba4bc8d6aa2ba3e5b0f6ceb9fc07bc261565", "type": "github" }, "original": { @@ -574,11 +611,27 @@ }, "nixpkgs-stable_2": { "locked": { - "lastModified": 1728500571, - "narHash": "sha256-dOymOQ3AfNI4Z337yEwHGohrVQb4yPODCW9MDUyAc4w=", + "lastModified": 1730883749, + "narHash": "sha256-mwrFF0vElHJP8X3pFCByJR365Q2463ATp2qGIrDUdlE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "dba414932936fde69f0606b4f1d87c5bc0003ede", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_3": { + "locked": { + "lastModified": 1730883749, + "narHash": "sha256-mwrFF0vElHJP8X3pFCByJR365Q2463ATp2qGIrDUdlE=", "owner": "nixos", "repo": "nixpkgs", - "rev": "d51c28603def282a24fa034bcb007e2bcb5b5dd0", + "rev": "dba414932936fde69f0606b4f1d87c5bc0003ede", "type": "github" }, "original": { @@ -590,11 +643,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1728492678, - "narHash": "sha256-9UTxR8eukdg+XZeHgxW5hQA9fIKHsKCdOIUycTryeVw=", + "lastModified": 1730785428, + "narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=", "owner": "nixos", "repo": "nixpkgs", - "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7", "type": "github" }, "original": { @@ -622,11 +675,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1726755586, - "narHash": "sha256-PmUr/2GQGvFTIJ6/Tvsins7Q43KTMvMFhvG6oaYK+Wk=", + "lastModified": 1730200266, + "narHash": "sha256-l253w0XMT8nWHGXuXqyiIC/bMvh1VRszGXgdpQlfhvU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c04d5652cfa9742b1d519688f65d1bbccea9eb7e", + "rev": "807e9154dcb16384b1b765ebe9cd2bba2ac287fd", "type": "github" }, "original": { @@ -653,6 +706,22 @@ } }, "nixpkgs_5": { + "locked": { + "lastModified": 1730785428, + "narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_6": { "locked": { "lastModified": 1725194671, "narHash": "sha256-tLGCFEFTB5TaOKkpfw3iYT9dnk4awTP/q4w+ROpMfuw=", @@ -699,13 +768,36 @@ "lobster": "lobster", "musnix": "musnix", "nix-minecraft": "nix-minecraft", + "nixos-cosmic": "nixos-cosmic", "nixos-generators": "nixos-generators", "nixpkgs": [ "nixpkgs-unstable" ], - "nixpkgs-stable": "nixpkgs-stable_2", + "nixpkgs-stable": "nixpkgs-stable_3", "nixpkgs-unstable": "nixpkgs-unstable", - "stylix": "stylix" + "stylix": "stylix", + "umu": "umu" + } + }, + "rust-overlay": { + "inputs": { + "nixpkgs": [ + "nixos-cosmic", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1730946479, + "narHash": "sha256-AxGJ3BRc44o3RBcfXxZqjVYftVtJ2sl+/WEjiLUmXRY=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "7fba269fe89ffad47206e0afba233d337c04cf08", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" } }, "stylix": { @@ -714,22 +806,22 @@ "base16-fish": "base16-fish", "base16-helix": "base16-helix", "base16-vim": "base16-vim", - "flake-compat": "flake-compat_4", + "flake-compat": "flake-compat_5", "flake-utils": "flake-utils_5", "gnome-shell": "gnome-shell", "home-manager": "home-manager_2", - "nixpkgs": "nixpkgs_5", + "nixpkgs": "nixpkgs_6", "systems": "systems_5", "tinted-foot": "tinted-foot", "tinted-kitty": "tinted-kitty", "tinted-tmux": "tinted-tmux" }, "locked": { - "lastModified": 1728487226, - "narHash": "sha256-gTOUdO94Y24QgnPVnHTQ/Kch0eM6pHEk/c1WoIxg+qE=", + "lastModified": 1731090365, + "narHash": "sha256-ti3gXhgVpIUL/7w6zDJuH+hOnyTZqxrIX/yYqALmiEI=", "owner": "danth", "repo": "stylix", - "rev": "5699ba97c60455ebafde0fd4e78ca0a2e5a58282", + "rev": "6863412636c8f2cb3b7360f747fbd020fbfddf68", "type": "github" }, "original": { @@ -816,32 +908,34 @@ "tinted-foot": { "flake": false, "locked": { - "lastModified": 1696725948, - "narHash": "sha256-65bz2bUL/yzZ1c8/GQASnoiGwaF8DczlxJtzik1c0AU=", + "lastModified": 1726913040, + "narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=", "owner": "tinted-theming", "repo": "tinted-foot", - "rev": "eedbcfa30de0a4baa03e99f5e3ceb5535c2755ce", + "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", "type": "github" }, "original": { "owner": "tinted-theming", "repo": "tinted-foot", + "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", "type": "github" } }, "tinted-kitty": { "flake": false, "locked": { - "lastModified": 1727867815, - "narHash": "sha256-cghdwzPyve13JFeW+Mpqy/sDswlJ4DTffY24R0R7r/U=", + "lastModified": 1716423189, + "narHash": "sha256-2xF3sH7UIwegn+2gKzMpFi3pk5DlIlM18+vj17Uf82U=", "owner": "tinted-theming", "repo": "tinted-kitty", - "rev": "81b15cb9eb696247af857808d37122188423f73b", + "rev": "eb39e141db14baef052893285df9f266df041ff8", "type": "github" }, "original": { "owner": "tinted-theming", "repo": "tinted-kitty", + "rev": "eb39e141db14baef052893285df9f266df041ff8", "type": "github" } }, @@ -860,6 +954,30 @@ "repo": "tinted-tmux", "type": "github" } + }, + "umu": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "dir": "packaging/nix", + "lastModified": 1730836236, + "narHash": "sha256-8jrg1DQrgYVaO4hpPRxRTAVluo8cE1Lcuvyv2EXuXpA=", + "ref": "refs/heads/main", + "rev": "90352466d502c40e147cfd11a428dde6c2899ab3", + "revCount": 833, + "submodules": true, + "type": "git", + "url": "https://github.com/Open-Wine-Components/umu-launcher/" + }, + "original": { + "dir": "packaging/nix", + "submodules": true, + "type": "git", + "url": "https://github.com/Open-Wine-Components/umu-launcher/" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index a93ae52..aab4c87 100755 --- a/flake.nix +++ b/flake.nix @@ -66,10 +66,31 @@ inputs = { }; nix-minecraft.url = "github:Infinidoge/nix-minecraft"; + nixos-cosmic.url = "github:lilyinstarlight/nixos-cosmic"; +# nixvim ={ +# url = "github:nix-community/nixvim"; +# inputs.nixpkgs.follows = "nixpkgs"; +# }; + +# utils.url = "github:numtide/flake-utils"; + + umu = { + url = "git+https://github.com/Open-Wine-Components/umu-launcher/?dir=packaging\/nix&submodules=1"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; +# nixConfig = { +# extra-substituters = [ +# "domain" +# ]; +# extra-trusted-public-keys = [ +# "randomash:212" +# ]; +# }; + -outputs = { self, nixpkgs, nixpkgs-stable, home-manager, arkenfox, lobster, stylix, nixos-generators, lix-module, nix-minecraft, ... } @ inputs: +outputs = { self, nixpkgs, nixpkgs-stable, home-manager, arkenfox, lobster, stylix, nixos-generators, lix-module, nix-minecraft, nixos-cosmic, umu, ... } @ inputs: let system = "x86_64-linux"; # system arch @@ -78,7 +99,7 @@ outputs = { self, nixpkgs, nixpkgs-stable, home-manager, arkenfox, lobster, styl timezone = "Asia/Riyadh"; # Select Timezone locale = "en_US.UTF-8"; # Select Locale kernel = pkgs.linuxPackages_latest; # Kernel - Nvidia-driver = "latest"; + Nvidia-driver = "beta"; swap = "zram"; # downloadmoreram.com (Legal disclaimer if this domain exists then thats based) audio = "pipewire"; # Audio system bootloader = "systemd-boot"; # Bootloader @@ -96,6 +117,7 @@ outputs = { self, nixpkgs, nixpkgs-stable, home-manager, arkenfox, lobster, styl gitname = "oomfie"; gitemail = "dev.77r2m@simplelogin.co"; browser = "firefox"; + email = "thunderbird"; de = "KDE"; video = "mpv"; prompt = "starship"; @@ -206,5 +228,14 @@ outputs = { self, nixpkgs, nixpkgs-stable, home-manager, arkenfox, lobster, styl ]; format = "iso"; }; + + cosmic-iso = nixos-generators.nixosGenerate { + system = "x86_64-linux"; + modules = [ + ./Hosts/isoimage/cosmic.nix + nixos-cosmic.nixosModules.default + ]; + format = "iso"; + }; }; } diff --git a/home.nix b/home.nix index 023be4f..376cfe2 100755 --- a/home.nix +++ b/home.nix @@ -9,14 +9,22 @@ ( ./. + "/Modules/Home/" + "/Core/Shell"+("/"+userSettings.prompt)+".nix") ( ./. + "/Modules/Home/" + "/Core/Shell"+("/"+userSettings.sh)+".nix") #( ./. + "/Modules/Home/" + "/Core/Term"+("/"+userSettings.term)+".nix") # Broken on Nvidia GPUs - #( ./. + "/Modules/Core/Network/Email"+("/"+userSettings.email)+".nix") + ( ./. + "/Modules/Home/Core/Network/Email"+("/"+userSettings.email)+".nix") ./Modules/Home/Core/CLI/git.nix ./Modules/Home/Core/CLI/fastfetch.nix ./Modules/Home/Core/CLI/stylix.nix + #./Modules/Home/Core/CLI/nvim.nix + #inputs.nixvim.homeManagerModules.nixvim inputs.stylix.homeManagerModules.stylix ]; - gtk.enable = true; + gtk = { + enable = true; +# theme = { +# name = "Breeze"; +# package = pkgs.kdePackages.breeze-gtk; +# }; + }; qt.enable = true; xdg = { @@ -25,6 +33,8 @@ dataHome = "${config.home.homeDirectory}/.local/share"; configHome = "${config.home.homeDirectory}/.config"; stateHome = "${config.home.homeDirectory}/.local/state"; + portal.extraPortals = with pkgs; [ xdg-desktop-portal-kde ]; + portal.config.common.default = "kde"; userDirs = { enable = true; createDirectories = true; @@ -48,6 +58,9 @@ packages = with pkgs; # List all of your packages here [ onlyoffice-bin + simplex-chat-desktop + sshfs + ripgrep ani-cli distrobox ffmpeg @@ -59,6 +72,7 @@ ark #hplip kdePackages.kdeconnect-kde + (inputs.umu.packages.${pkgs.system}.umu.override {version = "${inputs.umu.shortRev}";}) inputs.lobster.packages.x86_64-linux.lobster tailscale kdePackages.kate @@ -67,7 +81,8 @@ #cups imagemagick #kde-gtk-config - xdg-desktop-portal-kde + #xdg-desktop-portal-kde + #xdg-desktop-portal #bottom pinentry-qt partition-manager @@ -87,13 +102,14 @@ fzf #gamescope #stremio - armcord + #armcord + legcord #arrpc zola #libsForQt5.lightly #gparted #tor-browser-bundle-bin - #(pkgs.uutils-coreutils.override { prefix = ""; }) + (pkgs.uutils-coreutils.override { prefix = ""; }) #protonvpn-gui #ruffle #grapejuice @@ -109,13 +125,14 @@ #freetube #dorion #atuin - #kdePackages.breeze + kdePackages.breeze #kdePackages.qt5compat #kdePackages.plasma5support #steam lutris protonup-qt inkscape + protontricks wine64Packages.stable inconsolata-nerdfont #wezterm @@ -139,4 +156,11 @@ home.extraProfileCommands = '' systemd.user.startServices = "sd-switch"; # systemd.user.tmpfiles.rules = [ "L /var/lib/mixium/mixium/world/ ---- ./Modules/Home/Core/Games/Minecraft/world/" ]; + +dconf.settings = { + "org/virt-manager/virt-manager/connections" = { + autoconnect = ["qemu:///system"]; + uris = ["qemu:///system"]; + }; +}; }