This commit is contained in:
2024-01-31 12:27:55 -06:00
parent 3d9a229539
commit 484d22e832
6 changed files with 1816 additions and 12 deletions

View File

@@ -2,7 +2,7 @@
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, ... }: { config, pkgs, master, ... }:
{ {
imports = imports =
@@ -12,7 +12,9 @@
# Bootloader. # Bootloader.
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.initrd.systemd.enable = true;
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
boot.kernelParams = ["quiet"];
boot.initrd.luks.devices."luks-db49c136-7de8-4ab6-8e05-754bab13925d".device = "/dev/disk/by-uuid/db49c136-7de8-4ab6-8e05-754bab13925d"; boot.initrd.luks.devices."luks-db49c136-7de8-4ab6-8e05-754bab13925d".device = "/dev/disk/by-uuid/db49c136-7de8-4ab6-8e05-754bab13925d";
networking.hostName = "nixos"; # Define your hostname. networking.hostName = "nixos"; # Define your hostname.
@@ -27,7 +29,7 @@
# Set your time zone. # Set your time zone.
time.timeZone = "America/Chicago"; time.timeZone = "America/Chicago";
environment.sessionVariables.NIXOS_OZONE_WL = "1";
# Select internationalisation properties. # Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8"; i18n.defaultLocale = "en_US.UTF-8";
@@ -46,9 +48,15 @@
# Enable the X11 windowing system. # Enable the X11 windowing system.
services.xserver.enable = true; services.xserver.enable = true;
# Enable Plymouth
boot.plymouth = {
enable = true;
};
# Enable the GNOME Desktop Environment. # Enable the GNOME Desktop Environment.
services.xserver.displayManager.gdm.enable = true; services.xserver.displayManager.sddm.enable = true;
services.xserver.desktopManager.gnome.enable = true; services.xserver.displayManager.sddm.wayland.enable = true;
programs.hyprland.enable = true;
# Configure keymap in X11 # Configure keymap in X11
services.xserver = { services.xserver = {
@@ -58,7 +66,6 @@
}; };
# Enable CUPS to print documents. # Enable CUPS to print documents.
services.printing.enable = true; services.printing.enable = true;
@@ -88,7 +95,7 @@
description = "Joshua Elmasri"; description = "Joshua Elmasri";
extraGroups = [ "networkmanager" "wheel" ]; extraGroups = [ "networkmanager" "wheel" ];
packages = with pkgs; [ packages = with pkgs; [
firefox vivaldi
# thunderbird # thunderbird
]; ];
}; };
@@ -96,11 +103,61 @@
# Allow unfree packages # Allow unfree packages
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
# Fonts
fonts.packages = with pkgs; [
fira-code
fira-code-symbols
roboto
(nerdfonts.override { fonts = [ "FiraCode" ]; })
];
# List packages installed in system profile. To search, run: # List packages installed in system profile. To search, run:
# $ nix search wget # $ nix search wget
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
neovim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. neovim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
git git
rustc
gnomeExtensions.tray-icons-reloaded
gnomeExtensions.open-bar
dunst
just
steamtinkerlaunch
cosmic-icons
cosmic-settings
cosmic-comp
playerctl
xdg-desktop-portal
cosmic-panel
wine
bottles
cava
cosmic-session
gnome.gnome-tweaks
cosmic-applets
cosmic-settings
cosmic-icons
cosmic-protocols
cosmic-design-demo
flatpak
rofi-wayland
xdg-desktop-portal-cosmic
cosmic-bg
cosmic-osd
polkit-kde-agent
cosmic-term
gradience
cosmic-edit
cosmic-randr
cosmic-files
cosmic-greeter
cosmic-launcher
cosmic-screenshot
cosmic-applibrary
cosmic-notifications
cosmic-settings-daemon
cosmic-workspaces-epoch
]; ];
# Enable Steam # Enable Steam

