summaryrefslogtreecommitdiff
path: root/nixos
diff options
context:
space:
mode:
authorcoasteen <coasteen@proton.me>2026-07-09 10:42:28 +0330
committercoasteen <coasteen@proton.me>2026-07-09 10:42:28 +0330
commit8cbadb61604667b407b53ee1258433994fa4765a (patch)
tree97765fb29418fd6278fcb4cbb9760893afaf7a58 /nixos
Diffstat (limited to 'nixos')
-rwxr-xr-xnixos/configuration/configuration.nix132
-rwxr-xr-xnixos/configuration/sys/coreutils-configuration.nix48
-rwxr-xr-xnixos/configuration/sys/swap.nix11
-rwxr-xr-xnixos/configuration/sys/zram.nix10
-rwxr-xr-xnixos/flake.lock135
-rwxr-xr-xnixos/flake.nix56
-rwxr-xr-xnixos/home-configuration/apps/alacritty.nix28
-rwxr-xr-xnixos/home-configuration/apps/foot.nix31
-rwxr-xr-xnixos/home-configuration/apps/nushell.nix13
-rwxr-xr-xnixos/home-configuration/apps/sway.nix111
-rwxr-xr-xnixos/home-configuration/apps/zsh.nix59
-rwxr-xr-xnixos/home-configuration/configuration.nix99
12 files changed, 733 insertions, 0 deletions
diff --git a/nixos/configuration/configuration.nix b/nixos/configuration/configuration.nix
new file mode 100755
index 0000000..428f073
--- /dev/null
+++ b/nixos/configuration/configuration.nix
@@ -0,0 +1,132 @@
+{
+ pkgs,
+ pkgsUnstable,
+ ...
+}: let
+ unstable = pkgsUnstable;
+in
+{
+ services = {
+ xserver = {
+ enable = true;
+ videoDrivers = ["modesetting" "nvidia"];
+ };
+ displayManager.ly.enable = true;
+ blueman.enable = false;
+ printing.enable = false;
+ pipewire = {
+ alsa.enable = true;
+ alsa.support32Bit = true;
+ pulse.enable = true;
+ };
+ };
+ security.rtkit.enable = true;
+
+ boot = {
+ readOnlyNixStore = true;
+ initrd.compressor = "zstd";
+ loader = {
+ systemd-boot = {
+ enable = true;
+ editor = false;
+ configurationLimit = 25;
+ };
+ efi.canTouchEfiVariables = true;
+ };
+ kernelParams = [
+ "nvidia_drm"
+ "nvidia_modeset"
+ "nvidia_uvm"
+ "nvidia-drm.fbdev=1"
+ "nvidia"
+ ];
+ };
+
+ networking.hostName = "gloria";
+ networking.enableIPv6 = false;
+ networking.networkmanager.enable = true;
+ time.timeZone = "Asia/Tehran";
+
+ hardware = {
+ graphics.enable = true;
+ nvidia = {
+ modesetting.enable = true;
+ powerManagement.enable = true;
+ open = false;
+ nvidiaSettings = true;
+ package = pkgs.linuxPackages.nvidiaPackages.beta;
+ prime.offload = {
+ enable = true;
+ enableOffloadCmd = true;
+ };
+ prime = {
+ intelBusId = "PCI:0:2:0";
+ nvidiaBusId = "PCI:1:0:0";
+ };
+ };
+ bluetooth.enable = true;
+ bluetooth.powerOnBoot = true;
+ };
+
+ security.sudo.enable = false;
+ security.sudo-rs.enable = true;
+
+ virtualisation = {
+ podman.enable = true;
+ };
+
+ environment.systemPackages = with pkgs; [
+ (pkgs.runCommand "vim-wrapper" { } ''
+ mkdir -p $out/bin
+ ln -s ${pkgs.neovim}/bin/nvim $out/bin/vim
+ '')
+ unstable.ungoogled-chromium
+ unstable.git
+ unstable.adwaita-icon-theme
+ unstable.nil
+ jmtpfs
+ android-tools
+ unstable.qbittorrent
+ unstable.zathura
+ unstable.rofi
+ ];
+
+ nixpkgs.config.allowUnfree = true;
+
+ users.users.coast = {
+ isNormalUser = true;
+ extraGroups = [ "wheel" "podman" ];
+ shell = pkgs.nushell;
+ };
+
+ programs = {
+ foot.enable = false;
+ nano.enable = false;
+ nekoray.enable = true;
+ nekoray.tunMode.enable = true;
+ niri.enable = true;
+ };
+
+ fonts.packages = with pkgs; [
+ ubuntu-sans
+ ubuntu_font_family
+ nerd-fonts._0xproto
+ nerd-fonts.droid-sans-mono
+ nerd-fonts.jetbrains-mono
+ nerd-fonts.fira-code
+ vazir-fonts
+ ];
+
+ xdg.portal = {
+ enable = true;
+ xdgOpenUsePortal = true;
+ extraPortals = with pkgs; [
+ xdg-desktop-portal-gtk
+ xdg-desktop-portal-gnome
+ ];
+ };
+
+ nix.settings.experimental-features = [ "nix-command" "flakes" ];
+ services.openssh.enable = true;
+ system.stateVersion = "25.05";
+}
diff --git a/nixos/configuration/sys/coreutils-configuration.nix b/nixos/configuration/sys/coreutils-configuration.nix
new file mode 100755
index 0000000..9532a3e
--- /dev/null
+++ b/nixos/configuration/sys/coreutils-configuration.nix
@@ -0,0 +1,48 @@
+{
+ pkgs,
+ ...
+}: let
+ coreutils-full-name = "coreuutils-full" + builtins.concatStringsSep ""
+ (builtins.genList (_: "_") (builtins.stringLength pkgs.coreutils-full.version));
+
+ coreutils-name = "coreuutils" + builtins.concatStringsSep ""
+ (builtins.genList (_: "_") (builtins.stringLength pkgs.coreutils.version));
+
+ findutils-name = "finduutils" + builtins.concatStringsSep ""
+ (builtins.genList (_: "_") (builtins.stringLength pkgs.findutils.version));
+
+ diffutils-name = "diffuutils" + builtins.concatStringsSep ""
+ (builtins.genList (_: "_") (builtins.stringLength pkgs.diffutils.version));
+in
+{
+ system.replaceDependencies.replacements = [
+ {
+ oldDependency = pkgs.coreutils-full;
+ newDependency = pkgs.symlinkJoin {
+ name = coreutils-full-name;
+ paths = [pkgs.uutils-coreutils-noprefix];
+ };
+ }
+ {
+ oldDependency = pkgs.coreutils;
+ newDependency = pkgs.symlinkJoin {
+ name = coreutils-name;
+ paths = [pkgs.uutils-coreutils-noprefix];
+ };
+ }
+ {
+ oldDependency = pkgs.findutils;
+ newDependency = pkgs.symlinkJoin {
+ name = findutils-name;
+ paths = [pkgs.uutils-findutils];
+ };
+ }
+ {
+ oldDependency = pkgs.diffutils;
+ newDependency = pkgs.symlinkJoin {
+ name = diffutils-name;
+ paths = [pkgs.uutils-diffutils];
+ };
+ }
+ ];
+}
diff --git a/nixos/configuration/sys/swap.nix b/nixos/configuration/sys/swap.nix
new file mode 100755
index 0000000..72cba4f
--- /dev/null
+++ b/nixos/configuration/sys/swap.nix
@@ -0,0 +1,11 @@
+{
+ ...
+}:
+{
+ swapDevices = [
+ {
+ device = "/var/lib/swapfile";
+ size = 12*1024;
+ }
+ ];
+}
diff --git a/nixos/configuration/sys/zram.nix b/nixos/configuration/sys/zram.nix
new file mode 100755
index 0000000..8e7037d
--- /dev/null
+++ b/nixos/configuration/sys/zram.nix
@@ -0,0 +1,10 @@
+{
+ config,
+ ...
+}:
+{
+ zramSwap = {
+ enable = true;
+ writebackDevice = "/dev/nvme0n1p3";
+ };
+}
diff --git a/nixos/flake.lock b/nixos/flake.lock
new file mode 100755
index 0000000..d01b11f
--- /dev/null
+++ b/nixos/flake.lock
@@ -0,0 +1,135 @@
+{
+ "nodes": {
+ "flake-utils": {
+ "inputs": {
+ "systems": "systems"
+ },
+ "locked": {
+ "lastModified": 1731533236,
+ "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "type": "github"
+ }
+ },
+ "home-manager": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1758463745,
+ "narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=",
+ "owner": "nix-community",
+ "repo": "home-manager",
+ "rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "ref": "release-25.05",
+ "repo": "home-manager",
+ "type": "github"
+ }
+ },
+ "intelfetch": {
+ "inputs": {
+ "flake-utils": "flake-utils",
+ "nixpkgs": "nixpkgs"
+ },
+ "locked": {
+ "lastModified": 1762005542,
+ "narHash": "sha256-oFE6raeSV/37OJUbR4F1/iqJR23Hij4jccv/BgrDciU=",
+ "ref": "refs/heads/master",
+ "rev": "090578fae67055f39155f677e8079f8b47c26cca",
+ "revCount": 19,
+ "type": "git",
+ "url": "https://git.sr.ht/~coasteen/intelfetch"
+ },
+ "original": {
+ "type": "git",
+ "url": "https://git.sr.ht/~coasteen/intelfetch"
+ }
+ },
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1735563628,
+ "narHash": "sha256-OnSAY7XDSx7CtDoqNh8jwVwh4xNL/2HaJxGjryLWzX8=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "b134951a4c9f3c995fd7be05f3243f8ecd65d798",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-24.05",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs-unstable": {
+ "locked": {
+ "lastModified": 1761672384,
+ "narHash": "sha256-o9KF3DJL7g7iYMZq9SWgfS1BFlNbsm6xplRjVlOCkXI=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "08dacfca559e1d7da38f3cf05f1f45ee9bfd213c",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_2": {
+ "locked": {
+ "lastModified": 1761597516,
+ "narHash": "sha256-wxX7u6D2rpkJLWkZ2E932SIvDJW8+ON/0Yy8+a5vsDU=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "daf6dc47aa4b44791372d6139ab7b25269184d55",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-25.05",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "home-manager": "home-manager",
+ "intelfetch": "intelfetch",
+ "nixpkgs": "nixpkgs_2",
+ "nixpkgs-unstable": "nixpkgs-unstable"
+ }
+ },
+ "systems": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
diff --git a/nixos/flake.nix b/nixos/flake.nix
new file mode 100755
index 0000000..b9c9114
--- /dev/null
+++ b/nixos/flake.nix
@@ -0,0 +1,56 @@
+{
+ description = "Flake";
+
+ inputs = {
+ nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
+ nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
+ intelfetch.url = "git+https://git.sr.ht/~coasteen/intelfetch";
+ home-manager.url = "github:nix-community/home-manager/release-25.05";
+ home-manager.inputs.nixpkgs.follows = "nixpkgs";
+ };
+
+ outputs = { nixpkgs, nixpkgs-unstable, home-manager, intelfetch, ... }: let
+ system = "x86_64-linux";
+ pkgs = import nixpkgs {
+ inherit system;
+ config = { allowUnfree = true; };
+ };
+ pkgsUnstable = import nixpkgs-unstable { inherit system; };
+ in {
+ nixosConfigurations.gloria = nixpkgs.lib.nixosSystem {
+ inherit system;
+
+ modules = [
+ (import ./configuration/configuration.nix { inherit pkgs pkgsUnstable; })
+ ./configuration/sys/coreutils-configuration.nix
+ ./configuration/sys/swap.nix
+ ./hardware-configuration.nix
+
+ {
+ environment.systemPackages = [
+ intelfetch.packages.${system}.intelfetch
+ ];
+ }
+
+ home-manager.nixosModules.home-manager {
+ home-manager = {
+ useGlobalPkgs = true;
+ useUserPackages = true;
+ backupFileExtension = "home-backup";
+
+ users.coast = { ... }: {
+ imports = [
+ ./home-configuration/configuration.nix
+ ./home-configuration/apps/sway.nix
+ ./home-configuration/apps/zsh.nix
+ ./home-configuration/apps/nushell.nix
+ ./home-configuration/apps/alacritty.nix
+ ./home-configuration/apps/foot.nix
+ ];
+ };
+ };
+ }
+ ];
+ };
+ };
+}
diff --git a/nixos/home-configuration/apps/alacritty.nix b/nixos/home-configuration/apps/alacritty.nix
new file mode 100755
index 0000000..8ce3197
--- /dev/null
+++ b/nixos/home-configuration/apps/alacritty.nix
@@ -0,0 +1,28 @@
+{
+ pkgs,
+ config,
+ ...
+}:
+{
+ programs.alacritty = {
+ enable = false;
+ theme = "gruvbox_dark";
+ settings = {
+ window = {
+ opacity = 0.9;
+ padding = {
+ x = 2;
+ y = 2;
+ };
+ blur = true;
+ };
+ font = {
+ normal = {
+ family = "JetBrainsMono Nerd Font";
+ style = "Regular";
+ };
+ size = 14;
+ };
+ };
+ };
+}
diff --git a/nixos/home-configuration/apps/foot.nix b/nixos/home-configuration/apps/foot.nix
new file mode 100755
index 0000000..6bbffda
--- /dev/null
+++ b/nixos/home-configuration/apps/foot.nix
@@ -0,0 +1,31 @@
+{
+ programs.foot = {
+ enable = true;
+ settings = {
+ main.font = "JetBrainsMono Nerd Font:size=14";
+ main.pad = "4x4";
+ scrollback.lines = 100000;
+
+ colors.alpha = "0.9";
+ colors.background = "191724";
+ colors.foreground = "e0def4";
+ colors.regular0 = "191724";
+ colors.regular1 = "eb6f92";
+ colors.regular2 = "9ccfd8";
+ colors.regular3 = "f6c177";
+ colors.regular4 = "31748f";
+ colors.regular5 = "c4a7e7";
+ colors.regular6 = "ebbcba";
+ colors.regular7 = "e0def4";
+ colors.bright0 = "6e6a86";
+ colors.bright1 = "eb6f92";
+ colors.bright2 = "9ccfd8";
+ colors.bright3 = "f6c177";
+ colors.bright4 = "31748f";
+ colors.bright5 = "c4a7e7";
+ colors.bright6 = "ebbcba";
+ colors.bright7 = "e0def4";
+ };
+ };
+}
+
diff --git a/nixos/home-configuration/apps/nushell.nix b/nixos/home-configuration/apps/nushell.nix
new file mode 100755
index 0000000..2d5d83a
--- /dev/null
+++ b/nixos/home-configuration/apps/nushell.nix
@@ -0,0 +1,13 @@
+{
+ pkgs,
+ config,
+ ...
+}:
+{
+ programs = {
+ carapace = {
+ enable = true;
+ enableNushellIntegration = true;
+ };
+ };
+}
diff --git a/nixos/home-configuration/apps/sway.nix b/nixos/home-configuration/apps/sway.nix
new file mode 100755
index 0000000..c5a2868
--- /dev/null
+++ b/nixos/home-configuration/apps/sway.nix
@@ -0,0 +1,111 @@
+{
+ pkgs,
+ ...
+}: let
+ left = "h";
+ down = "j";
+ up = "k";
+ right = "l";
+
+ modifier = "Mod4";
+ terminal = "${pkgs.foot}/bin/footclient";
+ menu = "${pkgs.wmenu}/bin/wmenu-run";
+in
+{
+ wayland.windowManager.sway = {
+ enable = false;
+ wrapperFeatures.gtk = true;
+ extraConfig = ''
+ exec swaymsg workspace 1
+ default_border pixel 2
+ default_floating_border pixel 2
+ for_window [class=".*"] border pixel 2
+
+ client.focused #F5C2E7 #6C7086 #C6D0F5 #6C7086 #6C7086
+ client.focused_inactive #313244 #313244 #C6D0F5 #585B70 #313244
+ client.unfocused #313244 #313244 #A6ADC8 #313244 #313244
+ client.urgent #F38BA8 #6C7086 #FFFFFF #F38BA8 #6C7086
+
+ seat * xcursor_theme Adwaita 24
+
+ input * xkb_options caps:escape
+ '';
+ config = {
+ modifier = "Mod4";
+ gaps = {
+ inner = 8;
+ outer = 10;
+ };
+ bars = [];
+ output.eDP-1.disable = "";
+ keybindings = {
+ "${modifier}+Return" = "exec ${terminal}";
+ "${modifier}+Shift+Return" = "exec ${menu} -l 10";
+ "${modifier}+r" = "exec rofi -show drun";
+ "${modifier}+s" = "kill";
+ "${modifier}+Print" = "exec /home/coast/.local/src/local/bin/screenie-wlr";
+ "${modifier}+1" = "workspace 1";
+ "${modifier}+2" = "workspace 2";
+ "${modifier}+3" = "workspace 3";
+ "${modifier}+4" = "workspace 4";
+ "${modifier}+5" = "workspace 5";
+ "${modifier}+6" = "workspace 6";
+ "${modifier}+7" = "workspace 7";
+ "${modifier}+8" = "workspace 8";
+ "${modifier}+9" = "workspace 9";
+ "${modifier}+Shift+1" = "move container to workspace 1";
+ "${modifier}+Shift+2" = "move container to workspace 2";
+ "${modifier}+Shift+3" = "move container to workspace 3";
+ "${modifier}+Shift+4" = "move container to workspace 4";
+ "${modifier}+Shift+5" = "move container to workspace 5";
+ "${modifier}+Shift+6" = "move container to workspace 6";
+ "${modifier}+Shift+7" = "move container to workspace 7";
+ "${modifier}+Shift+8" = "move container to workspace 8";
+ "${modifier}+Shift+9" = "move container to workspace 9";
+ "${modifier}+h" = "focus left";
+ "${modifier}+j" = "focus down";
+ "${modifier}+k" = "focus up";
+ "${modifier}+l" = "focus right";
+ "${modifier}+Shift+i" = "exec caja";
+ "${modifier}+Shift+r" = "reload";
+ "${modifier}+Shift+q" = "exit";
+ "${modifier}+Shift+v" = "exec vesktop --ozone-platform=wayland";
+ "${modifier}+Shift+p" = "exec /home/coast/.local/src/local/bin/setwall.py";
+ "${modifier}+Shift+d" = "mode 'resize'";
+ "${modifier}+space" = "floating toggle";
+
+ #lock the screen
+ "${modifier}+Shift+l" = "exec swaylock -c 000000";
+ #layouts
+ "${modifier}+Shift+u" = "layout tabbed";
+ "${modifier}+Shift+y" = "layout stacking";
+ "${modifier}+Shift+t" = "layout toggle split";
+ };
+ modes = {
+ resize = {
+ ${right} = "resize shrink width 10 px";
+ ${up} = "resize grow height 10 px";
+ ${down} = "resize shrink height 10 px";
+ ${left} = "resize grow width 10 px";
+
+ "Escape" = "mode default";
+ "Return" = "mode default";
+ };
+ };
+ startup = [
+ { command = "swaybg -i /home/coast/Downloads/wall1.png -m fill"; always = true; }
+ { command = "waybar"; }
+ { command = "foot -s"; always = true; }
+ { command = "autotiling"; }
+ ];
+ };
+ };
+
+ services.swayidle = {
+ enable = true;
+ timeouts = [{
+ timeout = 300;
+ command = "${pkgs.swaylock}/bin/swaylock --daemonize --color 000000";
+ }];
+ };
+}
diff --git a/nixos/home-configuration/apps/zsh.nix b/nixos/home-configuration/apps/zsh.nix
new file mode 100755
index 0000000..6eb6446
--- /dev/null
+++ b/nixos/home-configuration/apps/zsh.nix
@@ -0,0 +1,59 @@
+{
+ config,
+ pkgs,
+ ...
+}:
+{
+ programs.zsh = {
+ enable = false;
+ history = {
+ path = "/home/coast/.cache/zsh/history";
+ size = 100000000;
+ save = 100000000;
+ append = true;
+ };
+ enableCompletion = true;
+ shellAliases = {
+ nf = "neofetch";
+ nrs = "sudo nixos-rebuild switch";
+ emoji = "cat ~/.local/src/local/share/emoji | grep";
+ ls = "ls --color=auto";
+ smi = "nvidia-smi";
+ battery = "sb-battery";
+ weather = "curl wttr.in/masjedsoleyman";
+ las = "ls";
+ c = "clear";
+ cear = "clear";
+ ".." = "cd ..";
+ hotp = "htop";
+ main = "man";
+ mian = "man";
+ mna = "man";
+ delgen = "sudo nix-env --delete-generations old --profile /nix/var/nix/profiles/system";
+ alsamixer = "alsamixer -c 0 --no-color";
+ la = "ls --color=auto -la";
+ sidp = "sudo";
+ suod = "sudo";
+ sduo = "sudo";
+ sd = "sudo";
+ fastfetch = "fastfetch --pipe false | uwuify.awk";
+ };
+ initContent = ''
+ autoload -U compinit
+ zstyle ':completion:*' menu select
+ zmodload zsh/complist
+ compinit
+ comp_options+=(globdots)
+ zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
+ ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=12"
+ autoload -U colors && colors && setopt prompt_subst
+ source ~/.local/src/zsh.d/zsh-autosuggestions.zsh
+ export PATH="/usr/bin:$PATH"
+ export PATH="$HOME/.local/bin:$PATH"
+ EDITOR=vim
+ bindkey -e
+ PS1="[%n in %m %~] "
+ eval "$(starship init zsh)"
+ '';
+ };
+}
diff --git a/nixos/home-configuration/configuration.nix b/nixos/home-configuration/configuration.nix
new file mode 100755
index 0000000..9df9ad0
--- /dev/null
+++ b/nixos/home-configuration/configuration.nix
@@ -0,0 +1,99 @@
+{
+ config,
+ pkgs,
+ ...
+}: let
+ dotDir = "${config.home.homeDirectory}/.local/src/config/";
+ mkSl = path: config.lib.file.mkOutOfStoreSymlink path;
+ configs = {
+ kitty = "kitty";
+ qtile = "qtile";
+ mako = "mako";
+ nvim = "nvim";
+ eww = "eww";
+ waybar = "waybar";
+ rofi = "rofi";
+ nushell = "nushell";
+ niri = "niri";
+ "starship.toml" = "starship.toml";
+ };
+in {
+ xdg.configFile = builtins.mapAttrs (name: subpath: {
+ source = mkSl "${dotDir}/${subpath}";
+ recursive = true;
+ }) configs;
+
+ home = {
+ username = "coast";
+ homeDirectory = "/home/coast";
+ stateVersion = "25.05";
+ packages = with pkgs; [
+ alsa-utils
+ xwayland-satellite
+ nix-search-cli
+ fastfetch
+ lollypop
+ cmatrix
+ dysk
+ brightnessctl
+ ncurses
+ tree
+ xfce.ristretto
+ pyright
+ stylua
+ typescript-language-server
+ lua
+ vscode-langservers-extracted
+ swaylock
+ starship
+ gopls
+ lua-language-server
+ serve-d
+ wl-clipboard
+ appimage-run
+ libnotify
+ grim
+ slurp
+ yazi
+ nautilus
+ btop
+ nixpkgs-fmt
+ swww
+ wmenu
+ mako
+ nwg-look
+ xorg.xkill
+ xorg.xeyes
+ mpv
+ vesktop
+ wlr-randr
+ nodejs
+ clang_multi
+ gnumake
+ clang-tools
+ ruby_3_4
+ pkg-config
+ dmd
+ dtools
+ rustup
+ python3
+ python313Packages.pip
+ unzip
+ zip
+ go
+ gimp
+ waybar
+ glibc
+ man-pages
+ man-pages-posix
+ eww
+ ];
+ };
+
+ programs.git = {
+ enable = true;
+ userEmail = "coasteen@proton.me";
+ userName = "coast";
+ };
+
+}