initial switch to hyprland
This commit is contained in:
parent
1daf9cf44b
commit
6c8c5c43d4
41 changed files with 562 additions and 501 deletions
100
flake.lock
generated
100
flake.lock
generated
|
|
@ -21,11 +21,11 @@
|
|||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1756770412,
|
||||
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
|
||||
"lastModified": 1759362264,
|
||||
"narHash": "sha256-wfG0S7pltlYyZTM+qqlhJ7GMw2fTF4mLKCIVhLii/4M=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "4524271976b625a4a605beefd893f270620fd751",
|
||||
"rev": "758cf7296bee11f1706a574c77d072b8a7baa881",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -61,11 +61,11 @@
|
|||
"zon2nix": "zon2nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1759249740,
|
||||
"narHash": "sha256-csdhbTzHy7LjedNmSFVBIaUca3IBGK6YKeDO3UUd7nw=",
|
||||
"lastModified": 1759677488,
|
||||
"narHash": "sha256-fhRv6OdFLSfuiDDJpcfmmGRzy0fSSzOHbdMpuvwysTU=",
|
||||
"owner": "ghostty-org",
|
||||
"repo": "ghostty",
|
||||
"rev": "ceac472af000ce370520b31a9fba927f55e7aac7",
|
||||
"rev": "fa3bc416ab08a7ab849ef878c01009c0710725b4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -113,20 +113,20 @@
|
|||
"url": "ssh://git@github.com/alsaiduq-lab/Hu-Tao-Animated-Cursor"
|
||||
}
|
||||
},
|
||||
"i3-dotfiles": {
|
||||
"hyprland-dots": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1758613492,
|
||||
"narHash": "sha256-pYaBq0FCUoSZtTE73HAWDw97LEBvp56upVfJcLbdBH4=",
|
||||
"lastModified": 1759689455,
|
||||
"narHash": "sha256-GsuG+Gbs3XMbmmkK1azoWF+ZUJ891OhRMy3S6Fv8qo0=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "73238b6b91151a0feeb4c7162fc5d1ca4e8fb132",
|
||||
"revCount": 14,
|
||||
"rev": "3c8faf70c7b92a09399f6ab48bb7b06c47a7b833",
|
||||
"revCount": 19,
|
||||
"type": "git",
|
||||
"url": "ssh://git@github.com/alsaiduq-lab/i3-dotfiles"
|
||||
"url": "ssh://git@github.com/alsaiduq-lab/hyprland-dots"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "ssh://git@github.com/alsaiduq-lab/i3-dotfiles"
|
||||
"url": "ssh://git@github.com/alsaiduq-lab/hyprland-dots"
|
||||
}
|
||||
},
|
||||
"nix-gaming": {
|
||||
|
|
@ -137,11 +137,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1759110900,
|
||||
"narHash": "sha256-fcu/r0ijvaYT2VHGkZGr0wq9uBMNFkiftVBy43/2oig=",
|
||||
"lastModified": 1759629535,
|
||||
"narHash": "sha256-VIXcJ2ahRgoqIUySwAz3r5mtITO2dp6tXGCVKVW6FmA=",
|
||||
"owner": "fufexan",
|
||||
"repo": "nix-gaming",
|
||||
"rev": "2ac6a49266e9159ccb001b4c8cb1f50f67d502ae",
|
||||
"rev": "df388c42b54714bd121796a9cec9322b7fa2894e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -152,15 +152,15 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1748189127,
|
||||
"narHash": "sha256-zRDR+EbbeObu4V2X5QCd2Bk5eltfDlCr5yvhBwUT6pY=",
|
||||
"rev": "7c43f080a7f28b2774f3b3f43234ca11661bf334",
|
||||
"lastModified": 315532800,
|
||||
"narHash": "sha256-YwoXN6fthkakCFD7nXPcUK+rkNr6ZTNTuF8zdGaxZo0=",
|
||||
"rev": "dc704e6102e76aad573f63b74c742cd96f8f1e6c",
|
||||
"type": "tarball",
|
||||
"url": "https://releases.nixos.org/nixos/25.05/nixos-25.05.802491.7c43f080a7f2/nixexprs.tar.xz"
|
||||
"url": "https://releases.nixos.org/nixpkgs/nixpkgs-25.11pre870318.dc704e6102e7/nixexprs.tar.xz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://channels.nixos.org/nixos-25.05/nixexprs.tar.xz"
|
||||
"url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz"
|
||||
}
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
|
|
@ -209,11 +209,11 @@
|
|||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1759143472,
|
||||
"narHash": "sha256-TvODmeR2W7yX/JmOCmP+lAFNkTT7hAxYcF3Kz8SZV3w=",
|
||||
"lastModified": 1759580034,
|
||||
"narHash": "sha256-YWo57PL7mGZU7D4WeKFMiW4ex/O6ZolUS6UNBHTZfkI=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "5ed4e25ab58fd4c028b59d5611e14ea64de51d23",
|
||||
"rev": "3bcc93c5f7a4b30335d31f21e2f1281cba68c318",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -223,14 +223,52 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nvim-dots": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1759115710,
|
||||
"narHash": "sha256-IdLoHrGkhlqAJmfi4nRe2DAoHA5udyb5UTSCpNboaOo=",
|
||||
"owner": "alsaiduq-lab",
|
||||
"repo": "nvim-dotfiles",
|
||||
"rev": "d251eb27eb70f67373aea50a15f1f71748af9039",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "alsaiduq-lab",
|
||||
"repo": "nvim-dotfiles",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"quickshell": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1759610621,
|
||||
"narHash": "sha256-P3UPFd95mS/3aNgy40nCXAmyfR2bEEBd+tX6xfkYFb0=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "c5c438f1cd1a76660a8658ef929a3d19e968e2ce",
|
||||
"revCount": 689,
|
||||
"type": "git",
|
||||
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"ghostty": "ghostty",
|
||||
"home-manager": "home-manager",
|
||||
"hu-tao-cursor": "hu-tao-cursor",
|
||||
"i3-dotfiles": "i3-dotfiles",
|
||||
"hyprland-dots": "hyprland-dots",
|
||||
"nix-gaming": "nix-gaming",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"nvim-dots": "nvim-dots",
|
||||
"quickshell": "quickshell",
|
||||
"unstable": "unstable"
|
||||
}
|
||||
},
|
||||
|
|
@ -251,11 +289,11 @@
|
|||
},
|
||||
"unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1759070547,
|
||||
"narHash": "sha256-JVZl8NaVRYb0+381nl7LvPE+A774/dRpif01FKLrYFQ=",
|
||||
"lastModified": 1759632233,
|
||||
"narHash": "sha256-krgZxGAIIIKFJS+UB0l8do3sYUDWJc75M72tepmVMzE=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "647e5c14cbd5067f44ac86b74f014962df460840",
|
||||
"rev": "d7f52a7a640bc54c7bb414cca603835bf8dd4b10",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -281,11 +319,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1748261582,
|
||||
"narHash": "sha256-3i0IL3s18hdDlbsf0/E+5kyPRkZwGPbSFngq5eToiAA=",
|
||||
"lastModified": 1759192380,
|
||||
"narHash": "sha256-0BWJgt4OSzxCESij5oo8WLWrPZ+1qLp8KUQe32QeV4Q=",
|
||||
"owner": "mitchellh",
|
||||
"repo": "zig-overlay",
|
||||
"rev": "aafb1b093fb838f7a02613b719e85ec912914221",
|
||||
"rev": "0bcd1401ed43d10f10cbded49624206553e92f57",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
|||
54
flake.nix
54
flake.nix
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
description = "NixOS configuration for Cobray";
|
||||
description = "NixOS configuration (hyprland) for Cobray";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
|
||||
|
|
@ -17,20 +17,38 @@
|
|||
unstable = {
|
||||
url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||
};
|
||||
ghostty = {
|
||||
url = "github:ghostty-org/ghostty";
|
||||
|
||||
quickshell = {
|
||||
url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
i3-dotfiles = {
|
||||
url = "git+ssh://git@github.com/alsaiduq-lab/i3-dotfiles";
|
||||
|
||||
nvim-dots = {
|
||||
url = "github:alsaiduq-lab/nvim-dotfiles";
|
||||
flake = false;
|
||||
};
|
||||
|
||||
hyprland-dots = {
|
||||
url = "git+ssh://git@github.com/alsaiduq-lab/hyprland-dots";
|
||||
flake = false;
|
||||
};
|
||||
|
||||
hu-tao-cursor = {
|
||||
url = "git+ssh://git@github.com/alsaiduq-lab/Hu-Tao-Animated-Cursor";
|
||||
};
|
||||
# TODO: sops-nix = {
|
||||
# url = "github:Mic92/sops-nix";
|
||||
# inputs.nixpkgs.follows = "nixpkgs";
|
||||
# };
|
||||
|
||||
ghostty = {
|
||||
url = "github:ghostty-org/ghostty";
|
||||
};
|
||||
|
||||
# TODO: sops-nix = {
|
||||
# url = "github:Mic92/sops-nix";
|
||||
# inputs.nixpkgs.follows = "nixpkgs";
|
||||
# };
|
||||
|
||||
# Hyprspace = {
|
||||
# url = "github:rich/Hyprspace";
|
||||
# };
|
||||
};
|
||||
|
||||
outputs = {
|
||||
|
|
@ -65,7 +83,7 @@
|
|||
inherit system;
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
i3dotfiles = inputs.i3-dotfiles;
|
||||
hyprlanddots = inputs.hyprland-dots;
|
||||
};
|
||||
|
||||
modules = [
|
||||
|
|
@ -77,8 +95,11 @@
|
|||
};
|
||||
hostPlatform = system;
|
||||
overlays = [
|
||||
(final: prev: {ollama = unstablePkgs.ollama;})
|
||||
(final: prev: {rpcs3 = unstablePkgs.rpcs3;})
|
||||
(final: prev: {
|
||||
ollama = unstablePkgs.ollama;
|
||||
rpcs3 = unstablePkgs.rpcs3;
|
||||
quickshell = unstable.legacyPackages.${system}.quickshell;
|
||||
})
|
||||
(final: prev: {
|
||||
inherit
|
||||
(customPkgs)
|
||||
|
|
@ -94,9 +115,7 @@
|
|||
binary-font = prev.binary-font.binary-clock-font;
|
||||
})
|
||||
(final: prev: {ghostty = inputs.ghostty.packages.${system}.default;})
|
||||
(final: prev: {
|
||||
hu-tao-animated-cursor = inputs.hu-tao-cursor.packages.${system}.default;
|
||||
})
|
||||
(final: prev: {hu-tao-animated-cursor = inputs.hu-tao-cursor.packages.${system}.default;})
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -107,8 +126,9 @@
|
|||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs unstable;
|
||||
i3dotfiles = inputs.i3-dotfiles;
|
||||
inherit inputs;
|
||||
hyprlanddots = inputs.hyprland-dots;
|
||||
nvimDotfiles = inputs.nvim-dots;
|
||||
};
|
||||
users.cobray = import ./home-manager/cobray.nix;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,16 +1,17 @@
|
|||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
config,
|
||||
lib,
|
||||
hyprlanddots,
|
||||
nvimDotfiles,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./modules/dunst.nix
|
||||
./init.nix
|
||||
./modules/fish.nix
|
||||
./modules/ghostty.nix
|
||||
./modules/lazygit.nix
|
||||
./modules/nvim.nix
|
||||
./modules/picom.nix
|
||||
./modules/polybar.nix
|
||||
./modules/rofi.nix
|
||||
./modules/starship.nix
|
||||
./modules/zellij.nix
|
||||
|
|
@ -20,11 +21,15 @@
|
|||
./modules/thorium.nix
|
||||
./modules/spotify.nix
|
||||
./modules/obs.nix
|
||||
./modules/udiskie.nix
|
||||
./modules/mpv.nix
|
||||
./modules/waybar.nix
|
||||
./modules/ani-cli.nix
|
||||
# temp removed, currently broken on nixpkgs? lmao
|
||||
# ./modules/bambustudio.nix
|
||||
./modules/quickshell.nix
|
||||
# currently broken
|
||||
# ./modules/hyprspace.nix
|
||||
./modules/cava.nix
|
||||
./modules/matugen.nix
|
||||
./modules/rgb.nix
|
||||
];
|
||||
|
||||
home.username = "cobray";
|
||||
|
|
@ -35,13 +40,8 @@
|
|||
xdg.mime.enable = false;
|
||||
|
||||
home.packages = with pkgs; [
|
||||
coreutils
|
||||
gnused
|
||||
findutils
|
||||
yazi
|
||||
htop
|
||||
btop
|
||||
nvtopPackages.full
|
||||
arandr
|
||||
kdePackages.dolphin
|
||||
];
|
||||
}
|
||||
|
|
|
|||
41
home-manager/init.nix
Normal file
41
home-manager/init.nix
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
hyprlanddots,
|
||||
nvimDotfiles,
|
||||
...
|
||||
}: {
|
||||
home.activation.HyprlandDots = lib.hm.dag.entryAfter ["linkGeneration"] ''
|
||||
set -euo pipefail
|
||||
umask 022
|
||||
repo=${lib.escapeShellArg hyprlanddots}
|
||||
nvimrepo=${lib.escapeShellArg nvimDotfiles}
|
||||
mkdir -p "${config.xdg.configHome}"
|
||||
copy_dir() {
|
||||
src="$1"; dest="$2"
|
||||
[ -d "$src" ] || return 0
|
||||
[ -e "$dest" ] && return 0
|
||||
mkdir -p "$dest"
|
||||
if [ -x ${pkgs.rsync}/bin/rsync ]; then
|
||||
${pkgs.rsync}/bin/rsync -rlD \
|
||||
--chmod=Du=rwx,Dgo=rx,Fu=rw,Fgo=r \
|
||||
-- "$src"/ "$dest"/
|
||||
else
|
||||
cp -R -P --no-preserve=mode,ownership,timestamps -- "$src"/. "$dest"/
|
||||
fi
|
||||
chmod -R u+rwX "$dest"
|
||||
}
|
||||
|
||||
copy_dir "$repo/fish" "${config.xdg.configHome}/fish"
|
||||
copy_dir "$repo/hypr" "${config.xdg.configHome}/hypr"
|
||||
copy_dir "$repo/quickshell" "${config.xdg.configHome}/quickshell"
|
||||
copy_dir "$repo/waybar" "${config.xdg.configHome}/waybar"
|
||||
copy_dir "$repo/cava" "${config.xdg.configHome}/cava"
|
||||
copy_dir "$nvimrepo" "${config.xdg.configHome}/nvim"
|
||||
|
||||
if [ -f "$repo/starship.toml" ] && [ ! -e "${config.xdg.configHome}/starship.toml" ]; then
|
||||
install -Dm0644 "$repo/starship.toml" "${config.xdg.configHome}/starship.toml"
|
||||
fi
|
||||
'';
|
||||
}
|
||||
5
home-manager/modules/cava.nix
Normal file
5
home-manager/modules/cava.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [ cava ];
|
||||
}
|
||||
|
|
@ -1,146 +0,0 @@
|
|||
{pkgs, ...}: let
|
||||
urgencyLowBackground = "#1a1b26";
|
||||
urgencyLowForeground = "#c0caf5";
|
||||
urgencyLowFrameColor = "#7aa2f7";
|
||||
urgencyNormalBackground = "#24283b";
|
||||
urgencyNormalForeground = "#c0caf5";
|
||||
urgencyNormalFrameColor = "#7aa2f7";
|
||||
urgencyCriticalBackground = "#f7768e";
|
||||
urgencyCriticalForeground = "#1a1b26";
|
||||
urgencyCriticalFrameColor = "#ff757f";
|
||||
|
||||
volumeHighlight = "#f5c2e7";
|
||||
volumeFrameColor = "#eba0ac";
|
||||
volumeBackground = "#45475a";
|
||||
volumeForeground = "#f5e0dc";
|
||||
|
||||
brightnessHighlight = "#94e2d5";
|
||||
brightnessFrameColor = "#74c7ec";
|
||||
brightnessBackground = "#313244";
|
||||
brightnessForeground = "#a6e3a1";
|
||||
|
||||
networkHighlight = "#f9e2af";
|
||||
networkFrameColor = "#f38ba8";
|
||||
networkBackground = "#1e1e2e";
|
||||
networkForeground = "#fab387";
|
||||
|
||||
globalFrameColor = "#7aa2f7";
|
||||
globalCornerRadius = 10;
|
||||
globalMargin = 8;
|
||||
globalPadding = 12;
|
||||
globalBorderWidth = 2;
|
||||
globalFont = "0xProto Nerd Font Bold 10";
|
||||
globalIconPath = "/usr/share/icons/Candy/16x16/status/:/usr/share/icons/Candy/16x16/devices/:/usr/share/icons/Candy/16x16/apps/";
|
||||
in {
|
||||
services.dunst = {
|
||||
enable = true;
|
||||
settings = {
|
||||
global = {
|
||||
monitor = 0;
|
||||
follow = "mouse";
|
||||
width = "(300, 400)";
|
||||
height = 300;
|
||||
origin = "top-right";
|
||||
offset = "15x50";
|
||||
scale = 0;
|
||||
notification_limit = 0;
|
||||
|
||||
progress_bar = true;
|
||||
progress_bar_height = 10;
|
||||
progress_bar_frame_width = 1;
|
||||
progress_bar_min_width = 150;
|
||||
progress_bar_max_width = 300;
|
||||
|
||||
transparency = 5;
|
||||
padding = globalPadding;
|
||||
horizontal_padding = globalPadding;
|
||||
text_icon_padding = 12;
|
||||
frame_width = globalBorderWidth;
|
||||
frame_color = globalFrameColor;
|
||||
separator_color = "frame";
|
||||
separator_height = 2;
|
||||
corner_radius = globalCornerRadius;
|
||||
gap_size = globalMargin;
|
||||
line_height = 0;
|
||||
|
||||
font = globalFont;
|
||||
markup = "full";
|
||||
format = "<b>%s</b>\n%b";
|
||||
alignment = "left";
|
||||
vertical_alignment = "center";
|
||||
show_age_threshold = 60;
|
||||
ellipsize = "middle";
|
||||
ignore_newline = "no";
|
||||
stack_duplicates = true;
|
||||
hide_duplicate_count = false;
|
||||
show_indicators = true;
|
||||
|
||||
enable_recursive_icon_lookup = true;
|
||||
icon_position = "left";
|
||||
min_icon_size = 32;
|
||||
max_icon_size = 128;
|
||||
icon_path = globalIconPath;
|
||||
|
||||
sticky_history = "yes";
|
||||
history_length = 20;
|
||||
|
||||
mouse_left_click = "do_action, close_current";
|
||||
mouse_middle_click = "close_all";
|
||||
mouse_right_click = "close_current";
|
||||
};
|
||||
|
||||
urgency_low = {
|
||||
background = urgencyLowBackground;
|
||||
foreground = urgencyLowForeground;
|
||||
frame_color = urgencyLowFrameColor;
|
||||
timeout = 5;
|
||||
};
|
||||
|
||||
urgency_normal = {
|
||||
background = urgencyNormalBackground;
|
||||
foreground = urgencyNormalForeground;
|
||||
frame_color = urgencyNormalFrameColor;
|
||||
timeout = 5;
|
||||
};
|
||||
|
||||
urgency_critical = {
|
||||
background = urgencyCriticalBackground;
|
||||
foreground = urgencyCriticalForeground;
|
||||
frame_color = urgencyCriticalFrameColor;
|
||||
timeout = 0;
|
||||
};
|
||||
|
||||
volume = {
|
||||
appname = "Volume";
|
||||
summary = "*";
|
||||
format = "<b>%s</b>\n%b";
|
||||
highlight = volumeHighlight;
|
||||
frame_color = volumeFrameColor;
|
||||
background = volumeBackground;
|
||||
foreground = volumeForeground;
|
||||
};
|
||||
brightness = {
|
||||
appname = "Brightness";
|
||||
summary = "*";
|
||||
format = "<b>%s</b>\n%b";
|
||||
highlight = brightnessHighlight;
|
||||
frame_color = brightnessFrameColor;
|
||||
background = brightnessBackground;
|
||||
foreground = brightnessForeground;
|
||||
};
|
||||
network = {
|
||||
appname = "Network";
|
||||
summary = "*";
|
||||
format = "<b>%s</b>\n%b";
|
||||
highlight = networkHighlight;
|
||||
frame_color = networkFrameColor;
|
||||
background = networkBackground;
|
||||
foreground = networkForeground;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
dunst
|
||||
];
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
{pkgs, ...}: {
|
||||
home.packages = [
|
||||
(pkgs.ffmpeg-full.override {withXcb = true;})
|
||||
pkgs.ffmpeg
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,5 +6,6 @@
|
|||
eza
|
||||
fd
|
||||
ugrep
|
||||
yazi
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,38 @@
|
|||
{pkgs, ...}: {
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
home.packages = with pkgs; [
|
||||
ghostty
|
||||
fastfetch
|
||||
];
|
||||
|
||||
programs.ghostty = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
|
||||
settings = {
|
||||
command = "${pkgs.fish}/bin/fish --login --interactive";
|
||||
font-family = "0xProto Nerd Font";
|
||||
font-size = 12;
|
||||
theme = "TokyoNight Storm";
|
||||
window-padding-x = 10;
|
||||
window-padding-y = 10;
|
||||
cursor-color = "#7AA2F7";
|
||||
cursor-style = "block";
|
||||
cursor-style-blink = true;
|
||||
window-decoration = "none";
|
||||
window-theme = "dark";
|
||||
selection-background = "#364A82";
|
||||
selection-foreground = "#C0CAF5";
|
||||
|
||||
keybind = [
|
||||
"super+t=new_tab"
|
||||
"super+w=close_surface"
|
||||
];
|
||||
};
|
||||
};
|
||||
home.file."${config.xdg.configHome}/ghostty/config".force = lib.mkForce true;
|
||||
}
|
||||
|
|
|
|||
3
home-manager/modules/hyprspace.nix
Normal file
3
home-manager/modules/hyprspace.nix
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{pkgs, ...}: {
|
||||
home.packages = [pkgs.hyprspace];
|
||||
}
|
||||
3
home-manager/modules/matugen.nix
Normal file
3
home-manager/modules/matugen.nix
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{pkgs, ...}: {
|
||||
home.packages = [pkgs.matugen];
|
||||
}
|
||||
|
|
@ -3,35 +3,12 @@
|
|||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
gitDir = "${pkgs.git}/bin/git";
|
||||
nvim = "${config.home.homeDirectory}/.config/nvim";
|
||||
in {
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
}: {
|
||||
programs.neovim.enable = true;
|
||||
home.packages = with pkgs; [
|
||||
git
|
||||
luajit
|
||||
luaPackages.luarocks
|
||||
tree-sitter
|
||||
];
|
||||
|
||||
home.sessionPath = ["$HOME/.local/share/nvim/mason/bin"];
|
||||
|
||||
home.activation.nvimConfig = lib.hm.dag.entryAfter ["writeBoundary"] ''
|
||||
if [ ! -d "${nvim}/.git" ]; then
|
||||
${gitDir} clone --depth 1 \
|
||||
https://github.com/alsaiduq-lab/nvim-dotfiles.git "${nvim}"
|
||||
echo "Neovim config at ${nvim} was installed"
|
||||
else
|
||||
if ${gitDir} -C "${nvim}" pull --ff-only origin master \
|
||||
| grep -q 'Already up to date.'; then
|
||||
echo "Neovim config at ${nvim} is unchanged"
|
||||
else
|
||||
echo "Neovim config at ${nvim} was updated"
|
||||
fi
|
||||
fi
|
||||
'';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,15 +0,0 @@
|
|||
{
|
||||
i3dotfiles,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
home.packages = with pkgs; [
|
||||
picom
|
||||
];
|
||||
|
||||
xdg.configFile."picom" = {
|
||||
source = "${i3dotfiles}/picom";
|
||||
recursive = true;
|
||||
force = true;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
{
|
||||
i3dotfiles,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
home.packages = pkgs.polybar.all;
|
||||
|
||||
xdg.configFile."polybar" = {
|
||||
source = "${i3dotfiles}/polybar";
|
||||
recursive = true;
|
||||
force = true;
|
||||
};
|
||||
}
|
||||
6
home-manager/modules/quickshell.nix
Normal file
6
home-manager/modules/quickshell.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [
|
||||
quickshell
|
||||
];
|
||||
home.sessionPath = ["${pkgs.quickshell}/bin"];
|
||||
}
|
||||
17
home-manager/modules/rgb.nix
Normal file
17
home-manager/modules/rgb.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{pkgs, ...}: {
|
||||
home.packages = [pkgs.openrgb-with-all-plugins];
|
||||
|
||||
systemd.user.services.openrgb-gui = {
|
||||
Unit = {
|
||||
Description = "OpenRGB GUI (daemon)";
|
||||
After = ["graphical-session.target"];
|
||||
PartOf = ["graphical-session.target"];
|
||||
};
|
||||
Service = {
|
||||
ExecStart = "${pkgs.openrgb-with-all-plugins}/bin/openrgb --gui --startminimized --server 127.0.0.1:6742 --profile default";
|
||||
Restart = "on-failure";
|
||||
Environment = "QT_QPA_PLATFORM=wayland;xcb";
|
||||
};
|
||||
Install.WantedBy = ["graphical-session.target"];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,7 +1,4 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [
|
||||
rofi
|
||||
];
|
||||
|
|
|
|||
|
|
@ -1,11 +1,6 @@
|
|||
{i3dotfiles, ...}: {
|
||||
{...}: {
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
};
|
||||
|
||||
xdg.configFile."starship.toml" = {
|
||||
source = "${i3dotfiles}/starship.toml";
|
||||
force = true;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [ pkgs.thorium ];
|
||||
{pkgs, ...}: {
|
||||
home.packages = [pkgs.thorium];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +0,0 @@
|
|||
{...}: {
|
||||
services.udiskie = {
|
||||
enable = true;
|
||||
tray = "always";
|
||||
};
|
||||
}
|
||||
5
home-manager/modules/waybar.nix
Normal file
5
home-manager/modules/waybar.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [
|
||||
waybar
|
||||
];
|
||||
}
|
||||
|
|
@ -10,12 +10,10 @@
|
|||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
cava
|
||||
pulseaudio
|
||||
alsa-utils
|
||||
portaudio
|
||||
alsa-lib
|
||||
pavucontrol
|
||||
clang
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,13 +6,11 @@
|
|||
gawk
|
||||
psmisc
|
||||
unzip
|
||||
bash
|
||||
maim
|
||||
wrk
|
||||
bitwarden
|
||||
hashcat
|
||||
cachix
|
||||
gcc
|
||||
gcc14
|
||||
gnumake
|
||||
cmake
|
||||
ninja
|
||||
|
|
@ -28,5 +26,8 @@
|
|||
libclang
|
||||
argc
|
||||
appimage-run
|
||||
clang
|
||||
rsync
|
||||
openssl
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,62 +3,62 @@
|
|||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
t = config.theme;
|
||||
in {
|
||||
environment.shellInit = ''
|
||||
if [ -d "$HOME/.cargo/bin" ]; then
|
||||
export PATH="$PATH:$HOME/.cargo/bin"
|
||||
fi
|
||||
'';
|
||||
|
||||
}: {
|
||||
environment.variables = {
|
||||
EDITOR = "nvim";
|
||||
VISUAL = "nvim";
|
||||
TERM = "ghostty";
|
||||
BROWSER = "thorium";
|
||||
XCURSOR_THEME = t.cursorName;
|
||||
XCURSOR_SIZE = toString t.cursorSize;
|
||||
EDITOR = config.theme.Editor;
|
||||
TERM = config.theme.Terminal;
|
||||
BROWSER = config.theme.Browser;
|
||||
XCURSOR_THEME = config.theme.cursorName;
|
||||
XCURSOR_SIZE = toString config.theme.cursorSize;
|
||||
GTK_THEME = "${config.theme.gtkTheme}:${config.theme.gtkThemeMode}";
|
||||
QT_QPA_PLATFORMTHEME = config.theme.qtTheme;
|
||||
QT_STYLE_OVERRIDE = config.theme.qtOverride;
|
||||
|
||||
XDG_SESSION_TYPE = "wayland";
|
||||
XDG_CURRENT_DESKTOP = "Hyprland";
|
||||
XDG_SESSION_DESKTOP = "Hyprland";
|
||||
GDK_BACKEND = "wayland,x11";
|
||||
QT_QPA_PLATFORM = "wayland;xcb";
|
||||
SDL_VIDEODRIVER = "wayland";
|
||||
MOZ_ENABLE_WAYLAND = "1";
|
||||
NIXOS_OZONE_WL = "1";
|
||||
|
||||
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
|
||||
GBM_BACKEND = "nvidia-drm";
|
||||
LIBVA_DRIVER_NAME = "nvidia";
|
||||
|
||||
CC = "${pkgs.gcc}/bin/gcc";
|
||||
LIBCLANG_PATH = "${pkgs.llvmPackages.libclang.lib}/lib";
|
||||
|
||||
LUA_PATH = "${pkgs.luajit}/share/lua/5.1/?.lua;${pkgs.luajit}/share/lua/5.1/?/init.lua;;";
|
||||
LUA_CPATH = "${pkgs.luajit}/lib/lua/5.1/?.so;;";
|
||||
|
||||
PKG_CONFIG_PATH = lib.makeSearchPath "lib/pkgconfig" [
|
||||
pkgs.mesa
|
||||
pkgs.openssl.dev
|
||||
pkgs.libxml2.dev
|
||||
pkgs.zlib.dev
|
||||
pkgs.portaudio
|
||||
pkgs.alsa-lib
|
||||
pkgs.stdenv.cc.cc
|
||||
pkgs.xorg.libX11.dev
|
||||
pkgs.xorg.libXtst
|
||||
pkgs.xorg.libXi.dev
|
||||
];
|
||||
|
||||
LD_LIBRARY_PATH = lib.makeLibraryPath [
|
||||
pkgs.libglvnd
|
||||
pkgs.mesa
|
||||
pkgs.gcc-unwrapped.lib
|
||||
pkgs.linuxPackages.nvidia_x11
|
||||
pkgs.cudatoolkit
|
||||
pkgs.mangohud
|
||||
pkgs.portaudio
|
||||
pkgs.alsa-lib
|
||||
pkgs.stdenv.cc.cc.lib
|
||||
pkgs.xorg.libX11
|
||||
pkgs.xorg.libXtst
|
||||
pkgs.xorg.libXi
|
||||
pkgs.wayland
|
||||
pkgs.libxkbcommon
|
||||
pkgs.glib
|
||||
];
|
||||
|
||||
CUDA_HOME = "${pkgs.cudatoolkit}";
|
||||
CUDA_HOME = pkgs.cudatoolkit;
|
||||
CPATH = "${pkgs.cudatoolkit}/include";
|
||||
LIBCLANG_PATH = "${pkgs.llvmPackages.libclang}/lib";
|
||||
};
|
||||
|
||||
environment.pathsToLink = [
|
||||
"/share/fish"
|
||||
"/share/${config.theme.Shell}"
|
||||
"/bin"
|
||||
"/share/icons"
|
||||
"/share/pixmaps"
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@
|
|||
kochi-substitute
|
||||
clear-sans
|
||||
binary-font
|
||||
fontconfig
|
||||
];
|
||||
fontconfig = {
|
||||
enable = true;
|
||||
|
|
|
|||
|
|
@ -2,39 +2,32 @@
|
|||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
t = config.theme;
|
||||
cursorName = t.cursorName;
|
||||
cursorSize = toString t.cursorSize;
|
||||
gtkTheme = t.gtkTheme;
|
||||
iconTheme = t.iconTheme;
|
||||
fontName = t.fontName;
|
||||
in {
|
||||
}: {
|
||||
environment.etc = {
|
||||
"gtk-2.0/gtkrc".text = ''
|
||||
gtk-theme-name=${gtkTheme}
|
||||
gtk-icon-theme-name=${iconTheme}
|
||||
gtk-font-name=${fontName}
|
||||
gtk-cursor-theme-name=${cursorName}
|
||||
gtk-cursor-theme-size=${cursorSize}
|
||||
gtk-theme-name=${config.theme.gtkTheme}
|
||||
gtk-icon-theme-name=${config.theme.iconTheme}
|
||||
gtk-font-name=${config.theme.font}
|
||||
gtk-cursor-theme-name=${config.theme.cursorName}
|
||||
gtk-cursor-theme-size="${builtins.toString config.theme.cursorSize}"
|
||||
'';
|
||||
"gtk-3.0/settings.ini".text = ''
|
||||
[Settings]
|
||||
gtk-application-prefer-dark-theme=1
|
||||
gtk-theme-name=${gtkTheme}
|
||||
gtk-icon-theme-name=${iconTheme}
|
||||
gtk-font-name=${fontName}
|
||||
gtk-cursor-theme-name=${cursorName}
|
||||
gtk-cursor-theme-size=${cursorSize}
|
||||
gtk-application-prefer-${config.theme.gtkThemeMode}-theme=1
|
||||
gtk-theme-name=${config.theme.gtkTheme}
|
||||
gtk-icon-theme-name=${config.theme.iconTheme}
|
||||
gtk-font-name=${config.theme.font}
|
||||
gtk-cursor-theme-name=${config.theme.cursorName}
|
||||
gtk-cursor-theme-size="${builtins.toString config.theme.cursorSize}"
|
||||
'';
|
||||
"gtk-4.0/settings.ini".text = ''
|
||||
[Settings]
|
||||
gtk-application-prefer-dark-theme=1
|
||||
gtk-theme-name=${gtkTheme}
|
||||
gtk-icon-theme-name=${iconTheme}
|
||||
gtk-font-name=${fontName}
|
||||
gtk-cursor-theme-name=${cursorName}
|
||||
gtk-cursor-theme-size=${cursorSize}
|
||||
gtk-application-prefer-${config.theme.gtkThemeMode}-theme=1
|
||||
gtk-theme-name=${config.theme.gtkTheme}
|
||||
gtk-icon-theme-name=${config.theme.iconTheme}
|
||||
gtk-font-name=${config.theme.font}
|
||||
gtk-cursor-theme-name=${config.theme.cursorName}
|
||||
gtk-cursor-theme-size="${builtins.toString config.theme.cursorSize}"
|
||||
'';
|
||||
};
|
||||
|
||||
|
|
@ -42,11 +35,16 @@ in {
|
|||
programs.dconf.profiles.user.databases = [
|
||||
{
|
||||
settings."org/gnome/desktop/interface" = {
|
||||
gtk-theme = gtkTheme;
|
||||
icon-theme = iconTheme;
|
||||
cursor-theme = cursorName;
|
||||
font-name = fontName;
|
||||
gtk-theme = config.theme.gtkTheme;
|
||||
icon-theme = config.theme.iconTheme;
|
||||
cursor-theme = config.theme.cursorName;
|
||||
font-name = config.theme.font;
|
||||
color-scheme = "prefer-${config.theme.gtkThemeMode}";
|
||||
};
|
||||
}
|
||||
];
|
||||
|
||||
environment.sessionVariables = {
|
||||
GTK_THEME = "${config.theme.gtkTheme}:${config.theme.gtkThemeMode}";
|
||||
};
|
||||
}
|
||||
|
|
|
|||
57
hosts/modules/hyprland.nix
Normal file
57
hosts/modules/hyprland.nix
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
services.xserver.enable = false;
|
||||
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
};
|
||||
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
package = pkgs.greetd.tuigreet;
|
||||
settings.default_session = {
|
||||
user = "greeter";
|
||||
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --remember --cmd ${pkgs.hyprland}/bin/Hyprland";
|
||||
};
|
||||
};
|
||||
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
extraPortals = with pkgs; [xdg-desktop-portal-hyprland xdg-desktop-portal-gtk];
|
||||
config = {
|
||||
common.default = ["gtk"];
|
||||
hyprland.default = ["hyprland" "gtk"];
|
||||
};
|
||||
};
|
||||
systemd.user.services.xdg-desktop-portal-hyprland.unitConfig.ConditionPathExists = "%t/wayland-0";
|
||||
|
||||
security.polkit.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
qt5.qtwayland
|
||||
qt6.qtwayland
|
||||
polkit_gnome
|
||||
candy-icons
|
||||
hu-tao-animated-cursor
|
||||
tokyonight-gtk-theme
|
||||
hyprlock
|
||||
wlogout
|
||||
wl-clipboard
|
||||
xclip
|
||||
wofi
|
||||
hyprshot
|
||||
hypridle
|
||||
polkit_gnome
|
||||
grim
|
||||
slurp
|
||||
swappy
|
||||
imv
|
||||
syshud
|
||||
hyprpaper
|
||||
];
|
||||
}
|
||||
|
|
@ -1,69 +0,0 @@
|
|||
{pkgs, ...}: {
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
xkb = {
|
||||
layout = "us";
|
||||
variant = "";
|
||||
};
|
||||
|
||||
windowManager.i3 = {
|
||||
enable = true;
|
||||
package = pkgs.i3-gaps;
|
||||
extraSessionCommands = ''
|
||||
if [ -f /var/lib/lightdm-background/.last-wallpaper ]; then
|
||||
${pkgs.feh}/bin/feh --bg-fill "$(cat /var/lib/lightdm-background/.last-wallpaper)"
|
||||
fi
|
||||
'';
|
||||
};
|
||||
|
||||
# this is actually here because i get peeved personally when I see a none in "none+i3"
|
||||
desktopManager.xfce = {
|
||||
enable = true;
|
||||
noDesktop = true;
|
||||
enableXfwm = false;
|
||||
};
|
||||
|
||||
desktopManager.session = [
|
||||
{
|
||||
name = "xfce+i3";
|
||||
start = ''
|
||||
if [ -f /var/lib/lightdm-background/.last-wallpaper ]; then
|
||||
${pkgs.feh}/bin/feh --bg-fill "$(cat /var/lib/lightdm-background/.last-wallpaper)"
|
||||
fi
|
||||
export XDG_DATA_DIRS="${pkgs.tokyonight-gtk-theme}/share:${pkgs.candy-icons}/share:${pkgs.hicolor-icon-theme}/share:${pkgs.adwaita-icon-theme}/share:$XDG_DATA_DIRS"
|
||||
${pkgs.xfce.xfce4-session}/bin/xfce4-session --with-ck-launch &
|
||||
${pkgs.i3-gaps}/bin/i3
|
||||
'';
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
dmenu
|
||||
i3status
|
||||
i3lock-color
|
||||
i3blocks
|
||||
picom
|
||||
feh
|
||||
i3-auto-layout
|
||||
yt-dlp
|
||||
flameshot
|
||||
imagemagick
|
||||
slop
|
||||
ghostscript
|
||||
via
|
||||
arandr
|
||||
xsettingsd
|
||||
lxappearance
|
||||
gsettings-desktop-schemas
|
||||
adwaita-qt
|
||||
candy-icons
|
||||
tokyonight-gtk-theme
|
||||
hicolor-icon-theme
|
||||
adwaita-icon-theme
|
||||
gnome-themes-extra
|
||||
findutils
|
||||
coreutils
|
||||
hu-tao-animated-cursor
|
||||
];
|
||||
}
|
||||
|
|
@ -1,17 +1,11 @@
|
|||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
linuxHeaders
|
||||
freetype.dev
|
||||
pixman
|
||||
mesa
|
||||
libglvnd
|
||||
dbus.dev
|
||||
openssl
|
||||
openssl.dev
|
||||
libxml2
|
||||
zlib
|
||||
zlib.dev
|
||||
texlive.combined.scheme-full
|
||||
poppler_utils
|
||||
libnotify
|
||||
egl-wayland
|
||||
vulkan-tools
|
||||
libva-utils
|
||||
vdpauinfo
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
networkmanagerapplet
|
||||
wget
|
||||
curl
|
||||
aria2
|
||||
cloudflared
|
||||
nmap
|
||||
httpie
|
||||
|
|
|
|||
|
|
@ -9,27 +9,35 @@
|
|||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
open = true;
|
||||
modesetting.enable = true; # must be true for Wayland
|
||||
powerManagement.enable = false;
|
||||
powerManagement.enable = false; # laptops need this
|
||||
nvidiaSettings = true;
|
||||
nvidiaPersistenced = true;
|
||||
};
|
||||
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
extraPackages = with pkgs; [nvidia-vaapi-driver];
|
||||
};
|
||||
|
||||
programs.nix-ld = {
|
||||
enable = true;
|
||||
libraries = with pkgs; [
|
||||
stdenv.cc.cc.lib
|
||||
cudaPackages.cudatoolkit.lib
|
||||
cudaPackages.cudatoolkit
|
||||
cudaPackages.cudnn
|
||||
cudaPackages.nccl
|
||||
config.hardware.nvidia.package
|
||||
];
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
glxinfo
|
||||
mesa-demos
|
||||
vulkan-tools
|
||||
vulkan-headers
|
||||
vulkan-validation-layers
|
||||
libva-utils
|
||||
vdpauinfo
|
||||
egl-wayland
|
||||
cudaPackages.cudatoolkit
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,7 @@
|
|||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
(python311.withPackages (ps:
|
||||
(python312.withPackages (ps:
|
||||
with ps; [
|
||||
i3ipc
|
||||
requests
|
||||
ipython
|
||||
six
|
||||
|
|
@ -19,10 +18,10 @@
|
|||
datasets
|
||||
debugpy
|
||||
pynvim
|
||||
pkginfo
|
||||
]))
|
||||
isort
|
||||
uv
|
||||
python311
|
||||
ruff
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,9 @@
|
|||
{pkgs, ...}: {
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
services.hardware.openrgb = {
|
||||
enable = true;
|
||||
package = pkgs.openrgb-with-all-plugins;
|
||||
|
|
@ -6,9 +11,16 @@
|
|||
server.port = 6742;
|
||||
};
|
||||
|
||||
services.udev.packages = [pkgs.openrgb-with-all-plugins];
|
||||
boot.kernelModules = ["i2c-dev" "i2c-piix4"];
|
||||
users.groups.i2c.members = ["cobray"];
|
||||
services.udev.packages = [pkgs.openrgb-with-all-plugins];
|
||||
|
||||
systemd.services.openrgb.serviceConfig.Environment = "QT_QPA_PLATFORM=offscreen";
|
||||
users.groups = {
|
||||
i2c = {};
|
||||
plugdev = {};
|
||||
};
|
||||
|
||||
users.users.${config.theme.user}.extraGroups = ["i2c" "plugdev"];
|
||||
|
||||
systemd.services.openrgb.serviceConfig.Environment = ["QT_QPA_PLATFORM=offscreen"];
|
||||
environment.sessionVariables.QT_QPA_PLATFORM = "wayland;xcb";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ in {
|
|||
server = {
|
||||
bind_address = "127.0.0.1";
|
||||
port = 11212;
|
||||
limiter = true;
|
||||
limiter = false;
|
||||
image_proxy = true;
|
||||
base_url = lib.mkIf (domain != null) "https://${domain}";
|
||||
};
|
||||
|
|
@ -27,18 +27,25 @@ in {
|
|||
};
|
||||
search = {
|
||||
safe_search = 0;
|
||||
autocomplete = "google";
|
||||
default_engine = "google_web";
|
||||
default_categories = ["general" "it" "images" "videos" "map"];
|
||||
autocomplete = "duckduckgo";
|
||||
default_engine = "";
|
||||
default_categories = ["general" "it" "images" "videos" "map" "news" "science"];
|
||||
formats = ["html" "json"];
|
||||
};
|
||||
enabled_plugins = ["hash" "self_info" "tracker_url_remover" "hostname_replace"];
|
||||
enabled_plugins = [
|
||||
"hash"
|
||||
"self_info"
|
||||
"tracker_url_remover"
|
||||
"hostname_replace"
|
||||
"open_access_doi_rewrite"
|
||||
];
|
||||
engines = [
|
||||
{
|
||||
name = "duckduckgo_web";
|
||||
engine = "duckduckgo";
|
||||
disabled = false;
|
||||
categories = ["general"];
|
||||
weight = 0.9;
|
||||
weight = 1.0;
|
||||
timeout = 3.0;
|
||||
}
|
||||
{
|
||||
|
|
@ -46,7 +53,7 @@ in {
|
|||
engine = "google";
|
||||
disabled = false;
|
||||
categories = ["general"];
|
||||
weight = 0.75;
|
||||
weight = 1.0;
|
||||
timeout = 4.0;
|
||||
}
|
||||
{
|
||||
|
|
@ -54,7 +61,39 @@ in {
|
|||
engine = "bing";
|
||||
disabled = false;
|
||||
categories = ["general"];
|
||||
weight = 0.4;
|
||||
weight = 1.0;
|
||||
timeout = 4.0;
|
||||
}
|
||||
{
|
||||
name = "brave";
|
||||
engine = "brave";
|
||||
disabled = false;
|
||||
categories = ["general"];
|
||||
weight = 1.0;
|
||||
timeout = 3.0;
|
||||
}
|
||||
{
|
||||
name = "mojeek";
|
||||
engine = "mojeek";
|
||||
disabled = false;
|
||||
categories = ["general"];
|
||||
weight = 0.9;
|
||||
timeout = 3.0;
|
||||
}
|
||||
{
|
||||
name = "qwant";
|
||||
engine = "qwant";
|
||||
disabled = false;
|
||||
categories = ["general"];
|
||||
weight = 0.8;
|
||||
timeout = 3.0;
|
||||
}
|
||||
{
|
||||
name = "startpage";
|
||||
engine = "startpage";
|
||||
disabled = false;
|
||||
categories = ["general"];
|
||||
weight = 0.9;
|
||||
timeout = 4.0;
|
||||
}
|
||||
{
|
||||
|
|
@ -64,6 +103,13 @@ in {
|
|||
categories = ["general"];
|
||||
timeout = 3.0;
|
||||
}
|
||||
{
|
||||
name = "wikidata";
|
||||
engine = "wikidata";
|
||||
disabled = false;
|
||||
categories = ["general"];
|
||||
timeout = 3.0;
|
||||
}
|
||||
{
|
||||
name = "wikibooks";
|
||||
engine = "wikibooks";
|
||||
|
|
@ -78,6 +124,27 @@ in {
|
|||
categories = ["general"];
|
||||
timeout = 3.0;
|
||||
}
|
||||
{
|
||||
name = "arxiv";
|
||||
engine = "arxiv";
|
||||
disabled = false;
|
||||
categories = ["science"];
|
||||
timeout = 4.0;
|
||||
}
|
||||
{
|
||||
name = "crossref";
|
||||
engine = "crossref";
|
||||
disabled = false;
|
||||
categories = ["science"];
|
||||
timeout = 4.0;
|
||||
}
|
||||
{
|
||||
name = "semantic_scholar";
|
||||
engine = "semantic_scholar";
|
||||
disabled = false;
|
||||
categories = ["science"];
|
||||
timeout = 4.0;
|
||||
}
|
||||
{
|
||||
name = "github_code";
|
||||
engine = "github";
|
||||
|
|
@ -85,6 +152,13 @@ in {
|
|||
categories = ["it"];
|
||||
timeout = 4.0;
|
||||
}
|
||||
{
|
||||
name = "stackoverflow";
|
||||
engine = "stackoverflow";
|
||||
disabled = false;
|
||||
categories = ["it"];
|
||||
timeout = 4.0;
|
||||
}
|
||||
{
|
||||
name = "wikicommons_img";
|
||||
engine = "wikicommons";
|
||||
|
|
|
|||
|
|
@ -1,25 +0,0 @@
|
|||
{lib, ...}:
|
||||
with lib; {
|
||||
options.theme = {
|
||||
cursorName = mkOption {
|
||||
type = types.str;
|
||||
default = "Hu-Tao-Animated-Cursor";
|
||||
};
|
||||
cursorSize = mkOption {
|
||||
type = types.int;
|
||||
default = 24;
|
||||
};
|
||||
gtkTheme = mkOption {
|
||||
type = types.str;
|
||||
default = "Tokyonight-Dark";
|
||||
};
|
||||
iconTheme = mkOption {
|
||||
type = types.str;
|
||||
default = "candy-icons";
|
||||
};
|
||||
fontName = mkOption {
|
||||
type = types.str;
|
||||
default = "Clear Sans 10";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -18,14 +18,6 @@
|
|||
protontricks
|
||||
gamemode
|
||||
mangohud
|
||||
vulkan-tools
|
||||
vulkan-loader
|
||||
vulkan-headers
|
||||
vulkan-validation-layers
|
||||
libstrangle
|
||||
piper
|
||||
portaudio
|
||||
alsa-lib
|
||||
libglvnd
|
||||
];
|
||||
}
|
||||
|
|
|
|||
9
hosts/modules/udiskie.nix
Normal file
9
hosts/modules/udiskie.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
security.polkit.enable = true;
|
||||
services.udisks2.enable = true;
|
||||
services.gvfs.enable = true;
|
||||
}
|
||||
|
|
@ -1,10 +1,14 @@
|
|||
{pkgs, ...}: {
|
||||
# Define a user account. Don't forget to set a password with 'passwd'.
|
||||
users.users.cobray = {
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
users.users.${config.theme.user} = {
|
||||
isNormalUser = true;
|
||||
description = "Mon Aie";
|
||||
extraGroups = ["networkmanager" "wheel" "docker" "video"];
|
||||
shell = pkgs.fish;
|
||||
shell = builtins.getAttr config.theme.Shell pkgs;
|
||||
extraGroups = ["wheel" "networkmanager" "docker" "video" "render" "input" "audio"];
|
||||
linger = true;
|
||||
};
|
||||
|
||||
security.sudo = {
|
||||
|
|
@ -12,7 +16,7 @@
|
|||
wheelNeedsPassword = true;
|
||||
};
|
||||
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
};
|
||||
programs."${config.theme.Shell}".enable = true;
|
||||
|
||||
nix.settings.trusted-users = ["root" config.theme.user];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,12 +0,0 @@
|
|||
# For xorgsisters only
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
xorg.xdpyinfo
|
||||
slop
|
||||
xorg.libX11
|
||||
xorg.libXtst
|
||||
xorg.libXi
|
||||
xorg.xorgproto
|
||||
xclip
|
||||
];
|
||||
}
|
||||
64
hosts/settings.nix
Normal file
64
hosts/settings.nix
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
# used to seed my config
|
||||
{lib, ...}:
|
||||
with lib; {
|
||||
options.theme = {
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
default = "cobray";
|
||||
};
|
||||
cursorName = mkOption {
|
||||
type = types.str;
|
||||
default = "Hu-Tao-Animated-Cursor";
|
||||
};
|
||||
cursorSize = mkOption {
|
||||
type = types.int;
|
||||
default = 24;
|
||||
};
|
||||
gtkTheme = mkOption {
|
||||
type = types.str;
|
||||
default = "Tokyonight-Dark";
|
||||
};
|
||||
gtkThemeMode = mkOption {
|
||||
type = types.str;
|
||||
# light or dark mode
|
||||
default = "dark";
|
||||
};
|
||||
qtTheme = mkOption {
|
||||
type = types.str;
|
||||
# qt5 or 6 it seems
|
||||
default = "qt6ct";
|
||||
};
|
||||
qtOverride = mkOption {
|
||||
type = types.str;
|
||||
default = "Fusion";
|
||||
};
|
||||
iconTheme = mkOption {
|
||||
type = types.str;
|
||||
default = "candy-icons";
|
||||
};
|
||||
font = mkOption {
|
||||
type = types.str;
|
||||
default = "Clear Sans 10";
|
||||
};
|
||||
Terminal = mkOption {
|
||||
type = types.str;
|
||||
default = "ghostty";
|
||||
};
|
||||
TerminalFont = mkOption {
|
||||
type = types.str;
|
||||
default = "0xProto Nerd Font";
|
||||
};
|
||||
Browser = mkOption {
|
||||
type = types.str;
|
||||
default = "thorium";
|
||||
};
|
||||
Editor = mkOption {
|
||||
type = types.str;
|
||||
default = "nvim";
|
||||
};
|
||||
Shell = mkOption {
|
||||
type = types.str;
|
||||
default = "fish";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,8 +1,7 @@
|
|||
{pkgs, ...}: {
|
||||
imports = [
|
||||
./settings.nix
|
||||
./cachix.nix
|
||||
./modules/settings.nix
|
||||
./modules/i3.nix
|
||||
./modules/gtk.nix
|
||||
./modules/audio.nix
|
||||
./modules/bluetooth.nix
|
||||
|
|
@ -20,7 +19,6 @@
|
|||
./modules/npm.nix
|
||||
./modules/tailscale.nix
|
||||
./modules/ld.nix
|
||||
./modules/x11.nix
|
||||
./modules/ollama.nix
|
||||
./modules/cups.nix
|
||||
./modules/rust.nix
|
||||
|
|
@ -29,9 +27,11 @@
|
|||
./modules/core.nix
|
||||
./modules/libs.nix
|
||||
./modules/rgb.nix
|
||||
./modules/nano.nix
|
||||
./modules/hyprland.nix
|
||||
./modules/searxng.nix
|
||||
./modules/nano.nix
|
||||
./modules/qt.nix
|
||||
./modules/udiskie.nix
|
||||
];
|
||||
npm.enable = true;
|
||||
services.udisks2.enable = true;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue