Compare commits

...

5 commits

Author SHA1 Message Date
coast
17aa75afde waybar changes 2025-10-31 22:28:42 +03:30
coast
4edcbfe72b remove home.nix (renamed) 2025-10-31 22:17:06 +03:30
coast
584132a2d5 big nix changes 2 2025-10-31 22:16:14 +03:30
coast
c727bdb8ff big nix changes 2025-10-31 22:15:06 +03:30
coast
bffc03201b repush 2025-10-31 22:14:15 +03:30
13 changed files with 572 additions and 425 deletions

View file

@ -4,7 +4,11 @@ pad=8x8
[colors]
#foreground=ebdbb2 # light foreground (text)
alpha=0.9
<<<<<<< HEAD
background=000000 # dark background
=======
background=111111 # dark background
>>>>>>> bd52954 (repush)
#
### Normal/regular colors (color palette 0-7)
#regular0=1d2021 # black

View file

@ -1,89 +1,98 @@
// -*- mode: jsonc -*-
{
"layer": "bottom",
"position": "bottom",
"height": 30,
"spacing": 4,
// Choose the order of the modules
"layer": "top",
"modules-left": [
"hyprland/workspaces",
"custom/sep",
"hyprland/window",
"sway/workspaces",
"sway/window"
],
"modules-center": [
],
"modules-right": [
"battery",
"cpu",
"memory",
// "disk",
"pulseaudio",
"clock",
"tray"
"network"
//"bluetooth"
],
// Modules configuration
"hyprland/workspaces": {
"disable-scroll": true,
"all-outputs": true,
"warp-on-scroll": false,
"format": "{name}",
"persistent-workspaces": {
"1": "1",
"2": "2",
"3": "3",
"4": "4",
"5": "5",
"6": "6",
"7": "7",
"8": "8",
"9": "9",
},
"pulseaudio": {
"tooltip": false,
"scroll-step": 5,
"format": "VOL {volume}%",
"format-muted": "muted",
"on-click": "~/.config/dunst/volume.sh mute",
"format-icons": {
"default": [
"",
"",
""
]
}
},
"hyprland/window" : {
"max-length": 40,
"seperate-outputs": false
"privacy": {
"icon-spacing": 10,
"icon-size": 18,
"transition-duration": 250,
"tooltip": false,
"modules": [
{
"type": "screenshare",
"tooltip": true,
"tooltip-icon-size": 24
},
{
"type": "audio-out",
"tooltip": true,
"tooltip-icon-size": 24
},
{
"type": "audio-in",
"tooltip": true,
"tooltip-icon-size": 24
}
]
},
"tray": {
// "icon-size": 21,
"spacing": 10
// "icons": {
// "blueman": "bluetooth",
// "TelegramDesktop": "$HOME/.local/share/icons/hicolor/16x16/apps/telegram.png"
// }
"bluetooth": {
"format": " {status}",
"format-connected": " conn",
"tooltip": true,
"tooltip-format-connected": "{device_alias}"
},
"clock": {
"format": "{:%I:%M %p}",
"format-alt": "{:%Y-%m-%d %I:%M %p}"
},
"cpu": {
"format": "CPU: {usage}%",
"tooltip": false
"format": "TIME {:%H:%M}",
"tooltip": true,
"tooltip-format": "{:%a, %b %d}"
},
"memory": {
"format": "MEM: {used}GiB"
"sway/workspaces": {
"format": "●"
},
"disk": {
"interval": 60,
"path": "/",
"format": "DISK: {free} (free)"
"sway/window": {
"icon": false,
"icon-size": 20
},
"network": {
"interface": "eno1",
"format-wifi": "WLAN {essid}",
"format-ethernet": "ETH {ipaddr}/{cidr}",
"format-disconnected": "disconnected",
"tooltip": false,
"max-length": 50
},
"battery": {
"format": "{icon}: {capacity}%",
"interval": 10,
"states": {
"good": 95,
"warning": 30,
"critical": 15
"warning": 20,
"critical": 10
},
"format": "BAT: {capacity}%{time}",
"format-plugged": "",
"format-alt": "Bat {capacity}%",
"format-time": "{H}:{M}",
},
"network": {
"format": "Online",
"format-disconnected": "Disconnected ⚠"
},
"custom/sep": {
"format" : " ",
"interval" : 0
"format-time": "{H}:{m}",
"format-icons": [
"",
"",
"",
"",
""
],
"format-charging": "{icon} +: {capacity}%",
"format-discharging": "{icon} -: {capacity}%",
"tooltip-format": "{power}W, {cycles} cycles"
}
}

View file

@ -1,117 +1,85 @@
@define-color bg #1c1c1c;
@define-color fg #B0B0B0;
@define-color blk #000000;
@define-color white #ffffff;
@define-color border #6f3913;
* {
font-family: "UbuntuMono", monospace;
font-size: 18px;
font-weight: bold;
}
button,
#workspaces button,
#clock,
#battery,
#cpu,
#memory,
#disk,
#network,
#tray {
transition-property: none;
animation: none;
margin-top: 4px;
border: none;
font-family: "MapleMono";
font-size: 15px;
min-height: 10px;
}
window#waybar {
background-color: @bg;
color: @fg;
}
#workspaces button {
padding: 0 6px;
color: @fg;
background: transparent;
border-bottom: 3px solid @bg;
}
#workspaces button.active {
color: @fg;
border-bottom: 3px solid @fg;
}
#workspaces button.empty {
color: @fg;
#disk,
#pulseaudio,
#window,
#clock,
#network,
#battery,
#privacy,
#memory,
#cpu,
#workspaces,
#tray,
#bluetooth,
#tray menu {
padding: 8px 10px 8px 10px;
margin: 5px 0 0 10px;
background: #111111;
color: #cccccc;
transition: 0.3s;
border: 2px solid @border;
border-radius: 0px;
}
#workspaces button.empty.active {
color: @fg;
border-bottom: 3px solid @fg;
#window {
transition: none;
}
#workspaces button.urgent {
background-color: @blk;
}
/* Disable hover effects completely */
button:hover,
#workspaces button:hover {
window#waybar.empty #window {
background: transparent;
box-shadow: none;
color: inherit;
}
#clock,
#custom-sep,
#battery,
#cpu,
#memory,
#disk,
#network,
#tray {
padding: 0 8px;
color: @white;
}
#custom-sep {
color: @fg;
border: none;
}
#clock {
color: @fg;
border-bottom: 4px solid @fg;
margin: 5px 0 0 15px;
}
#battery {
color: @fg;
border-bottom: 4px solid @fg;
#network {
margin: 5px 15px 0 10px;
}
#disk {
color: @fg;
border-bottom: 4px solid @fg;
#workspaces {
padding-top: 0;
padding-bottom: 0;
}
#memory {
color: @fg;
border-bottom: 4px solid @fg;
#workspaces button {
margin: 0;
padding: 2px;
color: #cccccc;
transition: color 0.3s;
}
#cpu {
color: @fg;
border-bottom: 4px solid @fg;
#workspaces button.empty {
color: #2e2e2e;
}
#network {
color: @fg;
border-bottom: 4px solid @fg;
#workspaces button.active {
color: #ffffff;
}
#network.disconnected {
background-color: @blk;
#workspaces button.urgent {
color: #000000;
}
#tray {
background-color: @bg;
#workspaces button:hover {
background: transparent;
color: transparent;
}
* {
transition: none;
}

