diff --git a/Boot b/Boot deleted file mode 100644 index e69de29..0000000 diff --git a/Manager b/Manager deleted file mode 100644 index e69de29..0000000 diff --git a/WE-Lake.png b/WE-Lake.png deleted file mode 100644 index 0631e83..0000000 Binary files a/WE-Lake.png and /dev/null differ diff --git a/assets/pfp.jpg b/assets/pfp.jpg new file mode 100644 index 0000000..6e97bf9 Binary files /dev/null and b/assets/pfp.jpg differ diff --git a/flake.lock b/flake.lock index 64e647f..9108f0d 100644 --- a/flake.lock +++ b/flake.lock @@ -1,27 +1,5 @@ { "nodes": { - "ags": { - "inputs": { - "astal": "astal_2", - "nixpkgs": [ - "hyprpanel", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1744557573, - "narHash": "sha256-XAyj0iDuI51BytJ1PwN53uLpzTDdznPDQFG4RwihlTQ=", - "owner": "aylur", - "repo": "ags", - "rev": "3ed9737bdbc8fc7a7c7ceef2165c9109f336bff6", - "type": "github" - }, - "original": { - "owner": "aylur", - "repo": "ags", - "type": "github" - } - }, "astal": { "inputs": { "nixpkgs": [ @@ -29,54 +7,11 @@ ] }, "locked": { - "lastModified": 1750020774, - "narHash": "sha256-43lMH+9/0EHRhMuNvvo3Izvp1wXyMcSKRi8F2wSTepY=", + "lastModified": 1751126708, + "narHash": "sha256-AodIKw7TmI7rHVcOfEsO82stupMYIMVQeLAUQfVxnkU=", "owner": "aylur", "repo": "astal", - "rev": "ca3190d077d09b9597e7de471a8e388a08f112e9", - "type": "github" - }, - "original": { - "owner": "aylur", - "repo": "astal", - "type": "github" - } - }, - "astal_2": { - "inputs": { - "nixpkgs": [ - "hyprpanel", - "ags", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1742571008, - "narHash": "sha256-5WgfJAeBpxiKbTR/gJvxrGYfqQRge5aUDcGKmU1YZ1Q=", - "owner": "aylur", - "repo": "astal", - "rev": "dc0e5d37abe9424c53dcbd2506a4886ffee6296e", - "type": "github" - }, - "original": { - "owner": "aylur", - "repo": "astal", - "type": "github" - } - }, - "astal_3": { - "inputs": { - "nixpkgs": [ - "hyprpanel", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1748416910, - "narHash": "sha256-FEQcs58HL8Fe4i7XlqVEUwthjxwvRvgX15gTTfW17sU=", - "owner": "aylur", - "repo": "astal", - "rev": "c1bd89a47c81c66ab5fc6872db5a916c0433fb89", + "rev": "ac90f09385a2295da9fdc108aaba4a317aaeacc7", "type": "github" }, "original": { @@ -169,6 +104,21 @@ } }, "flake-compat": { + "locked": { + "lastModified": 1688025799, + "narHash": "sha256-ktpB4dRtnksm9F5WawoIkEneh1nrEvuxb5lJFt1iOyw=", + "owner": "nix-community", + "repo": "flake-compat", + "rev": "8bf105319d44f6b9f0d764efa4fdef9f1cc9ba1c", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_2": { "flake": false, "locked": { "lastModified": 1746162366, @@ -192,11 +142,11 @@ ] }, "locked": { - "lastModified": 1749398372, - "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=", + "lastModified": 1751413152, + "narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569", + "rev": "77826244401ea9de6e3bac47c2db46005e1f30b5", "type": "github" }, "original": { @@ -284,11 +234,11 @@ ] }, "locked": { - "lastModified": 1750304462, - "narHash": "sha256-Mj5t4yX05/rXnRqJkpoLZTWqgStB88Mr/fegTRqyiWc=", + "lastModified": 1751824240, + "narHash": "sha256-aDDC0CHTlL7QDKWWhdbEgVPK6KwWt+ca0QkmHYZxMzI=", "owner": "nix-community", "repo": "home-manager", - "rev": "863842639722dd12ae9e37ca83bcb61a63b36f6c", + "rev": "fd9e55f5fac45a26f6169310afca64d56b681935", "type": "github" }, "original": { @@ -318,26 +268,6 @@ "type": "github" } }, - "hyprpanel": { - "inputs": { - "ags": "ags", - "astal": "astal_3", - "nixpkgs": "nixpkgs" - }, - "locked": { - "lastModified": 1750486389, - "narHash": "sha256-zOlR4uiw++aFWNRvlARY6Uz5VeXQFKXDMlUX45XSDX0=", - "owner": "Jas-SinghFSU", - "repo": "HyprPanel", - "rev": "0c2bcb773cdd55d385e68d59c8d43a066c029895", - "type": "github" - }, - "original": { - "owner": "Jas-SinghFSU", - "repo": "HyprPanel", - "type": "github" - } - }, "ixx": { "inputs": { "flake-utils": [ @@ -368,11 +298,11 @@ }, "master": { "locked": { - "lastModified": 1750562696, - "narHash": "sha256-Gxh6uZvgYCs5VaHtkxAWRZoBeoaWorU+EUlFrclhkWM=", + "lastModified": 1751914753, + "narHash": "sha256-46zytRNdtF3SpFI/bh+AYR6stQCk7Ad79egf79uG/uI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "42cce0e237cd0ed6ae2bc3c5840b1188966a0e42", + "rev": "e69f17b2fda2842ad65707ce3d3c65d62218dcd4", "type": "github" }, "original": { @@ -382,9 +312,30 @@ "type": "github" } }, - "nixos-cosmic": { + "nixos-apple-silicon": { "inputs": { "flake-compat": "flake-compat", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1751622568, + "narHash": "sha256-EE3NBsej517VRa1x+ylAghrvngftxf1KgfHlE9OYyXE=", + "owner": "tpwrules", + "repo": "nixos-apple-silicon", + "rev": "eba4b40c816e5aff8951ae231ac237e8aab8ec1d", + "type": "github" + }, + "original": { + "owner": "tpwrules", + "repo": "nixos-apple-silicon", + "type": "github" + } + }, + "nixos-cosmic": { + "inputs": { + "flake-compat": "flake-compat_2", "nixpkgs": [ "nixpkgs" ], @@ -392,11 +343,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1750520039, - "narHash": "sha256-sMxE77+YqBC8beZDUskuqM2NliKPBt+V9pL2OAE9Bys=", + "lastModified": 1751591814, + "narHash": "sha256-A4lgvuj4v+Pr8MniXz1FBG0DXOygi8tTECR+j53FMhM=", "owner": "lilyinstarlight", "repo": "nixos-cosmic", - "rev": "be0365958fcdb3681cad94b8daaf286466259602", + "rev": "fef2d0c78c4e4d6c600a88795af193131ff51bdc", "type": "github" }, "original": { @@ -407,27 +358,26 @@ }, "nixpkgs": { "locked": { - "lastModified": 1748370509, - "narHash": "sha256-QlL8slIgc16W5UaI3w7xHQEP+Qmv/6vSNTpoZrrSlbk=", - "owner": "nixos", + "lastModified": 1751792365, + "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "4faa5f5321320e49a78ae7848582f684d64783e9", + "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb", "type": "github" }, "original": { - "owner": "nixos", + "id": "nixpkgs", "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" + "type": "indirect" } }, "nixpkgs-stable": { "locked": { - "lastModified": 1750330365, - "narHash": "sha256-hJ7XMNVsTnnbV2NPmStCC07gvv5l2x7+Skb7hyUzazg=", + "lastModified": 1751048012, + "narHash": "sha256-MYbotu4UjWpTsq01wglhN5xDRfZYLFtNk7SBY0BcjkU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d883b6213afa179b58ba8bace834f1419707d0ad", + "rev": "a684c58d46ebbede49f280b653b9e56100aa3877", "type": "github" }, "original": { @@ -438,21 +388,6 @@ } }, "nixpkgs_2": { - "locked": { - "lastModified": 1750365781, - "narHash": "sha256-XE/lFNhz5lsriMm/yjXkvSZz5DfvKJLUjsS6pP8EC50=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "08f22084e6085d19bcfb4be30d1ca76ecb96fe54", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "ref": "nixos-unstable", - "type": "indirect" - } - }, - "nixpkgs_3": { "locked": { "lastModified": 1743448293, "narHash": "sha256-bmEPmSjJakAp/JojZRrUvNcDX2R5/nuX6bm+seVaGhs=", @@ -478,11 +413,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1750345447, - "narHash": "sha256-yOuSSfI4xovXQpSkZUK02CBcY1f0Nvm0RhnUN8xn2rY=", + "lastModified": 1751904655, + "narHash": "sha256-lHAj9Xh/vBf3cXns1wN5HPw/zwGTO/Uv/ttloBok1n4=", "owner": "nix-community", "repo": "nixvim", - "rev": "6a1a348ab1f00bd32d2392b5c2fc72489c699af3", + "rev": "bc997a240953bda9fa526e8a3d6f798a6072308a", "type": "github" }, "original": { @@ -544,10 +479,10 @@ "inputs": { "astal": "astal", "home-manager": "home-manager", - "hyprpanel": "hyprpanel", "master": "master", + "nixos-apple-silicon": "nixos-apple-silicon", "nixos-cosmic": "nixos-cosmic", - "nixpkgs": "nixpkgs_2", + "nixpkgs": "nixpkgs", "nixvim": "nixvim", "stylix": "stylix", "zen-browser": "zen-browser" @@ -561,11 +496,11 @@ ] }, "locked": { - "lastModified": 1750473400, - "narHash": "sha256-wiW2j63MyGQyyijRF25hf7Ab7vx4G8pCiGjUe3OGV4c=", + "lastModified": 1751251399, + "narHash": "sha256-y+viCuy/eKKpkX1K2gDvXIJI/yzvy6zA3HObapz9XZ0=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "3d7d4c4e284f26d6dc4840491c66884912be0062", + "rev": "b22d5ee8c60ed1291521f2dde48784edd6bf695b", "type": "github" }, "original": { @@ -595,11 +530,11 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1751840923, - "narHash": "sha256-4HZxn+PrWytrWVg5c5SEetv3m9/k7rngJq27zKuRIfo=", + "lastModified": 1751914048, + "narHash": "sha256-xHO3xlw35tCC0f3pN3osPNjgwwwAgusTuZk5iC8oDiE=", "owner": "danth", "repo": "stylix", - "rev": "5259682ce58d935f248297bf1c9793a5cee0787e", + "rev": "bf0ef81c8fcc30c32db9dab32d379f8d9db835e4", "type": "github" }, "original": { @@ -759,14 +694,14 @@ "zen-browser": { "inputs": { "home-manager": "home-manager_2", - "nixpkgs": "nixpkgs_3" + "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1750557004, - "narHash": "sha256-P3H0y4eYALvie8iFcT1LqmR+cB5UgT/qFoUWY/CX5O4=", + "lastModified": 1751858709, + "narHash": "sha256-xghd1GDPRSa6aD6tEk2JCuQDZWdHITlCA/stwSVoZJQ=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "5bebd80f8684a7298013fcf9bf846369d3a6542a", + "rev": "216dd333fa41aa013bf8aab9322d7c1a2aee5b4a", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index ba7f099..1f476b5 100644 --- a/flake.nix +++ b/flake.nix @@ -14,11 +14,14 @@ zen-browser.url = "github:0xc000022070/zen-browser-flake"; master.url = "github:NixOS/nixpkgs/master"; home-manager.url = "github:nix-community/home-manager"; - hyprpanel.url = "github:Jas-SinghFSU/HyprPanel"; nixvim = { url = "github:nix-community/nixvim"; inputs.nixpkgs.follows = "nixpkgs"; }; + nixos-apple-silicon = { + url = "github:tpwrules/nixos-apple-silicon"; + inputs.nixpkgs.follows = "nixpkgs"; + }; astal = { url = "github:aylur/astal"; inputs.nixpkgs.follows = "nixpkgs"; @@ -26,7 +29,7 @@ home-manager.inputs.nixpkgs.follows = "nixpkgs"; }; - outputs = { self, stylix, astal, nixpkgs, nixos-cosmic, home-manager, hyprpanel, zen-browser, master, nixvim }@inputs: + outputs = { self, stylix, astal, nixpkgs, nixos-cosmic, home-manager, zen-browser, master, nixos-apple-silicon, nixvim }@inputs: { nixosConfigurations = { nixos = nixpkgs.lib.nixosSystem { @@ -39,23 +42,45 @@ substituters = [ "https://cosmic.cachix.org/" ]; trusted-public-keys = [ "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE=" ]; }; - nixpkgs.overlays = - [ inputs.hyprpanel.overlay ]; - _module.args = { inherit inputs; }; } #stylix.nixosModules.stylix nixos-cosmic.nixosModules.default - ./configuration.nix + ./hosts/desktop/configuration.nix home-manager.nixosModules.home-manager { home-manager.useUserPackages = true; home-manager.extraSpecialArgs = {inherit inputs;}; home-manager.users.joshuaelm = { - imports = [ ./home.nix nixvim.homeManagerModules.nixvim stylix.homeModules.stylix ]; + imports = [ ./hosts/desktop/home.nix nixvim.homeManagerModules.nixvim stylix.homeModules.stylix ]; }; } ]; }; + nixos-laptop = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = {inherit nixvim;}; + specialArgs.inputs = inputs; + modules = [ + { + nix.settings = { + substituters = [ "https://cosmic.cachix.org/" ]; + trusted-public-keys = [ "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE=" ]; + }; + } + nixos-apple-silicon.nixosModules.apple-silicon-support + #stylix.nixosModules.stylix + nixos-cosmic.nixosModules.default + ./hosts/mac-laptop/configuration.nix + home-manager.nixosModules.home-manager + { + home-manager.useUserPackages = true; + home-manager.extraSpecialArgs = {inherit inputs;}; + home-manager.users.joshuaelm = { + imports = [ ./hosts/mac-laptop/home.nix nixvim.homeManagerModules.nixvim stylix.homeModules.stylix ]; + }; + } + ]; + }; }; }; } diff --git a/gs.sh b/gs.sh deleted file mode 100644 index 29f31df..0000000 --- a/gs.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env bash -set -xeuo pipefail - -gamescopeArgs=( - --adaptive-sync # VRR support - --hdr-enabled - --mangoapp # performance overlay - --rt - --steam -) -steamArgs=( - -pipewire-dmabuf - -tenfoot -) -mangoConfig=( - cpu_temp - gpu_temp - ram - vram -) -mangoVars=( - MANGOHUD=1 - MANGOHUD_CONFIG="$(IFS=,; echo "${mangoConfig[*]}")" -) - -export "${mangoVars[@]}" -exec gamescope "${gamescopeArgs[@]}" -- steam "${steamArgs[@]}" - diff --git a/hosts/desktop/configuration.nix b/hosts/desktop/configuration.nix new file mode 100644 index 0000000..f5e34e6 --- /dev/null +++ b/hosts/desktop/configuration.nix @@ -0,0 +1,423 @@ +# Edit this configuration file to define what should be installed on +# your system. Help is available in the configuration.nix(5) man page +# and in the NixOS manual (accessible by running ‘nixos-help’). + +{ config, pkgs, master, lib, inputs, ... }: + +{ + imports = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + ]; + + # Bootloader. + boot.loader.grub.enable = true; + boot.loader.grub.devices = ["nodev"]; + boot.loader.grub.useOSProber = true; + boot.loader.grub.efiSupport = true; + boot.initrd.systemd.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + boot.loader.grub.timeoutStyle = "hidden"; + services.avahi = { + enable = true; + nssmdns4 = true; + openFirewall = true; +}; + + +boot = { + + plymouth = { + enable = true; + theme = "square_hud"; + themePackages = with pkgs; [ + # By default we would install all themes + (adi1090x-plymouth-themes.override { + selected_themes = [ "square_hud" ]; + }) + ]; + }; + + # Enable "Silent Boot" + consoleLogLevel = 0; + initrd.verbose = false; + kernelParams = [ + "quiet" + "splash" + "boot.shell_on_fail" + "loglevel=3" + "rd.systemd.show_status=false" + "rd.udev.log_level=3" + "udev.log_priority=3" + ]; + # Hide the OS choice for bootloaders. + # It's still possible to open the bootloader list by pressing any key + # It will just not appear on screen unless a key is pressed + loader.timeout = 0; + + }; + + boot.extraModulePackages = with config.boot.kernelPackages; [ hid-tmff2 ]; + + networking.hostName = "nixos"; # Define your hostname. + # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. + + # Configure network proxy if necessary + # networking.proxy.default = "http://user:password@proxy:port/"; + + # Enable networking + networking.networkmanager.enable = true; + + + hardware.bluetooth.enable = true; + hardware.bluetooth.package = pkgs.bluez; + + nixpkgs.config.permittedInsecurePackages = [ + "electron-31.7.7" + ]; + + environment.variables.AMD_VULKAN_ICD = "RADV"; + + # Set your time zone. + time.timeZone = "America/Chicago"; + environment.sessionVariables.NIXOS_OZONE_WL = "1"; + # Select internationalisation properties. + i18n.defaultLocale = "en_US.UTF-8"; + + i18n.extraLocaleSettings = { + LC_ADDRESS = "en_US.UTF-8"; + LC_IDENTIFICATION = "en_US.UTF-8"; + LC_MEASUREMENT = "en_US.UTF-8"; + LC_MONETARY = "en_US.UTF-8"; + LC_NAME = "en_US.UTF-8"; + LC_NUMERIC = "en_US.UTF-8"; + LC_PAPER = "en_US.UTF-8"; + LC_TELEPHONE = "en_US.UTF-8"; + LC_TIME = "en_US.UTF-8"; + }; + + # Enable the X11 windowing sytem. + services.xserver.enable = true; + + + # Enable the GNOME Desktop Environment. + services.desktopManager.plasma6.enable = false; + services.displayManager.sddm.enable = false; + services.displayManager.cosmic-greeter.enable = false; + services.desktopManager.cosmic.enable = false; + /*services.displayManager = { + autoLogin.enable = true; + autoLogin.user = "joshuaelm"; +};*/ + security.pam.services.hyprlock = {}; + + services.greetd = { + enable = true; + settings = rec { + initial_session = { + command = "${pkgs.hyprland}/bin/Hyprland"; + user = "joshuaelm"; + }; + default_session = initial_session; + }; + }; + + # Steam Deck Gamemode + programs.steam.gamescopeSession.enable = true; + + + # Polkit + + security.polkit.enable = true; + services.udisks2.enable = true; + + + # Configure keymap in X11 + services.xserver = { + xkb.layout = "us"; + xkb.variant = ""; + excludePackages = [ pkgs.xterm ]; + }; + + # Enable Swap + + /*swapDevices = [ { + device = "/var/lib/swapfile"; + size = 16*1024; + }];*/ + + # Enable CUPS to print documents. + services.printing.enable = true; + + # Enable sound with pipewire. + services.pulseaudio.enable = false; + security.rtkit.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + wireplumber.enable = true; + # If you want to use JACK applications, uncomment this + #jack.enable = true; + + # use the example session manager (no others are packaged yet so this is enabled by default, + # no need to redefine it in your config for now) + #media-session.enable = true; + }; + hardware.pulseaudio.configFile = pkgs.runCommand "default.pa" {} '' + sed 's/module-udev-detect$/module-udev-detect tsched=0/' \ + ${pkgs.pulseaudio}/etc/pulse/default.pa > $out +''; + environment.etc."wireplumber/main.lua.d/90-suspend-timeout.lua" = { + text = '' + session.suspend-timeout-seconds = 0 + ''; + }; + + services.pipewire.extraConfig.pipewire-pulse."92-low-latency" = { + context.modules = [ + { + name = "libpipewire-module-protocol-pulse"; + args = { + pulse.min.req = "32/48000"; + pulse.default.req = "32/48000"; + pulse.max.req = "32/48000"; + pulse.min.quantum = "32/48000"; + pulse.max.quantum = "32/48000"; + }; + } + ]; + stream.properties = { + node.latency = "32/48000"; + resample.quality = 1; + }; +}; +hardware.pulseaudio.extraConfig = '' + .nofail + unload-module module-suspend-on-idle + .fail +''; + + + # Enable touchpad support (enabled default in most desktopManager). + # services.xserver.libinput.enable = true; + + # Define a user account. Don't forget to set a password with ‘passwd’. + programs.adb.enable = true; + users.users.joshuaelm = { + isNormalUser = true; + description = "Joshua Elmasri"; + extraGroups = [ "networkmanager" "wheel" "adbusers" ]; + packages = with pkgs; [ + # thunderbird + ]; + }; + + nix.optimise.automatic = true; + + # Allow unfree packages + nixpkgs.config.allowUnfree = true; + + # Configure drives + + fileSystems."/mnt/Games" = { + device = "/dev/nvme0n1p1"; + fsType = "btrfs"; + options = [ + "users" + "nofail" + "x-gvfs-show" + "exec" + ]; + }; + + + fileSystems."/mnt/More-Games" = { + device = "/dev/disk/by-uuid/eb1d5913-63fb-4fd8-8299-b428fd2d5ea0"; + fsType = "btrfs"; + options = [ + "users" + "nofail" + "x-gvfs-show" + "exec" + ]; + }; + + + + + + + # Fonts + fonts.packages = with pkgs; [ + fira-code + fira-code-symbols + roboto + nerd-fonts.fira-code + nerd-fonts.jetbrains-mono + ]; + + + # List packages installed in system profile. To search, run: + # $ nix search wget + environment.systemPackages = with pkgs; [ + (pkgs.buildFHSEnv { + name = "fhs"; + targetPkgs = pkgs: with pkgs; [ + alsa-lib atk cairo cups curl dbus expat file fish fontconfig freetype + fuse glib gtk3 libGL libnotify libxml2 libxslt netcat nspr nss openjdk8 + openssl.dev cava pango appimage-run pkg-config strace udev vulkan-loader watch wget which + xorg.libX11 icu xorg.libxcb xorg.libXcomposite xorg.libXcursor + xorg.libXdamage xorg.libXext xorg.libXfixes xorg.libXi xorg.libXrandr + xorg.libXrender xorg.libXScrnSaver openssl xorg.libxshmfence xorg.libXtst + xorg.xcbutilkeysyms zlib fontconfig.lib SDL2 libGL libuuid xorg.libXft + ]; + profile = ''export FHS=1''; + runScript = "fish"; + }) + git + bibata-cursors + killall + mangohud + aonsoku + teamspeak3 + cemu + teamspeak6-client + unetbootin + labymod-launcher + unzip + winetricks + cowsay + pfetch + ryujinx + hyprpolkitagent + gomatrix + python3 + pavucontrol + gnomeExtensions.tray-icons-reloaded + cider + xfce.thunar + gnomeExtensions.open-bar + wallust + steamtinkerlaunch + grub2 + cargo + inputs.zen-browser.packages."${system}".default + qalculate-qt + kdePackages.kdenlive + blueman + fuse + linux-wallpaperengine + ntfs3g + lapce + prismlauncher + librewolf + protonup-qt + mlt + nspr + nss_latest + nssTools + qt5.full + dconf + openjdk23 + heroic + protontricks + gamescope + playerctl + libsForQt5.qt5.qtwebsockets + wine + alvr + bottles + cava + pop-icon-theme + gnome-tweaks + libnotify + libreoffice + hunspell + hunspellDicts.en_US + neovide + flatpak + gradience + ]; + + # VirtualBox + + virtualisation.virtualbox.host.enable = true; + users.extraGroups.vboxusers.members = [ "user-with-access-to-virtualbox" ]; + + + services.sunshine = { + enable = true; + autoStart = true; + capSysAdmin = true; + openFirewall = true; + + }; + # Enable Steam + programs.steam = { + enable = true; + remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play + dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server + }; + + nixpkgs.config.packageOverrides = pkgs: { + steam = pkgs.steam.override { + extraLibraries = pkgs: [ pkgs.xorg.libxcb ]; + extraPkgs = pkgs: with pkgs; [ + xorg.libXcursor + xorg.libXi + xorg.libXinerama + xorg.libXScrnSaver + libpng + libpulseaudio + libvorbis + stdenv.cc.cc.lib + libkrb5 + keyutils + ]; + }; + }; + + programs.gamescope = { + enable = true; + capSysNice = true; + }; + + programs.nix-ld.enable = true; + + # Some programs need SUID wrappers, can be configured further or are + # started in user sessions. + # programs.mtr.enable = true; + # programs.gnupg.agent = { + # enable = true; + # enableSSHSupport = true; + # }; + + # List services that you want to enable: + + # Enable the OpenSSH daemon. + services.openssh.enable = true; + services.openssh.allowSFTP = true; + + # Open ports in the firewall. + networking.firewall.allowedTCPPorts = [ 7860 3042 47990 48010 5001 ]; + networking.firewall.allowedUDPPorts = [ 7860 3042 47990 4800 48010 ]; + # Or disable the firewall altogether. + # networking.firewall.enable = false; + + # This value determines the NixOS release from which the default + # settings for stateful data, like file locations and database versions + # on your system were taken. It‘s perfectly fine and recommended to leave + # this value at the release version of the first install of this system. + # Before changing this value read the documentation for this option + # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). + system.stateVersion = "23.11"; # Did you read the comment? + # Enable lakes + nix = { + extraOptions = '' + experimental-features = nix-command flakes + ''; +}; + +} diff --git a/hosts/desktop/hardware-configuration.nix b/hosts/desktop/hardware-configuration.nix new file mode 100644 index 0000000..83fdf69 --- /dev/null +++ b/hosts/desktop/hardware-configuration.nix @@ -0,0 +1,39 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/b6501e43-45c0-46bc-b77f-2f42c3a15572"; + fsType = "btrfs"; + options = [ "subvol=@" ]; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/FE68-923D"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; + + swapDevices = [ ]; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp3s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/hosts/desktop/home.nix b/hosts/desktop/home.nix new file mode 100644 index 0000000..ce639dd --- /dev/null +++ b/hosts/desktop/home.nix @@ -0,0 +1,134 @@ +{ config, pkgs, inputs, ... }: + +{ + # Home Manager needs a bit of information about you and the + # paths it should manage. + home.username = "joshuaelm"; + home.homeDirectory = "/home/joshuaelm"; + + imports = [ ../../modules/nvim ../../modules/stylix.nix ../../modules/hypr/hyprland_desktop.nix ]; + + + home.packages = [ + pkgs.element-desktop + pkgs.waybar + pkgs.signal-desktop-bin + pkgs.swaybg + pkgs.gpu-screen-recorder + pkgs.gpu-screen-recorder-gtk + pkgs.supersonic + pkgs.adw-gtk3 + pkgs.hyprpanel + ]; + + programs.hyprlock.enable = false; + programs.kitty.enable = true; + programs.cava.enable = true; + programs.btop.enable = true; + programs.rofi.enable = true; + programs.rofi.package = pkgs.rofi-wayland; + services.hyprpaper.enable = true; + wayland.windowManager.hyprland.enable = true; + + #xdg.configFile.hypr.source = ./modules/hypr; + xdg.configFile.waybar.source = ./modules/waybar; + xdg.configFile.cava.source = ./modules/cava; + #xdg.configFile.kitty.source = ./modules/kitty; + #xdg.configFile.rofi.source = ./modules/rofi; + xdg.configFile.dunst.source = ./modules/dunst; + home.file.".cache/ags/hyprpanel/options.json".source = ./modules/hyprpanel/options.json; + + xdg.configFile.waybar.force = true; + xdg.configFile.cava.force = true; + xdg.configFile.dunst.force = true; + home.file.".cache/ags/hyprpanel/options.json".force = true; + + home.file.".icons/default".source = "${pkgs.bibata-cursors}/share/icons/Bibata-Modern-Classic"; + + services.mpd-mpris.enable = true; + + + programs.rofi.extraConfig = { + show-icons = true; + drun-display-format = "{icon} {name}"; + hide-scrollbar = true; + sidebar-mode = true; + dpi = 110; + font = "FreeSans Regular 12"; + icon-theme = "Gruvbox-Plus-Dark"; + }; + programs.rofi.theme = { + window.height = 600; + window.width = 600; + window.border-radius = 10; + + element = { + padding = 5; + border-radius = 10; + }; + inputbar.padding = 14; + listview = { + padding = 8; + border-radius = "0 0 10 10"; + border = "2 2 2 2"; + dynamic = false; + }; + "element-text element-icon" = { + size = 40; + margin = "0 10 0 0"; + }; + mainbox.children = "inputbar, message, listview"; + mainbox.spacing = 0; + }; + + programs.kitty.extraConfig = '' + font_family Fira Code Nerd Font + bold_font auto + italic_font auto + bold_italic_font auto + confirm_os_window_close 0 + cursor_shape beam + cursor_trail 3 + ''; + + + # This value determines the Home Manager release that your + # configuration is compatible with. This helps avoid breakage + # when a new Home Manager release introduces backwards + # incompatible changes. + # + # You can update Home Manager without changing this value. See + # the Home Manager release notes for a list of state version + # changes in each release. + home.stateVersion = "23.11"; + xdg.dataFile = { + "Steam/compatibilitytools.d/SteamTinkerLaunch/compatibilitytool.vdf".text = '' + "compatibilitytools" + { + "compat_tools" + { + "Proton-stl" // Internal name of this tool + { + "install_path" "." + "display_name" "Steam Tinker Launch" + + "from_oslist" "windows" + "to_oslist" "linux" + } + } + } + ''; + "Steam/compatibilitytools.d/SteamTinkerLaunch/steamtinkerlaunch".source = + config.lib.file.mkOutOfStoreSymlink "${pkgs.steamtinkerlaunch}/bin/steamtinkerlaunch"; + "Steam/compatibilitytools.d/SteamTinkerLaunch/toolmanifest.vdf".text = '' + "manifest" + { + "commandline" "/steamtinkerlaunch run" + "commandline_waitforexitandrun" "/steamtinkerlaunch waitforexitandrun" + } + ''; + }; + + # Let Home Manager install and manage itself. + programs.home-manager.enable = true; +} diff --git a/hosts/mac-laptop/configuration.nix b/hosts/mac-laptop/configuration.nix new file mode 100644 index 0000000..b2eb963 --- /dev/null +++ b/hosts/mac-laptop/configuration.nix @@ -0,0 +1,215 @@ +# Edit this configuration file to define what should be installed on +# your system. Help is available in the configuration.nix(5) man page +# and in the NixOS manual (accessible by running ‘nixos-help’). + +{ config, pkgs, inputs, ... }: + +{ + imports = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + ]; + powerManagement.enable = true; + hardware.asahi.peripheralFirmwareDirectory = ./firmware; + hardware.asahi.enable = true; + services.upower.enable = true; + + + # Bootloader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = false; + boot = { + + plymouth = { + enable = true; + theme = "square_hud"; + themePackages = with pkgs; [ + # By default we would install all themes + (adi1090x-plymouth-themes.override { + selected_themes = [ "square_hud" ]; + }) + ]; + }; + + # Enable "Silent Boot" + consoleLogLevel = 0; + initrd.verbose = false; + kernelParams = [ + "quiet" + "splash" + "boot.shell_on_fail" + "loglevel=3" + "rd.systemd.show_status=false" + "rd.udev.log_level=3" + "udev.log_priority=3" + ]; + # Hide the OS choice for bootloaders. + # It's still possible to open the bootloader list by pressing any key + # It will just not appear on screen unless a key is pressed + loader.timeout = 0; + + }; + + networking.hostName = "nixos-laptop"; # Define your hostname. + # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. + + # Configure network proxy if necessary + # networking.proxy.default = "http://user:password@proxy:port/"; + # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; + + # Enable networking + networking.networkmanager.enable = true; + + # Set your time zone. + time.timeZone = "America/Chicago"; + + # Select internationalisation properties. + i18n.defaultLocale = "en_US.UTF-8"; + + i18n.extraLocaleSettings = { + LC_ADDRESS = "en_US.UTF-8"; + LC_IDENTIFICATION = "en_US.UTF-8"; + LC_MEASUREMENT = "en_US.UTF-8"; + LC_MONETARY = "en_US.UTF-8"; + LC_NAME = "en_US.UTF-8"; + LC_NUMERIC = "en_US.UTF-8"; + LC_PAPER = "en_US.UTF-8"; + LC_TELEPHONE = "en_US.UTF-8"; + LC_TIME = "en_US.UTF-8"; + }; + + # Enable Cosmic + services.desktopManager.cosmic.enable = false; + services.displayManager.cosmic-greeter.enable = false; + services.xserver.desktopManager.gnome.enable = false; + services.desktopManager.plasma6.enable = false; + services.displayManager.sddm.enable = false; + services.libinput.enable = true; + programs.hyprland.enable = true; + environment.sessionVariables.NIXOS_OZONE_WL = "1"; + + services.greetd = { + enable = true; + settings = rec { + initial_session = { + command = "${pkgs.hyprland}/bin/Hyprland"; + user = "joshuaelm"; + }; + default_session = initial_session; + }; + }; + + + # Swap + swapDevices = [ { + device = "/var/lib/swapfile"; + size = 16*1024; + } ]; + + + hardware.graphics = { + enable = true; + }; + + hardware.asahi.useExperimentalGPUDriver = true; + + # Configure keymap in X11 + services.xserver.xkb = { + layout = "us"; + variant = ""; + }; + + # fingerprint + systemd.services.fprintd = { + wantedBy = [ "multi-user.target" ]; + serviceConfig.Type = "simple"; + }; + services.fprintd.enable = true; + + # Define a user account. Don't forget to set a password with ‘passwd’. + users.users.joshuaelm = { + isNormalUser = true; + description = "Joshua Elmasri"; + extraGroups = [ "networkmanager" "wheel" "adbusers" "dialout" ]; + packages = with pkgs; []; + }; + + programs.adb.enable = true; + + # Allow unfree packages + nixpkgs.config.allowUnfree = true; + + # List packages installed in system profile. To search, run: + # $ nix search wget + # Flatpak + #services.flatpak.enable = true; + #services.flatpak.update.onActivation = true; + #services.flatpak.packages = [ + # "app.bluebubbles.BlueBubbles" + # "com.github.johnfactotum.Foliate" + # "org.jdownloader.JDownloader" + #]; + + # Fonts + + fonts.packages = with pkgs; [ + fira-code + fira-code-symbols + roboto + nerd-fonts.fira-code + nerd-fonts.jetbrains-mono + ]; + + + programs.kdeconnect.enable = true; + + environment.systemPackages = with pkgs; [ + # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. + # wget + neovim + killall + hypridle + git + bibata-cursors + element-desktop + rofi-wayland + inputs.zen-browser.packages.${pkgs.system}.default + playerctl + cava + moonlight-qt + ]; + + # Bluetooth + hardware.bluetooth.enable = true; + + # Some programs need SUID wrappers, can be configured further or are + # started in user sessions. + # programs.mtr.enable = true; + # programs.gnupg.agent = { + # enable = true; + # enableSSHSupport = true; + # }; + + # List services that you want to enable: + + # Enable the OpenSSH daemon. + # services.openssh.enable = true; + + # Enable Flakes + nix.settings.experimental-features = [ "nix-command" "flakes" ]; + + # Open ports in the firewall. + # networking.firewall.allowedTCPPorts = [ ... ]; + # networking.firewall.allowedUDPPorts = [ ... ]; + # Or disable the firewall altogether. + # networking.firewall.enable = false; + + # This value determines the NixOS release from which the default + # settings for stateful data, like file locations and database versions + # on your system were taken. It‘s perfectly fine and recommended to leave + # this value at the release version of the first install of this system. + # Before changing this value read the documentation for this option + # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). + system.stateVersion = "25.05"; # Did you read the comment? + +} diff --git a/hosts/mac-laptop/firmware/all_firmware.tar.gz b/hosts/mac-laptop/firmware/all_firmware.tar.gz new file mode 100755 index 0000000..7329f10 Binary files /dev/null and b/hosts/mac-laptop/firmware/all_firmware.tar.gz differ diff --git a/hosts/mac-laptop/firmware/kernelcache.release.mac13g b/hosts/mac-laptop/firmware/kernelcache.release.mac13g new file mode 100755 index 0000000..9d48281 Binary files /dev/null and b/hosts/mac-laptop/firmware/kernelcache.release.mac13g differ diff --git a/hosts/mac-laptop/hardware-configuration.nix b/hosts/mac-laptop/hardware-configuration.nix new file mode 100644 index 0000000..3c151cf --- /dev/null +++ b/hosts/mac-laptop/hardware-configuration.nix @@ -0,0 +1,37 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "usb_storage" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/089c3a91-0f69-4a24-8ca0-e7a4a817be07"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/4267-12F5"; + fsType = "vfat"; + options = [ "fmask=0022" "dmask=0022" ]; + }; + + swapDevices = [ ]; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.wlan0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux"; +} diff --git a/hosts/mac-laptop/home.nix b/hosts/mac-laptop/home.nix new file mode 100644 index 0000000..e8713a0 --- /dev/null +++ b/hosts/mac-laptop/home.nix @@ -0,0 +1,126 @@ +{ config, pkgs, inputs, ... }: + +{ + # Home Manager needs a bit of information about you and the + # paths it should manage. + home.username = "joshuaelm"; + home.homeDirectory = "/home/joshuaelm"; + + imports = [ ../../modules/nvim ../../modules/stylix.nix ../../modules/hypr/hyprland_laptop.nix ]; + + + home.packages = [ + pkgs.element-desktop + pkgs.waybar + pkgs.signal-desktop-bin + pkgs.supersonic + pkgs.adw-gtk3 + ]; + + programs.hyprlock.enable = false; + programs.kitty.enable = true; + programs.cava.enable = true; + programs.btop.enable = true; + programs.rofi.enable = true; + programs.rofi.package = pkgs.rofi-wayland; + services.hyprpaper.enable = true; + wayland.windowManager.hyprland.enable = true; + + #xdg.configFile.hypr.source = ./modules/hypr; + #xdg.configFile.waybar.source = ./modules/waybar; + #xdg.configFile.cava.source = ./modules/cava; + #xdg.configFile.kitty.source = ./modules/kitty; + #xdg.configFile.rofi.source = ./modules/rofi; + #xdg.configFile.dunst.source = ./modules/dunst; + #home.file.".cache/ags/hyprpanel/options.json".source = ./modules/hyprpanel/options.json; + + + home.file.".icons/default".source = "${pkgs.bibata-cursors}/share/icons/Bibata-Modern-Classic"; + + services.mpd-mpris.enable = true; + + + programs.rofi.extraConfig = { + show-icons = true; + drun-display-format = "{icon} {name}"; + hide-scrollbar = true; + sidebar-mode = true; + dpi = 110; + font = "FreeSans Regular 12"; + icon-theme = "Gruvbox-Plus-Dark"; + }; + programs.rofi.theme = { + window.height = 600; + window.width = 600; + window.border-radius = 10; + + element = { + padding = 5; + border-radius = 10; + }; + inputbar.padding = 14; + listview = { + padding = 8; + border-radius = "0 0 10 10"; + border = "2 2 2 2"; + dynamic = false; + }; + "element-text element-icon" = { + size = 40; + margin = "0 10 0 0"; + }; + mainbox.children = "inputbar, message, listview"; + mainbox.spacing = 0; + }; + + programs.kitty.extraConfig = '' + font_family Fira Code Nerd Font + bold_font auto + italic_font auto + bold_italic_font auto + confirm_os_window_close 0 + cursor_shape beam + cursor_trail 3 + ''; + + + # This value determines the Home Manager release that your + # configuration is compatible with. This helps avoid breakage + # when a new Home Manager release introduces backwards + # incompatible changes. + # + # You can update Home Manager without changing this value. See + # the Home Manager release notes for a list of state version + # changes in each release. + home.stateVersion = "23.11"; + xdg.dataFile = { + "Steam/compatibilitytools.d/SteamTinkerLaunch/compatibilitytool.vdf".text = '' + "compatibilitytools" + { + "compat_tools" + { + "Proton-stl" // Internal name of this tool + { + "install_path" "." + "display_name" "Steam Tinker Launch" + + "from_oslist" "windows" + "to_oslist" "linux" + } + } + } + ''; + "Steam/compatibilitytools.d/SteamTinkerLaunch/steamtinkerlaunch".source = + config.lib.file.mkOutOfStoreSymlink "${pkgs.steamtinkerlaunch}/bin/steamtinkerlaunch"; + "Steam/compatibilitytools.d/SteamTinkerLaunch/toolmanifest.vdf".text = '' + "manifest" + { + "commandline" "/steamtinkerlaunch run" + "commandline_waitforexitandrun" "/steamtinkerlaunch waitforexitandrun" + } + ''; + }; + + # Let Home Manager install and manage itself. + programs.home-manager.enable = true; +} diff --git a/modules/hypr/hyprland.nix b/modules/hypr/hyprland_desktop.nix similarity index 100% rename from modules/hypr/hyprland.nix rename to modules/hypr/hyprland_desktop.nix diff --git a/modules/hypr/hyprland_laptop.nix b/modules/hypr/hyprland_laptop.nix new file mode 100644 index 0000000..1c3001d --- /dev/null +++ b/modules/hypr/hyprland_laptop.nix @@ -0,0 +1,201 @@ +{pkgs, ...}: + +{ + wayland.windowManager.hyprland.extraConfig = '' + autogenerated = 0 # remove this line to remove the warning + + +# See https://wiki.hyprland.org/Configuring/Monitors/ +#monitor = HDMI-A-1, 3840x2160@60, 0x0, 1.5 +#monitor = HDMI-A-1, disable +#monitor = sunshine, highres@highrr, 0x0, 1 +#monitor = DP-1, highres@highrr, 0x0, 1 +#monitor = DP-1, highres@highrr, 0x0, 1, bitdepth, 10, cm, hdr, sdrsaturation, 1, sdrbrightness, 1 +monitor = eDP-1, highres@highrr, 0x0, 1.6 +exec-once = hyprctl dispatch workspace 1 +#exec-once = linux-wallpaperengine --screen-root HDMI-A-1 --silent --fps 60 3000562427 +exec-once = hyprlock +# exec-once = waybar +exec-once = hyprpanel +exec-once = systemctl --user start hyprpolkitagent +# See https://wiki.hyprland.org/Configuring/Keywords/ for more + +# Execute your favorite apps at launch +# exec-once = waybar & hyprpaper & firefox + + +# Set programs that you use +$terminal = kitty +$fileManager = thunar +$menu = rofi -show drun + +# Some default env vars. +env = XCURSOR_SIZE,24 +env = QT_QPA_PLATFORMTHEME,qt6ct # change to qt6ct if you have that + +# For all categories, see https://wiki.hyprland.org/Configuring/Variables/ +input { + kb_layout = us + kb_variant = + kb_model = + kb_options = + kb_rules = + accel_profile = flat + + follow_mouse = 1 + + touchpad { + natural_scroll = yes + clickfinger_behavior = yes + tap-to-click = no + tap-and-drag = no + } + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. +} + +general { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + gaps_in = 5 + gaps_out = 5 + border_size = 2 + layout = dwindle + + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on + allow_tearing = false +} + +decoration { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + rounding = 10 + + blur { + enabled = yes + size = 5 + passes = 3 + new_optimizations = on + ignore_opacity = on + xray = false + } + + shadow { + enabled = true + offset = 3, 3 + color = rgba(323232cc) + } +} + +animations { + enabled = yes + + # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + + animation = windows, 1, 7, myBezier + animation = windowsOut, 1, 7, default, popin 80% + animation = border, 1, 10, default + animation = borderangle, 1, 8, default + animation = fade, 1, 7, default + animation = workspaces, 1, 6, default +} + +dwindle { + # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more + pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = yes # you probably want this +} + +layerrule = unset, overlay + +gestures { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + workspace_swipe = off +} + +misc { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + force_default_wallpaper = 0 # Set to 0 to disable the anime mascot wallpapers +} + + +# Example per-device config +# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more + + +# Example windowrule v1 +# windowrule = float, ^(kitty)$ +# Example windowrule v2 +# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more + +# Window Rules + + + +# See https://wiki.hyprland.org/Configuring/Keywords/ for more +$mainMod = SUPER + +# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more +bind = $mainMod, Return, exec, $terminal +bind = $mainMod, Q, killactive, +bind = $mainMod, M, exec, hyprlock +bind = $mainMod, E, exec, $fileManager +bind = $mainMod, V, togglefloating, +bind = $mainMod, Space, exec, $menu +bind = $mainMod, B, exec, zen +bind = $mainMod, P, pseudo, # dwindle +bind = $mainMod, J, togglesplit, # dwindle +bind = $mainMod, F, fullscreen, +bind = , XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+ +bind = , XF86AudioLowerVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%- + +# Move focus with mainMod + arrow keys +bind = $mainMod, left, movefocus, l +bind = $mainMod, right, movefocus, r +bind = $mainMod, up, movefocus, u +bind = $mainMod, down, movefocus, d + +# Switch workspaces with mainMod + [0-9] +bind = $mainMod, 1, workspace, 1 +bind = $mainMod, 2, workspace, 2 +bind = $mainMod, 3, workspace, 3 +bind = $mainMod, 4, workspace, 4 +bind = $mainMod, 5, workspace, 5 +bind = $mainMod, 6, workspace, 6 +bind = $mainMod, 7, workspace, 7 +bind = $mainMod, 8, workspace, 8 +bind = $mainMod, 9, workspace, 9 +bind = $mainMod, 0, workspace, 10 + +# Move active window to a workspace with mainMod + SHIFT + [0-9] +bind = $mainMod SHIFT, 1, movetoworkspace, 1 +bind = $mainMod SHIFT, 2, movetoworkspace, 2 +bind = $mainMod SHIFT, 3, movetoworkspace, 3 +bind = $mainMod SHIFT, 4, movetoworkspace, 4 +bind = $mainMod SHIFT, 5, movetoworkspace, 5 +bind = $mainMod SHIFT, 6, movetoworkspace, 6 +bind = $mainMod SHIFT, 7, movetoworkspace, 7 +bind = $mainMod SHIFT, 8, movetoworkspace, 8 +bind = $mainMod SHIFT, 9, movetoworkspace, 9 +bind = $mainMod SHIFT, 0, movetoworkspace, 10 + +# Example special workspace (scratchpad) +bind = $mainMod, S, togglespecialworkspace, magic +bind = $mainMod SHIFT, S, movetoworkspace, special:magic + +# Scroll through existing workspaces with mainMod + scroll +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + +# Screen Recording +bind = , code:76, exec, killall -SIGUSR1 gpu-screen-recorder +bind = , code:75, exec, killall -SIGINT gpu-screen-recorder + ''; +} diff --git a/modules/hyprpanel/options.json b/modules/hyprpanel/options.json deleted file mode 100644 index fa1e86c..0000000 --- a/modules/hyprpanel/options.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "bar.customModules.updates.pollingInterval": 1440000, - "menus.transition": "crossfade", - "theme.bar.menus.monochrome": false, - "theme.bar.transparent": false, - "theme.bar.menus.card_radius": "0.4em", - "theme.bar.menus.border.radius": "0.7em", - "theme.bar.menus.border.size": "0.13em", - "theme.bar.floating": true, - "theme.bar.outer_spacing": "1.6em", - "theme.bar.border.location": "none", - "theme.bar.location": "top", - "theme.bar.buttons.enableBorders": false, - "menus.clock.time.military": true, - "menus.clock.time.hideSeconds": true, - "menus.clock.weather.location": "Cedar Hill", - "theme.bar.border_radius": "0.4em", - "theme.bar.buttons.workspaces.enableBorder": false, - "theme.bar.buttons.radius": "0.3em", - "theme.bar.buttons.padding_y": "0.2rem", - "theme.bar.buttons.padding_x": "0.7rem", - "theme.bar.margin_sides": "0.5em", - "bar.launcher.autoDetectIcon": true, - "menus.dashboard.powermenu.avatar.image": "/home/joshuaelm/NixOS-Configs/pfp.jpg", - "menus.dashboard.powermenu.avatar.name": "Joshua Elmasri", - "theme.bar.menus.menu.dashboard.profile.radius": "100px", - "menus.dashboard.powermenu.logout": "hyprlock", - "menus.dashboard.controls.enabled": false, - "menus.dashboard.stats.enabled": true, - "menus.dashboard.shortcuts.enabled": false, - "menus.dashboard.directories.enabled": false, - "menus.dashboard.stats.enable_gpu": false, - "menus.bluetooth.showBattery": true, - "theme.font.name": "Ubuntu Nerd Font", - "scalingPriority": "hyprland", - "bar.customModules.netstat.dynamicIcon": false, - "theme.bar.buttons.modules.netstat.enableBorder": false, - "theme.bar.buttons.modules.power.enableBorder": false, - "menus.media.hideAuthor": false, - "menus.media.displayTimeTooltip": false, - "menus.media.displayTime": true, - "menus.volume.raiseMaximumVolume": false, - "bar.volume.label": true, - "bar.network.label": true, - "bar.network.truncation": true, - "bar.media.format": "{title}", - "bar.media.show_active_only": true, - "bar.media.truncation_size": 100, - "bar.clock.format": "%R", - "bar.clock.icon": "", - "bar.layouts": { - "0": { - "left": [ - "dashboard", - "workspaces" - ], - "middle": [ - "media" - ], - "right": [ - "volume", - "network", - "bluetooth", - "battery", - "systray", - "clock", - "notifications" - ] - }, - "1": { - "left": [ - "dashboard", - "workspaces", - "windowtitle" - ], - "middle": [ - "media" - ], - "right": [ - "volume", - "clock", - "notifications" - ] - }, - "2": { - "left": [ - "dashboard", - "workspaces", - "windowtitle" - ], - "middle": [ - "media" - ], - "right": [ - "volume", - "clock", - "notifications" - ] - } - }, - "theme.bar.buttons.workspaces.fontSize": "1.2em", - "bar.workspaces.show_numbered": false, - "theme.bar.buttons.workspaces.smartHighlight": true, - "bar.workspaces.show_icons": true, - "bar.workspaces.icons.occupied": "", - "theme.bar.opacity": 100, - "theme.bar.buttons.monochrome": false, - "theme.bar.buttons.notifications.enableBorder": false, - "theme.bar.menus.enableShadow": true, - "theme.bar.buttons.opacity": 100, - "theme.bar.enableShadow": true, - "theme.bar.menus.buttons.radius": "0.4em", - "theme.bar.menus.shadow": "1px 1px 2px 1px #323232cc", - "theme.bar.menus.shadowMargins": "5px 5px", - "theme.bar.shadow": "1px 1px 2px 1px #323232cc", - "theme.bar.buttons.dashboard.enableBorder": false, - "theme.bar.buttons.windowtitle.enableBorder": false, - "menus.transitionTime": 1 -} \ No newline at end of file diff --git a/sDpJ0mPGhn4FnbWOsOI4HoiYUvnyKjJck4RJnPZo-3609584059.jpg b/sDpJ0mPGhn4FnbWOsOI4HoiYUvnyKjJck4RJnPZo-3609584059.jpg deleted file mode 100644 index 014b8e3..0000000 Binary files a/sDpJ0mPGhn4FnbWOsOI4HoiYUvnyKjJck4RJnPZo-3609584059.jpg and /dev/null differ diff --git a/sddm-theme.nix b/sddm-theme.nix deleted file mode 100644 index a614282..0000000 --- a/sddm-theme.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ stdenvNoCC -, fetchFromGitHub -, libsForQt5 -}: - -stdenvNoCC.mkDerivation rec { - pname = "sddm-rose-pine-theme"; - version = "1.2"; - dontBuild = true; - - propagatedUserEnvPkgs = [ - libsForQt5.qt5.qtgraphicaleffects - ]; - - src = fetchFromGitHub { - owner = "lwndhrst"; - repo = "sddm-rose-pine"; - rev = "v${version}"; - sha256 = "+WOdazvkzpOKcoayk36VLq/6lLOHDWkDykDsy8p87JE="; - }; - - installPhase = '' - mkdir -p $out/share/sddm/themes - cp -aR $src $out/share/sddm/themes/rose-pine - ''; -}