Unified Laptop and Desktop

This commit is contained in:
2025-07-07 17:16:11 -05:00
parent ddd9a53ab0
commit 6ef4ac360f
20 changed files with 1283 additions and 321 deletions

0
Boot
View File

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 MiB

BIN
assets/pfp.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

217
flake.lock generated
View File

@@ -1,27 +1,5 @@
{ {
"nodes": { "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": { "astal": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -29,54 +7,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1750020774, "lastModified": 1751126708,
"narHash": "sha256-43lMH+9/0EHRhMuNvvo3Izvp1wXyMcSKRi8F2wSTepY=", "narHash": "sha256-AodIKw7TmI7rHVcOfEsO82stupMYIMVQeLAUQfVxnkU=",
"owner": "aylur", "owner": "aylur",
"repo": "astal", "repo": "astal",
"rev": "ca3190d077d09b9597e7de471a8e388a08f112e9", "rev": "ac90f09385a2295da9fdc108aaba4a317aaeacc7",
"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",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -169,6 +104,21 @@
} }
}, },
"flake-compat": { "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, "flake": false,
"locked": { "locked": {
"lastModified": 1746162366, "lastModified": 1746162366,
@@ -192,11 +142,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1749398372, "lastModified": 1751413152,
"narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=", "narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569", "rev": "77826244401ea9de6e3bac47c2db46005e1f30b5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -284,11 +234,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1750304462, "lastModified": 1751824240,
"narHash": "sha256-Mj5t4yX05/rXnRqJkpoLZTWqgStB88Mr/fegTRqyiWc=", "narHash": "sha256-aDDC0CHTlL7QDKWWhdbEgVPK6KwWt+ca0QkmHYZxMzI=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "863842639722dd12ae9e37ca83bcb61a63b36f6c", "rev": "fd9e55f5fac45a26f6169310afca64d56b681935",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -318,26 +268,6 @@
"type": "github" "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": { "ixx": {
"inputs": { "inputs": {
"flake-utils": [ "flake-utils": [
@@ -368,11 +298,11 @@
}, },
"master": { "master": {
"locked": { "locked": {
"lastModified": 1750562696, "lastModified": 1751914753,
"narHash": "sha256-Gxh6uZvgYCs5VaHtkxAWRZoBeoaWorU+EUlFrclhkWM=", "narHash": "sha256-46zytRNdtF3SpFI/bh+AYR6stQCk7Ad79egf79uG/uI=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "42cce0e237cd0ed6ae2bc3c5840b1188966a0e42", "rev": "e69f17b2fda2842ad65707ce3d3c65d62218dcd4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -382,9 +312,30 @@
"type": "github" "type": "github"
} }
}, },
"nixos-cosmic": { "nixos-apple-silicon": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "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": [
"nixpkgs" "nixpkgs"
], ],
@@ -392,11 +343,11 @@
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay"
}, },
"locked": { "locked": {
"lastModified": 1750520039, "lastModified": 1751591814,
"narHash": "sha256-sMxE77+YqBC8beZDUskuqM2NliKPBt+V9pL2OAE9Bys=", "narHash": "sha256-A4lgvuj4v+Pr8MniXz1FBG0DXOygi8tTECR+j53FMhM=",
"owner": "lilyinstarlight", "owner": "lilyinstarlight",
"repo": "nixos-cosmic", "repo": "nixos-cosmic",
"rev": "be0365958fcdb3681cad94b8daaf286466259602", "rev": "fef2d0c78c4e4d6c600a88795af193131ff51bdc",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -407,27 +358,26 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1748370509, "lastModified": 1751792365,
"narHash": "sha256-QlL8slIgc16W5UaI3w7xHQEP+Qmv/6vSNTpoZrrSlbk=", "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
"owner": "nixos", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "4faa5f5321320e49a78ae7848582f684d64783e9", "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "id": "nixpkgs",
"ref": "nixos-unstable", "ref": "nixos-unstable",
"repo": "nixpkgs", "type": "indirect"
"type": "github"
} }
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1750330365, "lastModified": 1751048012,
"narHash": "sha256-hJ7XMNVsTnnbV2NPmStCC07gvv5l2x7+Skb7hyUzazg=", "narHash": "sha256-MYbotu4UjWpTsq01wglhN5xDRfZYLFtNk7SBY0BcjkU=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "d883b6213afa179b58ba8bace834f1419707d0ad", "rev": "a684c58d46ebbede49f280b653b9e56100aa3877",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -438,21 +388,6 @@
} }
}, },
"nixpkgs_2": { "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": { "locked": {
"lastModified": 1743448293, "lastModified": 1743448293,
"narHash": "sha256-bmEPmSjJakAp/JojZRrUvNcDX2R5/nuX6bm+seVaGhs=", "narHash": "sha256-bmEPmSjJakAp/JojZRrUvNcDX2R5/nuX6bm+seVaGhs=",
@@ -478,11 +413,11 @@
"systems": "systems_2" "systems": "systems_2"
}, },
"locked": { "locked": {
"lastModified": 1750345447, "lastModified": 1751904655,
"narHash": "sha256-yOuSSfI4xovXQpSkZUK02CBcY1f0Nvm0RhnUN8xn2rY=", "narHash": "sha256-lHAj9Xh/vBf3cXns1wN5HPw/zwGTO/Uv/ttloBok1n4=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "6a1a348ab1f00bd32d2392b5c2fc72489c699af3", "rev": "bc997a240953bda9fa526e8a3d6f798a6072308a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -544,10 +479,10 @@
"inputs": { "inputs": {
"astal": "astal", "astal": "astal",
"home-manager": "home-manager", "home-manager": "home-manager",
"hyprpanel": "hyprpanel",
"master": "master", "master": "master",
"nixos-apple-silicon": "nixos-apple-silicon",
"nixos-cosmic": "nixos-cosmic", "nixos-cosmic": "nixos-cosmic",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs",
"nixvim": "nixvim", "nixvim": "nixvim",
"stylix": "stylix", "stylix": "stylix",
"zen-browser": "zen-browser" "zen-browser": "zen-browser"
@@ -561,11 +496,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1750473400, "lastModified": 1751251399,
"narHash": "sha256-wiW2j63MyGQyyijRF25hf7Ab7vx4G8pCiGjUe3OGV4c=", "narHash": "sha256-y+viCuy/eKKpkX1K2gDvXIJI/yzvy6zA3HObapz9XZ0=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "3d7d4c4e284f26d6dc4840491c66884912be0062", "rev": "b22d5ee8c60ed1291521f2dde48784edd6bf695b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -595,11 +530,11 @@
"tinted-zed": "tinted-zed" "tinted-zed": "tinted-zed"
}, },
"locked": { "locked": {
"lastModified": 1751840923, "lastModified": 1751914048,
"narHash": "sha256-4HZxn+PrWytrWVg5c5SEetv3m9/k7rngJq27zKuRIfo=", "narHash": "sha256-xHO3xlw35tCC0f3pN3osPNjgwwwAgusTuZk5iC8oDiE=",
"owner": "danth", "owner": "danth",
"repo": "stylix", "repo": "stylix",
"rev": "5259682ce58d935f248297bf1c9793a5cee0787e", "rev": "bf0ef81c8fcc30c32db9dab32d379f8d9db835e4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -759,14 +694,14 @@
"zen-browser": { "zen-browser": {
"inputs": { "inputs": {
"home-manager": "home-manager_2", "home-manager": "home-manager_2",
"nixpkgs": "nixpkgs_3" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1750557004, "lastModified": 1751858709,
"narHash": "sha256-P3H0y4eYALvie8iFcT1LqmR+cB5UgT/qFoUWY/CX5O4=", "narHash": "sha256-xghd1GDPRSa6aD6tEk2JCuQDZWdHITlCA/stwSVoZJQ=",
"owner": "0xc000022070", "owner": "0xc000022070",
"repo": "zen-browser-flake", "repo": "zen-browser-flake",
"rev": "5bebd80f8684a7298013fcf9bf846369d3a6542a", "rev": "216dd333fa41aa013bf8aab9322d7c1a2aee5b4a",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -14,11 +14,14 @@
zen-browser.url = "github:0xc000022070/zen-browser-flake"; zen-browser.url = "github:0xc000022070/zen-browser-flake";
master.url = "github:NixOS/nixpkgs/master"; master.url = "github:NixOS/nixpkgs/master";
home-manager.url = "github:nix-community/home-manager"; home-manager.url = "github:nix-community/home-manager";
hyprpanel.url = "github:Jas-SinghFSU/HyprPanel";
nixvim = { nixvim = {
url = "github:nix-community/nixvim"; url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nixos-apple-silicon = {
url = "github:tpwrules/nixos-apple-silicon";
inputs.nixpkgs.follows = "nixpkgs";
};
astal = { astal = {
url = "github:aylur/astal"; url = "github:aylur/astal";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
@@ -26,7 +29,7 @@
home-manager.inputs.nixpkgs.follows = "nixpkgs"; 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 = { nixosConfigurations = {
nixos = nixpkgs.lib.nixosSystem { nixos = nixpkgs.lib.nixosSystem {
@@ -39,19 +42,41 @@
substituters = [ "https://cosmic.cachix.org/" ]; substituters = [ "https://cosmic.cachix.org/" ];
trusted-public-keys = [ "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE=" ]; trusted-public-keys = [ "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE=" ];
}; };
nixpkgs.overlays =
[ inputs.hyprpanel.overlay ];
_module.args = { inherit inputs; };
} }
#stylix.nixosModules.stylix #stylix.nixosModules.stylix
nixos-cosmic.nixosModules.default nixos-cosmic.nixosModules.default
./configuration.nix ./hosts/desktop/configuration.nix
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
{ {
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = {inherit inputs;}; home-manager.extraSpecialArgs = {inherit inputs;};
home-manager.users.joshuaelm = { 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 ];
}; };
} }
]; ];

28
gs.sh
View File

@@ -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[@]}"

View File

@@ -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. Its 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
'';
};
}

View File

@@ -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.<interface>.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;
}

134
hosts/desktop/home.nix Normal file
View File

@@ -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;
}

View File

@@ -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. Its 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?
}

Binary file not shown.

Binary file not shown.

View File

@@ -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.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.wlan0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux";
}

126
hosts/mac-laptop/home.nix Normal file
View File

@@ -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;
}

View File

@@ -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
'';
}

View File

@@ -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
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 345 KiB

View File

@@ -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
'';
}