View file

@ -1,71 +0,0 @@
{ pkgs, pkgsUnstable, ... }:
let
unstable = pkgsUnstable;
in
{
imports = [ ./hardware-configuration.nix ];
boot = {
readOnlyNixStore = true;
initrd.compressor = "zstd";
loader.systemd-boot.enable = true;
loader.systemd-boot.editor = false;
loader.systemd-boot.configurationLimit = 25;
loader.efi.canTouchEfiVariables = true;
kernelParams = [ "nvidia_drm" "nvidia_modeset" "nvidia_uvm" "nvidia-drm.fbdev=1" "nvidia" ];
};
networking.hostName = "core";
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;
sudo-rs.enable = true;
};
environment.systemPackages = with pkgs; [
(lib.hiPrio unstable.uutils-coreutils-noprefix)
(lib.hiPrio unstable.uutils-findutils)
(lib.hiPrio unstable.uutils-diffutils)
(pkgs.runCommand "vim-wrapper" { } ''
mkdir -p $out/bin
ln -s ${pkgs.neovim}/bin/nvim $out/bin/vim
'')
unstable.firefox
unstable.git
unstable.adwaita-icon-theme
unstable.nil
jmtpfs
simple-mtpfs
android-tools
unstable.qbittorrent
unstable.zathura
unstable.kew
];
nix.settings.experimental-features = [ "nix-command" "flakes" ];
}

View file

@ -0,0 +1,126 @@
{
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.waydroid.enable = true;
environment.systemPackages = with pkgs; [
# (lib.hiPrio unstable.uutils-coreutils-noprefix)
# (lib.hiPrio unstable.uutils-findutils)
# (lib.hiPrio unstable.uutils-diffutils)
(pkgs.runCommand "vim-wrapper" { } ''
mkdir -p $out/bin
ln -s ${pkgs.neovim}/bin/nvim $out/bin/vim
'')
unstable.firefox
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" ];
shell = pkgs.zsh;
};
programs = {
zsh.enable = true;
zsh.syntaxHighlighting.enable = true;
foot.enable = true;
nano.enable = false;
nekoray.enable = true;
nekoray.tunMode.enable = true;
sway.enable = true;
};
fonts.packages = with pkgs; [
ubuntu-sans
ubuntu_font_family
nerd-fonts._0xproto
nerd-fonts.droid-sans-mono
nerd-fonts.jetbrains-mono
vazir-fonts
];
nix.settings.experimental-features = [ "nix-command" "flakes" ];
services.openssh.enable = true;
system.stateVersion = "25.05";
}

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

View file

@ -1,51 +0,0 @@
{ pkgs, ... }: {
services = {
xserver = {
enable = true;
videoDrivers = ["modesetting" "nvidia"];
windowManager.qtile.enable = false;
};
displayManager.ly.enable = true;
blueman.enable = false;
printing.enable = false;
#pipewire
pipewire = {
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
};
security.rtkit.enable = true;
nixpkgs.config.allowUnfree = true;
users.users.coast = {
isNormalUser = true;
extraGroups = [ "wheel" ];
shell = pkgs.zsh;
};
programs = {
zsh.enable = true;
zsh.syntaxHighlighting.enable = true;
foot.enable = true;
nano.enable = false;
nekoray.enable = true;
nekoray.tunMode.enable = true;
sway.enable = true;
};
fonts.packages = with pkgs; [
ubuntu-sans
ubuntu_font_family
nerd-fonts._0xproto
nerd-fonts.droid-sans-mono
nerd-fonts.jetbrains-mono
vazir-fonts
];
services.openssh.enable = true;
system.stateVersion = "25.05";
}

12
etc/nixos/flake.lock generated
View file

@ -23,11 +23,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1759439645,
"narHash": "sha256-oiAyQaRilPk525Z5aTtTNWNzSrcdJ7IXM0/PL3CGlbI=",
"lastModified": 1761597516,
"narHash": "sha256-wxX7u6D2rpkJLWkZ2E932SIvDJW8+ON/0Yy8+a5vsDU=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "879bd460b3d3e8571354ce172128fbcbac1ed633",
"rev": "daf6dc47aa4b44791372d6139ab7b25269184d55",
"type": "github"
},
"original": {
@ -39,11 +39,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1759381078,
"narHash": "sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs=",
"lastModified": 1761672384,
"narHash": "sha256-o9KF3DJL7g7iYMZq9SWgfS1BFlNbsm6xplRjVlOCkXI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "7df7ff7d8e00218376575f0acdcc5d66741351ee",
"rev": "08dacfca559e1d7da38f3cf05f1f45ee9bfd213c",
"type": "github"
},
"original": {

View file

@ -1,5 +1,5 @@
{
description = "Flakes once again";
description = "Flake";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
@ -8,8 +8,7 @@
home-manager.inputs.nixpkgs.follows = "nixpkgs";
};
outputs = { self, nixpkgs, nixpkgs-unstable, home-manager, ... }:
let
outputs = { nixpkgs, nixpkgs-unstable, home-manager, ... }: let
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
@ -18,16 +17,24 @@
pkgsUnstable = import nixpkgs-unstable { inherit system; };
in
{
nixosConfigurations.core = nixpkgs.lib.nixosSystem {
nixosConfigurations.gloria = nixpkgs.lib.nixosSystem {
inherit system;
modules = [
./create.nix
(import ./compose.nix { inherit pkgs pkgsUnstable; })
(import ./configuration/configuration.nix { inherit pkgs pkgsUnstable; })
./configuration/sys/coreutils-configuration.nix
./hardware-configuration.nix
home-manager.nixosModules.home-manager {
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.coast = import ./home.nix;
home-manager.backupFileExtension = "home-backup";
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
backupFileExtension = "home-backup";
users.coast = { ... }: {
imports = [
./home-configuration/configuration.nix
./home-configuration/apps/sway.nix
];
};
};
}
];
};

View file

@ -0,0 +1,92 @@
{
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 = true;
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 #6f3913 #6f3913 #cccccc #6f3913 #6f3913
client.focused_inactive #1c1c1c #111111 #cccccc #1c1c1c #111111
client.unfocused #1c1c1c #111111 #888888 #1c1c1c #111111
client.urgent #6f3913 #111111 #ffffff #6f3913 #111111
'';
config = {
modifier = "Mod4";
gaps = {
inner = 5;
outer = 5;
};
bars = [];
output.eDP-1.disable = "";
keybindings = {
"${modifier}+Return" = "exec ${terminal}";
"${modifier}+Shift+Return" = "exec rofi -show drun";
"${modifier}+r" = "exec ${menu} -l 10";
"${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";
};
modes = {
resize = {
${left} = "resize shrink width 10 px";
${down} = "resize grow height 10 px";
${up} = "resize shrink height 10 px";
${right} = "resize grow width 10 px";
"Escape" = "mode default";
"Return" = "mode default";
};
};
startup = [
{ command = "autotiling"; }
{ command = "/home/coast/.local/src/local/bin/setwall.py/"; always = true; }
{ command = "waybar"; }
{ command = "foot -s"; always = true; }
];
};
};
}

View file

@ -0,0 +1,127 @@
{
config,
pkgs,
...
}: let
dotDir = "${config.home.homeDirectory}/.local/src/config/";
mkSl = path: config.lib.file.mkOutOfStoreSymlink path;
configs = {
kitty = "kitty";
foot = "foot";
qtile = "qtile";
mako = "mako";
nvim = "nvim";
eww = "eww";
waybar = "waybar";
};
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
nix-search-cli
neofetch
dysk
tree
wl-clipboard
appimage-run
libnotify
grim
slurp
yazi
mate.caja
htop
nixpkgs-fmt
swaybg
wmenu
mako
nwg-look
xorg.xkill
mpv
vesktop
wlr-randr
autotiling
nodejs
gcc_multi
gnumake
clang-tools
ruby_3_4
pkg-config
dmd
dtools
rustup
python3
python313Packages.pip
unzip
zip
go
tauon
gimp
waybar
];
};
programs.git = {
enable = true;
userEmail = "coasteen@proton.me";
userName = "coast";
};
programs.zsh = {
enable = true;
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";
};
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
PS1="[%n in %m %~] "
'';
};
}

