This commit is contained in:
2026-07-12 08:16:17 +03:30
commit 72be1234e1
2027 changed files with 221388 additions and 0 deletions
+132
View File
@@ -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";
}
+48
View File
@@ -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];
};
}
];
}
+11
View File
@@ -0,0 +1,11 @@
{
...
}:
{
swapDevices = [
{
device = "/var/lib/swapfile";
size = 12*1024;
}
];
}
+10
View File
@@ -0,0 +1,10 @@
{
config,
...
}:
{
zramSwap = {
enable = true;
writebackDevice = "/dev/nvme0n1p3";
};
}
Generated Executable
+135
View File
@@ -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
}
+56
View File
@@ -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
];
};
};
}
];
};
};
}
+28
View File
@@ -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;
};
};
};
}
+31
View File
@@ -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";
};
};
}
+13
View File
@@ -0,0 +1,13 @@
{
pkgs,
config,
...
}:
{
programs = {
carapace = {
enable = true;
enableNushellIntegration = true;
};
};
}
+111
View File
@@ -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";
}];
};
}
+59
View File
@@ -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)"
'';
};
}
+99
View File
@@ -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";
};
}