1589
cosmic-session/Cargo.lock generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,72 @@
{
lib,
fetchFromGitHub,
bash,
rustPlatform,
just,
dbus,
rust,
stdenv,
xdg-desktop-portal-cosmic,
}:
rustPlatform.buildRustPackage rec {
pname = "cosmic-session";
version = "0-unstable-2024-01-17";
src = fetchFromGitHub {
owner = "pop-os";
repo = pname;
rev = "8e73c0f6940288c4a24a102a7ba9f20eb6bd754f";
sha256 = "sha256-plglQ9i+kcG70v9ElCzwNMhO1xcuEAQiO0DeZfRjbcg=";
};
cargoLock = {
lockFile = ./Cargo.lock;
outputHashes = {
"cosmic-notifications-util-0.1.0" = "sha256-GmTT7SFBqReBMe4GcNSym1YhsKtFQ/0hrDcwUqXkaBw=";
"launch-pad-0.1.0" = "sha256-tnbSJ/GP9GTnLnikJmvb9XrJSgnUnWjadABHF43L1zc=";
};
};
postPatch = ''
substituteInPlace Justfile \
--replace '#!/usr/bin/env' "#!$(command -v env)" \
--replace 'target/release/cosmic-session' "target/${
rust.lib.toRustTargetSpecShort stdenv.hostPlatform
}/release/cosmic-session"
substituteInPlace data/start-cosmic \
--replace '#!/bin/bash' "#!${lib.getBin bash}/bin/bash" \
--replace '/usr/bin/cosmic-session' "$out/bin/cosmic-session" \
--replace '/usr/bin/dbus-run-session' "${
lib.getBin dbus
}/bin/dbus-run-session"
substituteInPlace data/cosmic.desktop --replace '/usr/bin/start-cosmic' "$out/bin/start-cosmic"
'';
nativeBuildInputs = [ just ];
dontUseJustBuild = true;
justFlags = [
"--set"
"prefix"
(placeholder "out")
"--set"
"xdp_cosmic"
xdg-desktop-portal-cosmic
];
passthru.providedSessions = [ "cosmic" ];
meta = with lib; {
homepage = "https://github.com/pop-os/cosmic-session";
description = "Session manager for the COSMIC desktop environment";
license = licenses.gpl3Only;
mainProgram = "cosmic-session";
maintainers = with maintainers; [
a-kenji
nyanbinary
];
platforms = platforms.linux;
};
}

46
flake.lock generated
View File

@@ -1,12 +1,48 @@
{ {
"nodes": { "nodes": {
"nixpkgs": { "home-manager": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": { "locked": {
"lastModified": 1705496572, "lastModified": 1705823474,
"narHash": "sha256-rPIe9G5EBLXdBdn9ilGc0nq082lzQd0xGGe092R/5QE=", "narHash": "sha256-2C4uRe9/U3QwSPC4dYKM1/njgCQk0Mltezy4VcjAqa4=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "928f2528f9ee952ba0a47bbb1ece8d93ed66e784",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"master": {
"locked": {
"lastModified": 1705865336,
"narHash": "sha256-UYGuemCuVicKo9iOgh9y1ZcYL6YxKCqFkqMfFzvH0vM=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "842d9d80cfd4560648c785f8a4e6f3b096790e19", "rev": "71ef6600a9668a897374cbd541390e8429bfcfb3",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "master",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1705677747,
"narHash": "sha256-eyM3okYtMgYDgmYukoUzrmuoY4xl4FUujnsv/P6I/zI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "bbe7d8f876fbbe7c959c90ba2ae2852220573261",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -18,6 +54,8 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"home-manager": "home-manager",
"master": "master",
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
} }
} }

View File

@@ -3,14 +3,24 @@
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
master.url = "github:NixOS/nixpkgs/master";
home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
}; };
outputs = { self, nixpkgs }@inputs: outputs = { self, nixpkgs, home-manager, master }@inputs:
{ {
nixosConfigurations = { nixosConfigurations = {
nixos = nixpkgs.lib.nixosSystem { nixos = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
modules = [ ./configuration.nix]; specialArgs = {inherit master;};
modules = [ ./configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.useUserPackages = true;
home-manager.users.joshuaelm = import ./home.nix;
}
];
}; };
}; };
}; };

38
home.nix Normal file
View File

@@ -0,0 +1,38 @@
{ config, pkgs, ... }:
{
# Home Manager needs a bit of information about you and the
# paths it should manage.
home.username = "joshuaelm";
home.homeDirectory = "/home/joshuaelm";
home.packages = [
pkgs.element-desktop
pkgs.waybar
pkgs.signal-desktop
pkgs.swaybg
pkgs.kitty
pkgs.supersonic-wayland
pkgs.adw-gtk3
];
services.mpd-mpris.enable = true;
gtk = {
enable = true;
};
# 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";
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}