View file

@ -1,132 +0,0 @@
{ config, pkgs, ... }: let
dotDir = "${config.home.homeDirectory}/.local/src/config/";
mkSl = path: config.lib.file.mkOutOfStoreSymlink path;
configs = {
kitty = "kitty";
foot = "foot";
qtile = "qtile";
mako = "mako";
nvim = "nvim";
eww = "eww";
};
modifier = "Mod4";
terminal = "${pkgs.wezterm}/bin/wezterm";
menu = "${pkgs.wmenu}/bin/wmenu-run";
in {
home.username = "coast";
home.homeDirectory = "/home/coast";
home.stateVersion = "25.05";
xdg.configFile = builtins.mapAttrs (name: subpath: { source = mkSl "${dotDir}/${subpath}"; recursive = true; }) configs;
home.packages = with pkgs; [
alsa-utils nix-search-cli neofetch dysk nsxiv tree wl-clipboard appimage-run libnotify grim slurp yazi mate.caja htop nixpkgs-fmt
swaybg wmenu mako nwg-look xorg.xkill
mpv vesktop wlr-randr autotiling wezterm
nodejs gcc_multi gnumake clang-tools ruby_3_4 pkg-config dmd dtools rustup python3 python313Packages.pip texliveMedium unzip zip
];
wayland.windowManager.sway = {
enable = true;
wrapperFeatures.gtk = true;
config = {
modifier = "Mod4";
gaps = {
inner = 5;
outer = 10;
};
output.eDP-1.disable = "";
keybindings = {
"${modifier}+Return" = "exec ${terminal}";
"${modifier}+r" = "exec ${menu} -l 10";
"${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}+0" = "workspace 10";
"${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.sh";
};
startup = [
{ command = "autotiling"; }
];
};
};
programs.zsh = {
enable = true;
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";
dias = "sudo";
delgen = "sudo nix-env --delete-generations old --profile /nix/var/nix/profiles/system";
alsamixer = "alsamixer -c 0 --no-color";
la = "ls --color=auto -la";
};
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
PROMPT="[%n@%m %~]%% "
export LIBCLANG_PATH=/usr/lib/llvm/20/lib64
export PATH=$PATH:/home/coast/.spicetify
source ~/.local/src/zsh.d/zsh-autosuggestions.zsh
export PATH="/usr/bin:$PATH"
export PATH="$HOME/.local/bin:$PATH"
'';
};
}

20
local/bin/setwall.py Executable file
View file

@ -0,0 +1,20 @@
#!/usr/bin/env python3
import os
import secrets
import subprocess
BASE_DIR = "/home/coast/.local/src/wall"
wallpapers = []
for root, dirs, files in os.walk(BASE_DIR):
for file in files:
if file.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif')):
wallpapers.append(os.path.join(root, file))
if not wallpapers:
print("No wallpapers found!")
exit(1)
chosen_wallpaper = secrets.choice(wallpapers)
print(chosen_wallpaper)
subprocess.run(["swaybg", "-i", chosen_wallpaper, "-m", "fill"])