Compare commits

..

10 Commits

Author SHA1 Message Date
e6609fd6f4 Added 2025-11-14 09:07:37 +01:00
03aebab782 Renamed home to programs, moved definition to user level 2025-09-22 23:35:57 +02:00
d3266d1c1d Changed: Niri bindings, docker, isoConfig 2025-09-22 19:22:26 +02:00
b693e9d02c Changed: Niri bindings, docker 2025-09-22 18:45:47 +02:00
ac8850ae00 Added: Container Switch 2025-09-19 16:32:49 +02:00
49e4f0e7ef added: swaync 2025-09-16 18:37:46 +02:00
d4c4cd0d0a Added: Nvidia CTK to HP 2025-09-10 13:46:24 +02:00
f31ba5ad4d Fixed: Fastfetch, Added: Avante Nvim 2025-09-10 13:41:20 +02:00
982f2aed1e Removed Cached Files 2025-09-10 11:50:07 +02:00
d099faf68a Changed Desktop 2025-09-10 11:48:22 +02:00
183 changed files with 2504 additions and 896 deletions

2
.gitignore vendored
View File

@@ -4,3 +4,5 @@ result/
.DS_Store
.pre-commit-config.yaml
logs/
avatar/pallete.*
cache/

View File

Before

Width:  |  Height:  |  Size: 1.8 MiB

After

Width:  |  Height:  |  Size: 1.8 MiB

BIN
avatar/avatar_high.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

BIN
avatar/avatar_no_bg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

BIN
avatar/avatar_talking.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 MiB

BIN
avatar/avatar_talking.mp4 Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 MiB

Binary file not shown.

365
flake.lock generated
View File

@@ -51,6 +51,27 @@
"type": "github"
}
},
"devshell": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1741473158,
"narHash": "sha256-kWNaq6wQUbUMlPgw8Y+9/9wP0F8SHkjy24/mN3UAppg=",
"owner": "numtide",
"repo": "devshell",
"rev": "7c9e793ebe66bcba8292989a68c0419b737a22a0",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "devshell",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
@@ -81,6 +102,20 @@
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
}
},
"flake-compat_3": {
"locked": {
"lastModified": 1733328505,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
"revCount": 69,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
@@ -99,6 +134,92 @@
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1756770412,
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "4524271976b625a4a605beefd893f270620fd751",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_3": {
"inputs": {
"nixpkgs-lib": [
"nur",
"nixpkgs"
]
},
"locked": {
"lastModified": 1733312601,
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems_2"
},
"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"
}
},
"git-hooks": {
"inputs": {
"flake-compat": [
"nixvim",
"flake-compat"
],
"gitignore": "gitignore_2",
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1757239681,
"narHash": "sha256-E9spYi9lxm2f1zWQLQ7xQt8Xs2nWgr1T4QM7ZjLFphM=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "ab82ab08d6bf74085bd328de2a8722c12d97bd9d",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
@@ -121,6 +242,28 @@
"type": "github"
}
},
"gitignore_2": {
"inputs": {
"nixpkgs": [
"nixvim",
"git-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@@ -142,6 +285,28 @@
"type": "github"
}
},
"home-manager_2": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1747688870,
"narHash": "sha256-ypL9WAZfmJr5V70jEVzqGjjQzF0uCkz+AFQF7n9NmNc=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "d5f1f641b289553927b3801580598d200a501863",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-24.11",
"repo": "home-manager",
"type": "github"
}
},
"hyprcursor": {
"inputs": {
"hyprlang": [
@@ -431,6 +596,56 @@
"type": "github"
}
},
"ixx": {
"inputs": {
"flake-utils": [
"nixvim",
"nuschtosSearch",
"flake-utils"
],
"nixpkgs": [
"nixvim",
"nuschtosSearch",
"nixpkgs"
]
},
"locked": {
"lastModified": 1754860581,
"narHash": "sha256-EM0IE63OHxXCOpDHXaTyHIOk2cNvMCGPqLt/IdtVxgk=",
"owner": "NuschtOS",
"repo": "ixx",
"rev": "babfe85a876162c4acc9ab6fb4483df88fa1f281",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"ref": "v0.1.1",
"repo": "ixx",
"type": "github"
}
},
"nix-darwin": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1743127615,
"narHash": "sha256-+sMGqywrSr50BGMLMeY789mSrzjkoxZiu61eWjYS/8o=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "fc843893cecc1838a59713ee3e50e9e7edc6207c",
"type": "github"
},
"original": {
"owner": "lnl7",
"ref": "nix-darwin-24.11",
"repo": "nix-darwin",
"type": "github"
}
},
"nixcord": {
"inputs": {
"flake-compat": "flake-compat_2",
@@ -531,6 +746,22 @@
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1744536153,
"narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_6": {
"locked": {
"lastModified": 1751984180,
"narHash": "sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X+xgOL0=",
@@ -546,6 +777,79 @@
"type": "github"
}
},
"nixvim": {
"inputs": {
"devshell": "devshell",
"flake-compat": "flake-compat_3",
"flake-parts": "flake-parts_2",
"git-hooks": "git-hooks",
"home-manager": "home-manager_2",
"nix-darwin": "nix-darwin",
"nixpkgs": [
"nixpkgs"
],
"nuschtosSearch": "nuschtosSearch",
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1751725553,
"narHash": "sha256-bkvw8jXTdRBWRfO50IaxNuUIamnLllxfEFqUG/g3uwo=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "81d65e0cfb00df0269195b59f156c719cc045ab8",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "nixos-24.11",
"repo": "nixvim",
"type": "github"
}
},
"nur": {
"inputs": {
"flake-parts": "flake-parts_3",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1758273929,
"narHash": "sha256-8ZhQaoeWOcCpe14PLgJ7ZEhWFFISA2qcVuXTGlNZGgU=",
"owner": "nix-community",
"repo": "NUR",
"rev": "2d644af21cc32d53594b9d17fa167c4eec6431cd",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "NUR",
"type": "github"
}
},
"nuschtosSearch": {
"inputs": {
"flake-utils": "flake-utils",
"ixx": "ixx",
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1756738487,
"narHash": "sha256-8QX7Ab5CcICp7zktL47VQVS+QeaU4YDNAjzty7l7TQE=",
"owner": "NuschtOS",
"repo": "search",
"rev": "5feeaeefb571e6ca2700888b944f436f7c05149b",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"repo": "search",
"type": "github"
}
},
"pre-commit-hooks": {
"inputs": {
"flake-compat": "flake-compat",
@@ -577,14 +881,35 @@
"hyprland-plugins": "hyprland-plugins",
"nixcord": "nixcord",
"nixpkgs": "nixpkgs_4",
"nixvim": "nixvim",
"nur": "nur",
"rust-overlay": "rust-overlay",
"spicetify-nix": "spicetify-nix",
"unstable": "unstable"
}
},
"rust-overlay": {
"inputs": {
"nixpkgs": "nixpkgs_5"
},
"locked": {
"lastModified": 1762828736,
"narHash": "sha256-RxtFHWZpKwVcWHhx88E2NhWuBbgYVqIoIDynGs5FoJs=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "8d5baa5628f6dbd7ce6beca3c299bae27755204c",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"spicetify-nix": {
"inputs": {
"nixpkgs": "nixpkgs_5",
"systems": "systems_2"
"nixpkgs": "nixpkgs_6",
"systems": "systems_3"
},
"locked": {
"lastModified": 1751776600,
@@ -630,6 +955,42 @@
"type": "github"
}
},
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1756662192,
"narHash": "sha256-F1oFfV51AE259I85av+MAia221XwMHCOtZCMcZLK2Jk=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "1aabc6c05ccbcbf4a635fb7a90400e44282f61c4",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"unstable": {
"locked": {
"lastModified": 1756787288,

View File

@@ -17,6 +17,17 @@
# Core
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
unstable.url = "github:nixos/nixpkgs/nixos-unstable";
nur = {
url = "github:nix-community/NUR";
inputs.nixpkgs.follows = "nixpkgs";
};
# Editor
nixvim = {
url = "github:nix-community/nixvim/nixos-24.11";
# If using a stable channel you can use `url = "github:nix-community/nixvim/nixos-<version>"`
inputs.nixpkgs.follows = "nixpkgs";
};
# Desktop ENV
hyprland.url = "github:hyprwm/Hyprland";
@@ -34,6 +45,7 @@
home-manager.url = "github:nix-community/home-manager/release-24.11";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
rust-overlay.url = "github:oxalica/rust-overlay";
};
outputs =
@@ -42,11 +54,12 @@
nixpkgs,
home-manager,
catppuccin,
nixvim,
rust-overlay,
...
}:
let
system = "x86_64-linux";
# Common Configuration
commonModules = [
@@ -72,23 +85,20 @@
];
commonHomeManagerConfig =
{
username,
monitorSetup ? "single",
}:
{ username, monitorSetup }:
{
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
backupFileExtension = "backup";
extraSpecialArgs = {
inherit inputs;
inherit username monitorSetup;
inherit inputs username monitorSetup;
};
users.${username} = import ./users/${username}/home.nix;
sharedModules = [
inputs.catppuccin.homeModules.catppuccin
inputs.nixcord.homeModules.nixcord
inputs.nixvim.homeManagerModules.nixvim
];
};
};
@@ -100,13 +110,18 @@
username,
system ? "x86_64-linux",
monitorSetup ? "single",
containerization ? "none",
extraModules ? [ ],
}:
nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {
inherit inputs;
inherit username monitorSetup;
inherit
inputs
username
monitorSetup
containerization
;
};
modules =
commonModules
@@ -115,59 +130,79 @@
./users/${username}/nixos.nix
home-manager.nixosModules.home-manager
(commonHomeManagerConfig { inherit username monitorSetup; })
./modules/containerization
{
nixpkgs.overlays = [
inputs.rust-overlay.overlays.default
] ++ builtins.attrValues (import ./overlays);
}
]
++ extraModules;
};
# ISO configuration
isoConfig = nixpkgs.lib.nixosSystem {
inherit system;
modules = [
(import (nixpkgs + "/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix"))
(
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
neovim
git
wget
curl
];
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
}
)
];
};
mkIsoConfig =
{ system }:
nixpkgs.lib.nixosSystem {
inherit system;
modules = [
(import (nixpkgs + "/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix"))
(
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
neovim
git
wget
curl
];
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
}
)
];
};
in
{
packages.${system}.default = self.nixosConfigurations.iso.config.system.build.isoImage;
# ISO Defaults
packages.x86_64-linux.iso = self.nixosConfigurations.iso.config.system.build.isoImage;
packages.x86_64-linux.default = self.packages.x86_64-linux.iso;
nixosConfigurations = {
iso = isoConfig;
iso = mkIsoConfig { system = "x86_64-linux"; };
qemu = mkSystem {
hostname = "qemu";
username = "phil";
monitorSetup = "single";
containerization = "none";
};
m920q = mkSystem {
hostname = "m920q";
username = "phil";
monitorSetup = "dual";
containerization = "podman";
};
hp15-n028sg = mkSystem {
hostname = "hp15-n028sg";
username = "phil";
monitorSetup = "single";
containerization = "docker";
};
cloud = mkSystem {
hostname = "cluster.cyperpunk.de";
username = "phil";
monitorSetup = "none";
containerization = "podman";
};
};
};

View File

@@ -1,8 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
kdePackages.dolphin
libsForQt5.kio-extras
kio-fuse
];
}

View File

@@ -1,11 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
krusader
krename
kdiff3
# kdePackages.kompare
xxdiff
];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
progams.spacefm.enable = true;
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
}

View File

@@ -1,48 +0,0 @@
{ pkgs, ... }:
{
programs.alacritty = {
enable = true;
settings = {
# Font
font = {
normal = {
family = "FiraCode Nerd Font Mono"; # Change to your preferred Nerd Font
style = "Regular";
};
bold = {
family = "FiraCode Nerd Font Mono";
style = "Bold";
};
italic = {
family = "FiraCode Nerd Font Mono";
style = "Italic";
};
size = 11;
};
window = {
opacity = 0.6; # Adjust between 0.0 (fully transparent) and 1.0 (opaque)
padding = {
x = 10;
y = 10;
};
decorations = "full"; # none, transparent, full, buttonless
title = "Alacritty";
dynamic_title = true;
};
};
};
fonts = {
fontconfig = {
enable = true;
defaultFonts = {
monospace = [ "FiraCode Nerd Font Mono" ];
};
};
};
home.packages = with pkgs; [
fira-code-nerdfont
];
}

View File

@@ -1,29 +0,0 @@
{ monitorSetup, ... }:
{
imports = [
./kitty.nix # Terminal
./hyprland.nix
./hypridle.nix
./hyprlock.nix
./hyprpaper.nix
./rofi # App Launcher
./mako.nix # Notifyer
./cava.nix # Music Visualizer
];
programs.waybar =
if monitorSetup == "single" then
import ../../home/hyprland/waybar/single.nix
else if monitorSetup == "dual" then
import ../../home/hyprland/waybar/dual.nix
else
{ };
home.file.".config/waybar" = {
source = ./waybar/configs;
# copy the scripts directory recursively
recursive = true;
};
home.file.".config/hypr/hyprland.conf".enable = false;
}

View File

@@ -1,45 +0,0 @@
{ lib, ... }:
{
programs.kitty = lib.mkForce {
enable = true;
settings = {
themeFile = "Catppuccin-Mocha";
confirm_os_window_close = 0;
dynamic_background_opacity = true;
enable_audio_bell = false;
mouse_hide_wait = "-1.0";
window_padding_width = 10;
background_opacity = "0.8";
background_blur = 5;
tab_bar_min_tabs = 1;
tab_bar_edge = "bottom";
tab_bar_style = "powerline";
tab_powerline_style = "slanted";
tab_title_template = "{title}{' :{}:'.format(num_windows) if num_windows > 1 else ''}";
symbol_map =
let
mappings = [
"U+23FB-U+23FE"
"U+2B58"
"U+E200-U+E2A9"
"U+E0A0-U+E0A3"
"U+E0B0-U+E0BF"
"U+E0C0-U+E0C8"
"U+E0CC-U+E0CF"
"U+E0D0-U+E0D2"
"U+E0D4"
"U+E700-U+E7C5"
"U+F000-U+F2E0"
"U+2665"
"U+26A1"
"U+F400-U+F4A8"
"U+F67C"
"U+E000-U+E00A"
"U+F300-U+F313"
"U+E5FA-U+E62B"
];
in
(builtins.concatStringsSep "," mappings) + " Symbols Nerd Font";
};
};
}

View File

@@ -1,16 +0,0 @@
{
pkgs,
...
}:
{
programs.waybar = {
enable = true;
package = pkgs.waybar;
};
home.file.".config/waybar" = {
source = ./configs;
# copy the scripts directory recursively
recursive = true;
};
}

View File

@@ -1,5 +0,0 @@
{ pkgs, ... }:
{
programs.niri.enable = true;
}

View File

@@ -1,58 +0,0 @@
{
lib,
pkgs,
catppuccin-bat,
...
}:
{
home.packages = with pkgs; [
];
programs = {
tmux = {
enable = true;
clock24 = true;
keyMode = "vi";
extraConfig = "mouse on";
};
bat = {
enable = true;
config = {
pager = "less -FR";
theme = "catppuccin-mocha";
};
themes = {
# https://raw.githubusercontent.com/catppuccin/bat/main/Catppuccin-mocha.tmTheme
catppuccin-mocha = {
src = catppuccin-bat;
file = "Catppuccin-mocha.tmTheme";
};
};
};
btop.enable = true; # replacement of htop/nmon
eza.enable = true; # A modern replacement for ls
jq.enable = true; # A lightweight and flexible command-line JSON processor
ssh.enable = true;
aria2.enable = true;
skim = {
enable = true;
enableZshIntegration = true;
defaultCommand = "rg --files --hidden";
changeDirWidgetOptions = [
"--preview 'exa --icons --git --color always -T -L 3 {} | head -200'"
"--exact"
];
};
};
services = {
#syncthing.enable = true;
# auto mount usb drives
udiskie.enable = true;
};
}

View File

@@ -1,8 +0,0 @@
{ pkgs, ... }:
{
# Install sqlitebrowser (DB Browser for SQLite)
home.packages = with pkgs; [
beekeeper-studio
];
}

View File

@@ -1,24 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
# C / C++
clang
#gcc
lua
# Rust
cargo
rustc
# Zig
zig
#python
python314
];
programs.go = {
enable = true;
packages = { };
};
}

View File

@@ -1,11 +0,0 @@
{
imports = [
./git.nix
./neovim
./fstl.nix
./openscad.nix
./sqllite_browser.nix
./compilers.nix
./beekeeper-studio.nix
];
}

View File

@@ -1,8 +0,0 @@
{ pkgs, ... }:
{
# Install fstl
home.packages = with pkgs; [
fstl
];
}

View File

@@ -1,13 +0,0 @@
{
pkgs,
...
}:
{
home.packages = [ pkgs.gh ];
programs.git = {
enable = true;
# ... Other options ...
};
}

View File

@@ -1,8 +0,0 @@
{ pkgs, ... }:
{
# Install OpenSCAD
home.packages = with pkgs; [
openscad
];
}

View File

@@ -1,8 +0,0 @@
{ pkgs, ... }:
{
# Install sqlitebrowser (DB Browser for SQLite)
home.packages = with pkgs; [
sqlitebrowser
];
}

View File

@@ -1,6 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
airshipper
];
}

View File

@@ -1,10 +0,0 @@
{
pkgs,
config,
...
}:
{
home.packages = with pkgs; [
itch
];
}

View File

@@ -1,10 +0,0 @@
{
pkgs,
config,
...
}:
{
home.packages = with pkgs; [
lutris
];
}

View File

@@ -1,14 +0,0 @@
{
pkgs,
config,
...
}:
{
home.packages = with pkgs; [
xonotic
# armagetron
# freeciv
# mindustry
# openra
];
}

View File

@@ -1,18 +0,0 @@
{
pkgs,
config,
...
}:
{
/*
home.packages = with pkgs; [
steam
];
*/
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
localNetworkGameTransfers.openFirewall = true;
};
}

View File

@@ -1,7 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
audacity
yt-dlp
];
}

View File

@@ -1,12 +0,0 @@
{
pkgs,
config,
...
}:
{
home.packages = with pkgs; [
# images
imv
];
}

View File

@@ -1,14 +0,0 @@
{
pkgs,
config,
...
}:
# media - control and enjoy audio/video
{
imports = [
./audio.nix
./image.nix
./webcam.nix
];
}

View File

@@ -1,14 +0,0 @@
{ pkgs, ... }:
{
programs.obs-studio = {
enable = true;
#enableVirtualCamera = true;
plugins = with pkgs.obs-studio-plugins; [
wlrobs
obs-vkcapture
obs-backgroundremoval
obs-pipewire-audio-capture
];
};
}

View File

@@ -1,39 +0,0 @@
{ pkgs, inputs, ... }:
{
imports = [
inputs.spicetify-nix.homeManagerModules.default
];
programs.spicetify =
let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
in
{
enable = true;
spotifyPackage = pkgs.spotify;
theme = spicePkgs.themes.catppuccin;
colorScheme = "mocha";
enabledExtensions = with spicePkgs.extensions; [
bookmark
fullAppDisplay
keyboardShortcut
popupLyrics
shuffle
autoVolume
betterGenres
adblock
wikify
songStats
];
enabledCustomApps = with spicePkgs.apps; [
lyricsPlus
newReleases
marketplace
];
#enabledSnippets = with spicePkgs.snippets; [ ];
};
}

View File

@@ -1,21 +0,0 @@
{ pkgs, ... }:
{
# Install Blender
home.packages = with pkgs; [
blender
];
# Optional: Install specific versions of Blender (e.g., LTS)
# home.packages = with pkgs; [
# blender-bin # Latest stable release
# blender-lts
# ];
# Optional: Install Blender plugins
# home.packages = with pkgs; [
# blender
# blender-addons.io-scene-gltf2 # Example GLTF exporter/importer
# # Add other Blender addons here
# ];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.programs.geary.enable = true;
}

View File

@@ -1,13 +0,0 @@
{ pkgs, ... }:
let
logseq-patch = pkgs.logseq.override {
electron_27 = pkgs.electron_34;
};
in
{
home.packages = with pkgs; [
logseq-patch
logseq
];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [ notesnook ];
}

View File

@@ -1,16 +0,0 @@
{ pkgs, ... }:
{
# Install Obsidian
home.packages = with pkgs; [
obsidian
];
# Optional: You might want to configure Obsidian's data directory.
# By default, Obsidian stores its data in ~/Obsidian.
# You can change this using environment variables, but it's less common to manage this declaratively.
# Example (you might not need this):
# environment.variables = {
# OBSIDIAN_VAULT_PATH = "/path/to/your/vaults";
# };
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.libsForQt5.okular ];
}

View File

@@ -1,8 +0,0 @@
{ pkgs, ... }:
{
# Install OnlyOffice Desktop Editors
home.packages = with pkgs; [
onlyoffice-desktopeditors
];
}

View File

@@ -1,8 +0,0 @@
{ pkgs, ... }:
{
# Install Slic3r
home.packages = with pkgs; [
slic3r
];
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.trilium-desktop ];
}

View File

@@ -1,8 +0,0 @@
{ pkgs, ... }:
{
# Install Element Desktop
home.packages = with pkgs; [
element-desktop
];
}

View File

@@ -1,9 +0,0 @@
{ pkgs, ... }:
{
# Install Teamspeak Desktop
home.packages = with pkgs; [
teamspeak3
# teamspeak6-client
];
}

View File

@@ -1,9 +0,0 @@
{ pkgs, ... }:
{
# Install Telegram Desktop
home.packages = with pkgs; [
telegram-desktop
telegram-cli
];
}

View File

@@ -1,18 +0,0 @@
{ lib, ... }:
{
programs.nixcord = {
enable = true;
discord = lib.mkForce { enable = false; };
vesktop.enable = true;
config = {
useQuickCss = true;
plugins = {
betterFolders.enable = true;
betterRoleContext.enable = true;
mentionAvatars.enable = true;
# Add other plugins as needed
};
};
};
}

View File

@@ -1,8 +0,0 @@
{ pkgs, ... }:
{
# Install Element Desktop
home.packages = with pkgs; [
zapzap
];
}

View File

@@ -1,14 +0,0 @@
{
pkgs,
config,
...
}:
{
programs.chromium = {
enable = true;
commandLineArgs = [ "--enable-features=TouchpadOverscrollHistoryNavigation" ];
extensions = [
# {id = "";} // extension id, query from chrome web store
];
};
}

View File

@@ -1,12 +0,0 @@
{
pkgs,
config,
username,
...
}:
{
programs.firefox = {
enable = false;
profiles.${username} = { };
};
}

View File

@@ -1,9 +0,0 @@
{ pkgs, ... }:
{
imports = [
./qt.nix
# ./gtk.nix
];
}

View File

@@ -1,19 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs.libsForQt5; [
qt5ct
qtstyleplugin-kvantum
];
qt = {
enable = true;
platformTheme.name = "qtct";
style.name = "kvantum";
};
xdg.configFile = {
"Kvantum/ArcDark".source = "${pkgs.arc-kde-theme}/share/Kvantum/ArcDark";
"Kvantum/kvantum.kvconfig".text = "[General]\ntheme=ArcDark";
};
}

View File

@@ -14,11 +14,9 @@
../../modules/localisation.nix
../../modules/openssh.nix
../../modules/pipewire.nix
../../modules/podman.nix
../../modules/services.nix
../../modules/regreet/regreet.nix
../../modules/plymouth.nix
../../modules/file_managers/spacefm.nix
# Include the results of the hardware scan.
./hardware-configuration.nix
];

View File

@@ -52,4 +52,5 @@
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
hardware.nvidia-container-toolkit.enable = true;
}

View File

@@ -1,12 +1,7 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{
pkgs,
lib,
...
}:
{
imports = [
../../modules/system.nix
@@ -17,8 +12,6 @@
../../modules/localisation.nix
../../modules/openssh.nix
../../modules/pipewire.nix
#../../modules/podman.nix
../../modules/docker.nix
../../modules/services.nix
../../modules/regreet/regreet.nix
../../modules/plymouth.nix
@@ -39,11 +32,12 @@
networking = {
hostName = "nix-desktop";
networkmanager.enable = true;
#useDHCP = lib.mkForce true;
#dhcpcd.enable = true;
interfaces = {
eno1.ipv4.addresses = [
networkmanager.enable = false;
useNetworkd = true;
useDHCP = false;
interfaces.eno1 = {
ipv4.addresses = [
{
address = "192.168.2.40";
prefixLength = 24;
@@ -61,14 +55,21 @@
"1.1.1.1"
"8.8.8.8"
];
wireless = {
enable = true;
userControlled.enable = false;
networks = {
"LANFRED".psk = "CooleJungsWG";
};
};
};
systemd.services.systemd-networkd-wait-online.enable = lib.mkForce false;
hardware.graphics.enable = true;
system.stateVersion = "25.11"; # Did you read the comment?
environment.systemPackages = [
pkgs.onlyoffice-bin
];
}

View File

@@ -4,7 +4,6 @@
{
config,
lib,
pkgs,
modulesPath,
...
}:

View File

@@ -14,11 +14,9 @@
../../modules/localisation.nix
../../modules/openssh.nix
../../modules/pipewire.nix
../../modules/podman.nix
../../modules/services.nix
../../modules/regreet/regreet.nix
../../modules/plymouth.nix
../../modules/file_managers/spacefm.nix
# Include the results of the hardware scan.
./hardware-configuration.nix

View File

@@ -0,0 +1,41 @@
{
lib,
pkgs,
containerization ? "none",
...
}:
let
# Import the appropriate containerization module based on the parameter
containerModule =
if containerization == "podman" then
import ./podman.nix
else if containerization == "docker" then
import ./docker.nix
else if containerization == "none" then
{ }
else
throw "Unknown containerization type: ${containerization}. Valid options are: podman, docker, none";
in
{
imports = [ containerModule ];
# Common packages and configuration for all systems
environment.systemPackages = with pkgs; [
# Remove the curly braces {}
dive # docker layer viewer
tailscale # VPN
];
virtualisation.containers.enable = true;
virtualisation.oci-containers.containers = {
/*
container-name = {
image = "image";
autoStart = true;
ports = [ "127.0.0.1:1234:1234" ];
};
*/
};
}

View File

@@ -0,0 +1,18 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
docker-compose
lazydocker # docker tui
];
virtualisation.docker = {
enable = true;
rootless = {
enable = true;
setSocketVariable = true;
};
};
virtualisation.oci-containers.backend = "docker";
}

View File

@@ -0,0 +1,17 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
podman-compose # docker-compose alternative
podman-tui # status of containers in terminal
podman-desktop # Desktop client
];
virtualisation.podman = {
enable = true;
dockerCompat = true;
defaultNetwork.settings.dns_enabled = true;
};
virtualisation.oci-containers.backend = "podman";
}

View File

@@ -1,36 +0,0 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
# Virtualisation
docker-compose # docker-compose alternative
dive # docker layer viewer
tailscale # Vpn
];
# Virtualisation
virtualisation = {
containers.enable = true;
docker = {
enable = true;
rootless = {
enable = true;
setSocketVariable = true;
};
};
oci-containers = {
backend = "docker";
containers = {
/*
container-name = {
image = "image";
autoStart = true;
ports = [ "127.0.0.1:1234:1234" ];
};
*/
};
};
};
}

View File

@@ -1,4 +1,4 @@
{ pkgs, ... }:
{ ... }:
{
# Set your time zone.
time.timeZone = "Europe/Berlin";

View File

@@ -1,36 +0,0 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
# Virtualisation
podman-compose # docker-compose alternative
dive # docker layer viewer
podman-tui # status of containers in terminal
podman-desktop # Desktop client
tailscale # Vpn
];
# Virtualisation
virtualisation = {
containers.enable = true;
podman = {
enable = true;
dockerCompat = true;
defaultNetwork.settings.dns_enabled = true;
};
oci-containers = {
backend = "podman";
containers = {
/*
container-name = {
image = "image";
autoStart = true;
ports = [ "127.0.0.1:1234:1234" ];
};
*/
};
};
};
}

View File

@@ -3,10 +3,21 @@
environment.systemPackages = with pkgs; [
qemu
quickemu
quickgui
nemu
];
systemd.tmpfiles.rules = [ "L+ /var/lib/qemu/firmware - - - - ${pkgs.qemu}/share/qemu/firmware" ];
boot.binfmt.emulatedSystems = [
"aarch64-linux"
"riscv64-linux"
];
virtualisation.libvirtd.enable = true;
environment.etc."qemu/bridge.conf".text = ''
allow br0
'';
}

View File

@@ -1,6 +1,4 @@
{
pkgs,
username,
lib,
...
}:
@@ -17,9 +15,7 @@
};
*/
services.displayManager = {
sessionPackages = [ pkgs.hyprland ];
};
environment.variables.QT_QPA_PLATFORMTHEME = "qt6ct";
environment.etc = {
"greetd/background.png".source = ../../wallpapers/lucy_with_cat.png;
@@ -27,6 +23,23 @@
hyprland
fish
'';
"greetd/wayland-sessions/hyprland.desktop".text = ''
[Desktop Entry]
Name=Hyprland
Comment=Hyprland WM
Exec=Hyprland
Type=Application
'';
/*
"greetd/wayland-sessions/niri.desktop".text = ''
[Desktop Entry]
Name=Niri
Comment=Hyprland WM
Exec=niri
Type=Application
'';
*/
};
programs.regreet = {
@@ -47,7 +60,7 @@
GTK = {
application_prefer_dark_theme = true;
cursor_theme_name = "Adwaita";
font_name = lib.mkForce "FiraCodeNerdFontPropo 12";
font_name = lib.mkForce "FiraCodeNerdFontProto 12";
icon_theme_name = lib.mkForce "materialdesignicons";
theme_name = "Adwaita";
};

View File

@@ -20,5 +20,6 @@
HandleHibernateKey=ignore
'';
flatpak.enable = true;
};
}

View File

@@ -1,7 +1,7 @@
{
pkgs,
lib,
username,
lib,
...
}:
{
@@ -18,6 +18,25 @@
];
};
xdg = {
portal = {
enable = true;
xdgOpenUsePortal = true;
config = {
common.default = [ "gtk" ];
hyprland.default = [
"gtk"
"hyprland"
];
};
extraPortals = [
pkgs.xdg-desktop-portal-gtk
pkgs.xdg-desktop-portal-hyprland
];
};
};
programs.steam.enable = true;
programs.dconf.enable = true;
@@ -25,20 +44,26 @@
# $ nix search wget
environment.systemPackages = with pkgs; [
# Bare minimum
vim
neovim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
wget
git
cmatrix
tdf
figlet
tty-clock
lolcat
# System tools
sysstat
lm_sensors # for `sensors` command
ethtool
pciutils # lspci
pciutils # lspci:wwith
usbutils # lsusb
lshw
nvme-cli
smartmontools
bluez
impala
# Graphics
libGL
@@ -49,7 +74,6 @@
cpufetch
hyfetch
ramfetch
neofetch
ghfetch
libnotify
@@ -63,6 +87,9 @@
iftop # network monitor
iperf3 # network tester
nmap # network discovery
rustscan
rustup
perl
eza # ls replacement
curl
dnsutils
@@ -76,11 +103,13 @@
zstd
gnupg
fzf
tabiew
# nix related
nix-index
nix-tree
nix-health
direnv
# Archives
zip
@@ -88,12 +117,13 @@
p7zip
xz
postman
#teamspeak6-client
];
security.pam.services.swaylock = { };
security.polkit.enable = true;
security.rtkit.enable = true;
environment.sessionVariables = {
NIXOS_OZONE_WL = "1";
};
programs.ssh.startAgent = true;
}

View File

@@ -1,4 +1,4 @@
{ pkgs, ... }:
{ ... }:
{
programs.thunderbird.enable = true;
}

10
overlays/default.nix Normal file
View File

@@ -0,0 +1,10 @@
let
dir = ./.;
files = builtins.filter (f: f != "default.nix") (builtins.attrNames (builtins.readDir dir));
in
builtins.listToAttrs (
map (f: {
name = f;
value = import "${dir}/${f}";
}) files
)

52
overlays/tabiew.nix Normal file
View File

@@ -0,0 +1,52 @@
# overlays/tabiew.nix
self: super:
let
# Try to use rust-bin if available, otherwise fall back to latest from nixpkgs-mozilla
rustToolchain =
if super ? rust-bin then
super.rust-bin.nightly.latest.default
else
super.latest.rustChannels.nightly.rust;
rustPlatform = super.makeRustPlatform {
cargo = rustToolchain;
rustc = rustToolchain;
};
in
{
tabiew = rustPlatform.buildRustPackage rec {
pname = "tabiew";
version = "0.11.1";
src = super.fetchFromGitHub {
owner = "shshemi";
repo = "tabiew";
rev = "v${version}";
sha256 = "sha256-RvbHXnDaoqMHjA9u9kFs5MB6xeQG/E35PEu+1LIXIBU=";
};
cargoLock = {
lockFile = "${src}/Cargo.lock";
};
# Build dependencies needed for openssl-sys
nativeBuildInputs = with super; [
pkg-config
perl
];
# Runtime dependencies
buildInputs = with super; [
openssl
];
# Disable cargo-auditable as it doesn't support edition2024 yet
auditable = false;
meta = with super.lib; {
description = "A simple CSV viewer";
homepage = "https://github.com/shshemi/tabiew";
license = licenses.mit;
};
};
}

View File

@@ -1,6 +1,5 @@
{
pkgs,
config,
...
}:
{

View File

@@ -1,6 +1,4 @@
{
pkgs,
config,
username,
...
}:

View File

@@ -0,0 +1,112 @@
{ lib, ... }:
{
programs.kitty = lib.mkForce {
enable = true;
settings = {
themeFile = "Catppuccin-Mocha";
confirm_os_window_close = 0;
dynamic_background_opacity = true;
enable_audio_bell = false;
mouse_hide_wait = "-1.0";
window_padding_width = 10;
background_opacity = "0.8";
background_blur = 5;
tab_bar_min_tabs = 1;
tab_bar_edge = "bottom";
tab_bar_style = "powerline";
tab_powerline_style = "slanted";
tab_title_template = "{title}{' :{}:'.format(num_windows) if num_windows > 1 else ''}";
symbol_map =
let
mappings = [
"U+23FB-U+23FE"
"U+2B58"
"U+E200-U+E2A9"
"U+E0A0-U+E0A3"
"U+E0B0-U+E0BF"
"U+E0C0-U+E0C8"
"U+E0CC-U+E0CF"
"U+E0D0-U+E0D2"
"U+E0D4"
"U+E700-U+E7C5"
"U+F000-U+F2E0"
"U+2665"
"U+26A1"
"U+F400-U+F4A8"
"U+F67C"
"U+E000-U+E00A"
"U+F300-U+F313"
"U+E5FA-U+E62B"
];
in
(builtins.concatStringsSep "," mappings) + " Symbols Nerd Font";
};
};
programs.starship = {
enable = true;
settings = {
add_newline = true;
command_timeout = 500;
format = "$username$hostname $directory $git_branch$git_status\n$character ";
right_format = "$cmd_duration";
username = {
style_user = "bold #cba6f7";
style_root = "bold #f38ba8";
format = "[](bold #a6e3a1)[$user]($style)";
show_always = true;
};
hostname = {
style = "bold #74c7ec";
format = "[@](bold #fab387)[$hostname]($style)";
ssh_only = false;
};
directory = {
style = "bold #a6e3a1";
truncation_length = 0;
truncation_symbol = "";
format = "[ ](bold #f38ba8)[$path]($style)";
};
git_branch = {
format = "[$branch]($style)";
style = "bold #f9e2af";
};
# Git status module settings
git_status = {
format = "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](red) ($ahead_behind$stashed)]($style)";
style = "bold #a6e3a1";
conflicted = "";
untracked = "";
modified = "";
staged = "";
renamed = "";
deleted = "";
};
# Command duration module
cmd_duration = {
format = "[$duration]($style)";
style = "bold #cdd6f4";
min_time = 5000; # Only show if command takes longer than 5 seconds
};
# Character module (prompt symbol)
character = {
success_symbol = "[ ](bold #a6e3a1)";
error_symbol = "[ ](bold #f38ba8)";
};
nix_shell = {
format = "[$symbol$state( \($name\))]($style)";
symbol = "U+02744";
style = "bold #89dceb";
};
};
};
}

View File

@@ -54,7 +54,6 @@ require("mason-lspconfig").setup({
"nil_ls",
"rust_analyzer",
"pylsp",
"stylelint-lsp",
},
automatic_installation = true,
})
@@ -107,9 +106,9 @@ lspconfig.nil_ls.setup({ capabilities = capabilities })
lspconfig.rust_analyzer.setup({ capabilities = capabilities })
lspconfig.pylsp.setup({ capabilities = capabilities })
lspconfig.stylelint_lsp.setup({
cmd = { "stylelint-lsp", "--stdio" },
filetypes = { "css", "scss", "rasi" },
capabilities = vim.lsp.protocol.make_client_capabilities(),
cmd = { "stylelint-lsp", "--stdio" },
filetypes = { "css", "scss", "rasi" },
capabilities = vim.lsp.protocol.make_client_capabilities(),
})
-- Conform

View File

@@ -25,7 +25,15 @@
alpha-nvim
cheatsheet-nvim
toggleterm-nvim
avante-nvim # AI Stuff
# AI Stuff
avante-nvim
plenary-nvim
nui-nvim
dressing-nvim
nvim-web-devicons
img-clip-nvim
render-markdown-nvim
# Add conform.nvim as a custom plugin
(pkgs.vimUtils.buildVimPlugin {
@@ -68,5 +76,11 @@
nil
rust-analyzer
python3Packages.python-lsp-server
# Avante
curl
cargo
clang
zig
rustc
];
}

View File

@@ -0,0 +1,331 @@
{ pkgs, ... }:
{
programs.nixvim = {
enable = true;
defaultEditor = true;
viAlias = true;
vimAlias = true;
# ===================
# Basic Options
# ===================
options = {
number = true;
cursorline = true;
showmode = false;
syntax = "enable";
hlsearch = true;
incsearch = true;
tabstop = 4;
termguicolors = true;
};
globals.mapleader = " ";
keymaps = [
# Clipboard
{
mode = "n";
key = "y";
action = "\"+y";
options.desc = "Yank to clipboard";
}
{
mode = "v";
key = "y";
action = "\"+y";
options.desc = "Yank to clipboard";
}
{
mode = "n";
key = "Y";
action = "\"+Y";
options.desc = "Yank line to clipboard";
}
{
mode = "n";
key = "d";
action = "\"+d";
options.desc = "Delete to clipboard";
}
{
mode = "v";
key = "d";
action = "\"+d";
options.desc = "Delete to clipboard";
}
{
mode = "n";
key = "D";
action = "\"+D";
options.desc = "Delete line to clipboard";
}
{
mode = "n";
key = "p";
action = "\"+p";
options.desc = "Paste from clipboard";
}
{
mode = "v";
key = "p";
action = "\"+p";
options.desc = "Paste from clipboard";
}
];
# ===================
# Plugins
# ===================
plugins = {
# Treesitter
treesitter = {
enable = true;
ensureInstalled = [
"lua"
"nix"
"python"
"javascript"
"rust"
"rasi"
];
};
# Lint
lint.enable = true;
# Mason + LSP
mason.enable = true;
mason-lspconfig = {
enable = true;
ensureInstalled = [
"lua_ls"
"nil_ls"
"rust_analyzer"
"pylsp"
"stylelint_lsp"
];
};
lsp = {
enable = true;
servers = {
lua_ls.settings.Lua = {
runtime.version = "LuaJIT";
diagnostics.globals = [ "vim" ];
telemetry.enable = false;
};
nil_ls.enable = true;
rust_analyzer.enable = true;
pylsp.enable = true;
stylelint_lsp = {
enable = true;
filetypes = [
"css"
"scss"
"rasi"
];
cmd = [
"stylelint-lsp"
"--stdio"
];
};
};
keymaps.lspBuf = {
gd = "definition";
K = "hover";
"<leader>rn" = "rename";
"<leader>ca" = "code_action";
};
};
# Completion
cmp = {
enable = true;
sources = [
{ name = "nvim_lsp"; }
{ name = "luasnip"; }
{ name = "avante_commands"; }
{ name = "avante_mentions"; }
{ name = "buffer"; }
{ name = "path"; }
];
};
luasnip.enable = true;
# Conform
conform-nvim = {
enable = true;
formattersByFt = {
lua = [ "stylua" ];
nix = [ "nixfmt" ];
python = [ "black" ];
rust = [ "rustfmt" ];
rasi = [ "prettierd" ];
};
formatOnSave = {
timeoutMs = 500;
lspFallback = true;
};
};
# Telescope
telescope = {
enable = true;
keymaps = {
"<leader>ff" = "find_files";
"<leader>fg" = "live_grep";
"<leader>fb" = "buffers";
"<leader>fh" = "help_tags";
};
};
# Toggleterm
toggleterm = {
enable = true;
settings = {
size = 20;
direction = "float";
float_opts = {
border = "single";
width = 200;
height = 40;
};
};
};
# Statusline
lualine = {
enable = true;
settings.options = {
theme = "catppuccin";
component_separators = {
left = "|";
right = "|";
};
section_separators = {
left = "";
right = "";
};
};
};
# Dashboard (alpha)
alpha = {
enable = true;
theme = "dashboard";
layout.dashboard = {
section.header.val = [
"⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣯⣿⠿⣟⣷⣯⣛⢿⣿⣿⣾⣟⣿⣿⣿⣿⣿⣿⣿⣿⣿"
"⣿⣿⣿⣿⣿⣿⣿⡿⣵⣿⡿⣴⣽⡟⣳⢿⢽⣽⣕⣽⢿⡿⣿⣟⣿⣿⣿⣿⣿⣿⣿"
"⣿⣿⣿⣷⣿⣿⢟⣫⣿⢟⢟⣾⣾⣿⣿⣞⢳⣻⢞⣎⠿⢞⣊⣿⣞⣿⣿⣿⣿⣿⢽"
"⣿⣿⣿⣿⣿⣏⢯⣿⣏⣏⠔⢇⣿⢢⢆⢀⢆⣧⣼⢻⢰⡧⢻⣝⣏⡸⣧⣾⣿⣿⣿"
"⣿⣿⣿⣿⡟⣻⣿⣿⡾⡿⡼⢸⡝⣝⡳⢢⣧⢳⣳⢷⡇⣗⢺⡺⣿⡧⣿⣿⣿⢿⢿"
"⣿⡿⣿⣼⡼⣿⣿⡗⡧⣧⠁⡝⣧⣳⠅⡾⠈⣎⢮⣧⣿⣿⣗⣷⣻⢷⣏⣼⢏⣺⣿"
"⣿⣿⣿⣻⣿⣿⣿⢧⣿⢹⠉⢷⢿⣧⣲⡏⡀⡈⢆⠳⣿⡿⢿⣿⣱⢿⢫⣷⣝⣿⣿"
"⣿⣿⣿⡯⡟⣿⣿⢽⣡⠟⢿⣮⠁⠙⠛⠈⡴⢿⣿⡷⣬⣽⢽⠧⣷⡏⣿⡇⣧⣽⣿"
"⣿⠟⢻⡧⡇⣿⡇⣇⣆⢄⡜⢃⡀⡀⡀⡀⡀⢎⣁⠁⣸⣗⣸⣿⣧⣼⡿⢹⢿⢾⣿"
"⣿⣷⣾⣿⢻⣿⢧⢻⣽⡀⡀⡀⡀⢄⡀⡀⡀⡀⡀⢀⣷⡸⡟⣿⣶⣻⣧⡛⡱⢝⣿"
"⣿⣿⣿⣿⢸⡿⢚⡜⣿⣇⡀⡀⡀⡀⡀⡀⡀⡀⠚⢁⢣⣜⡿⣿⡇⢼⣿⠨⣸⣿⣿"
"⣿⣄⣿⣗⢾⢻⣧⢿⣾⣿⣦⡀⡀⠑⠚⠉⡀⡀⣤⣿⢨⣿⠗⣻⢣⣿⢹⢈⣽⣿⣿"
"⣿⣿⣿⣿⢎⡄⢿⣞⡇⣿⠹⣿⣶⣀⡀⣀⡴⡩⢸⢏⣿⣿⣶⢻⣾⢏⡞⠡⢽⣇⣾"
"⣿⣿⣿⣮⣼⢬⣦⢿⣳⣌⠧⡉⠈⣇⣛⣁⣈⣼⣿⡸⠫⠛⠐⠛⠕⣙⣻⣬⣼⣿⣿"
"⢟⢿⣿⣿⣿⡢⣃⣪⣭⣡⣤⣶⠟⡿⠿⠿⠿⠛⢁⣿⣿⢩⠉⡀⠈⠓⡝⣿⣿⣿⣿"
"⣾⣿⣿⣿⣿⠞⢔⡣⡴⣾⣿⠓⣤⢧⡼⣉⠠⢤⣿⣿⠇⠃⡀⡀⡀⡀⡸⢿⣾⣿⣿"
"⣿⣿⣿⡿⣺⡸⢗⢠⣇⣿⣿⠊⠃⡀⠉⡀⢠⣿⣿⠟⡸⡀⡀⡀⡀⡀⣃⣬⠽⠿⣿"
"⣿⣿⣿⣿⡇⡏⢸⣿⠟⣽⡇⡀⡀⡀⡀⣴⣟⢭⣾⣿⡇⠎⣠⠒⠉⠈⢀⡀⢨⡋⣿"
"⠛⠛⠛⠋⠃⠓⠚⠛⠘⠛⠃⡀⠊⡀⠛⠛⠛⠂⠛⠛⠓⠁⠚⡀⠂⠒⠒⠐⠒⠋⠛"
];
section.buttons.val = [
{
shortcut = "e";
text = "[+] New file";
command = ":ene <BAR> startinsert <CR>";
}
{
shortcut = "f";
text = "[?] Find file";
command = ":Telescope find_files <CR>";
}
{
shortcut = "r";
text = "[~] Recent files";
command = ":Telescope oldfiles <CR>";
}
{
shortcut = "y";
text = "[Y] Yazi";
command = ":Yazi<CR>";
}
{
shortcut = "m";
text = "[M] Mason";
command = ":Mason<CR>";
}
{
shortcut = "q";
text = "[X] Quit";
command = ":qa<CR>";
}
];
section.footer.val = "Circuits hum in anticipation of your will.";
};
};
# Colorscheme
catppuccin = {
enable = true;
flavour = "mocha";
transparentBackground = true;
integrations = {
treesitter = true;
mason = true;
cmp = true;
telescope = true;
toggleterm = true;
};
};
};
# ===================
# Plugins not in nixvim
# ===================
extraPlugins = with pkgs.vimPlugins; [
yazi-nvim
cheatsheet-nvim
avante-nvim
plenary-nvim
nui-nvim
dressing-nvim
nvim-web-devicons
img-clip-nvim
render-markdown-nvim
(pkgs.vimUtils.buildVimPlugin {
name = "conform-nvim";
src = pkgs.fetchFromGitHub {
owner = "stevearc";
repo = "conform.nvim";
rev = "stable";
sha256 = "sha256-pUF9F5QoDzCZuVRcJEF91M8Qjkh/xosMkf9tRavkmJs=";
};
})
];
};
home.packages = with pkgs; [
nixfmt-rfc-style
stylua
black
nodePackages.prettier
rustfmt
nodejs
prettierd
stylelint-lsp
lua-language-server
nil
rust-analyzer
python3Packages.python-lsp-server
curl
cargo
];
}

View File

@@ -1,4 +1,4 @@
{ pkgs, ... }:
{ ... }:
{
services.mako = {
enable = true;
@@ -10,6 +10,9 @@
extraConfig = ''
[app-name=Spotify]
border-color=#a6e3a1
[app-name=Thunderbird]
border-color=#94e2d5
'';
};

View File

@@ -0,0 +1,110 @@
{ ... }:
{
services.swaync = {
enable = true;
settings = {
positionX = "center";
positionY = "center";
layer = "overlay";
control-center-layer = "top";
layer-shell = true;
cssPriority = "user";
control-center-margin-top = 100;
control-center-margin-bottom = 200;
control-center-margin-right = 0;
control-center-margin-left = 0;
notification-2fa-action = true;
notification-inline-replies = false;
notification-icon-size = 64;
notification-body-image-height = 100;
notification-body-image-width = 200;
widgets = [
"mpris"
"volume"
"inhibitors"
"title"
"dnd"
"notifications"
];
widget-config = {
mpris = {
blacklist = [ ];
autohide = false;
show-album-art = "always";
loop-carousel = false;
image-size = 96;
image-radius = 12;
};
volume = {
label = "gain";
show-per-app = false;
empty-list-label = "Nothin' is playin'";
expand-button-label = "";
collaps-button-label = "";
};
title = {
text = "Hollerin'";
clear-all-button = true;
button-text = "Sheriff's Pardon";
};
dnd = {
text = "Let'er rest";
};
menubar = {
"menu#power" = {
label = "Power";
position = "right";
animation-type = "slide_down";
animation-duration = 250;
actions = [
{
label = "Bolt It";
command = "hyprlock";
}
{
label = "Ride Out";
command = "hyprctl dispatch exit";
}
{
label = "Circle Back";
command = "systemctl reboot";
}
{
label = "Bet Down the Horses";
command = "systemctl poweroff";
}
];
};
"buttons#media" = {
position = "left";
actions = [
{
label = "Play/Pause";
command = "playerctl play-pause";
}
{
label = "Next";
command = "playerctl next";
}
{
label = "Previous";
command = "playerctl previous";
}
];
};
};
notifications = {
vexpand = true;
};
};
};
};
}

View File

Before

Width:  |  Height:  |  Size: 9.2 MiB

After

Width:  |  Height:  |  Size: 9.2 MiB

View File

Before

Width:  |  Height:  |  Size: 447 KiB

After

Width:  |  Height:  |  Size: 447 KiB

View File

@@ -28,7 +28,7 @@
}
configuration {
font: "Icomoon-Feather 12";
font: "Fira Code Bold 20px";
show-icons: true;
}
@@ -85,11 +85,11 @@ dummy {
textbox-prompt-colon {
enabled: true;
expand: false;
str: " System";
str: " System";
padding: 15px;
border: 0px 0px 0px 10px;
border-radius: 100% 100% 0px 100%;
border-color: @peach;
border-color: @blue;
background-color: @crust;
text-color: @text;
}
@@ -117,7 +117,7 @@ listview {
fixed-columns: true;
spacing: 30px;
margin: 30px;
margin: 10px;
background-color: transparent;
cursor: "default";
}
@@ -125,11 +125,12 @@ listview {
/*****----- Elements -----*****/
element {
enabled: true;
padding: 35px 10px;
border-radius: 5%;
padding: 10px;
border-radius: 1%;
background-color: @crust;
text-color: @text;
cursor: pointer;
children: [ element-text ];
}
element-text {
background-color: transparent;
@@ -140,7 +141,7 @@ element-text {
}
element selected.normal {
background-color: @crust;
text-color: @sapphire;
text-color: @yellow;
}
/*****----- Message -----*****/

View File

@@ -1,5 +1,4 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
hyprpaper
@@ -13,10 +12,14 @@
};
# Hyprpaper configuration
services.hyprpaper.enable = true;
services.hyprpaper.settings = {
preload = "Pictures/Wallpapers/tokio.png";
wallpaper = ", Pictures/Wallpapers/tokio.png";
services.hyprpaper = {
enable = true;
settings = {
preload = [
"Pictures/Wallpapers/tokio.png"
];
wallpaper = ", Pictures/Wallpapers/tokio.png";
};
};
}

View File

@@ -0,0 +1,11 @@
{ pkgs, ... }:
{
home.file = {
"Pictures/Wallpapers" = {
source = ../../../../wallpapers;
recursive = true;
};
};
home.packages = with pkgs; [ swww ];
}

View File

@@ -0,0 +1,26 @@
{ ... }:
{
home.file = {
"Pictures/Wallpapers" = {
source = ../../wallpapers;
recursive = true;
};
};
services.wpaperd = {
enable = true;
settings = {
default = {
duration = "30m";
mode = "center";
sorting = "ascending";
};
any = {
path = "/home/phil/Pictures/Wallpapers/girl.png";
};
};
};
}

View File

@@ -152,6 +152,34 @@
interval = 60;
tooltip = false;
};
"custom/weather-side" = {
format = "{}";
exec = "curl -s 'wttr.in/52.281311,10.527029?format=1'";
interval = 60;
tooltip = false;
};
"custom/notification" = {
tooltip = false;
format = "{icon}";
format-icons = {
notification = "<span foreground='red'><sup></sup></span>";
none = " ";
dnd-notification = "<span foreground='red'><sup></sup></span>";
dnd-none = " ";
inhibited-notification = "<span foreground='red'><sup></sup></span>";
inhibited-none = " ";
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
dnd-inhibited-none = " ";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "swaync-client -t -sw";
on-click-right = "swaync-client -d -sw";
escape = true;
};
};
}

View File

@@ -0,0 +1,17 @@
@import "mocha.css";
/* -- Global rules -- */
* {
border: none;
font-family: "JetbrainsMono Nerd Font";
font-size: 15px;
min-height: 10px;
}
window#waybar {
background: @crust;
}
window#waybar.hidden {
opacity: 0.2;
}

View File

@@ -126,6 +126,7 @@ window#waybar.hidden {
background: @overlay2;
border-radius: 10px;
margin: 5px;
color: @crust;
}
#custom-cava {
@@ -145,7 +146,17 @@ window#waybar.hidden {
/* Weather */
#custom-weather {
background: @overlay2;
color: @crust;
border-radius: 10px;
margin: 5px 20px;
padding: 0px 10px;
}
/* SwayNC */
#custom-notification {
font-family: "NotoSansMono Nerd Font";
background: @green;
border-radius: 10px;
padding-left: 10px;
padding-right: 5px;
}

View File

@@ -0,0 +1,32 @@
{
pkgs,
monitorSetup,
...
}:
{
programs.waybar =
{
enable = true;
package = pkgs.waybar;
}
// (
if monitorSetup == "single" then
import ./single.nix
else if monitorSetup == "dual" then
import ./dual.nix
else if monitorSetup == "side" then
import ./side.nix
else
{ }
);
home.file.".config/waybar/cava.sh".source = ./configs/cava.sh;
home.file.".config/waybar/mocha.css".source = ./configs/mocha.css;
home.file.".config/waybar" = {
source = ./configs;
# copy the scripts directory recursively
recursive = true;
};
}

View File

@@ -1,6 +1,6 @@
let
common = import ./common.nix;
hyprland = import ./hyprland.nix;
wm = import ./wm.nix;
in
{
enable = true;
@@ -17,13 +17,15 @@ in
];
modules-center = [
"hyprland/workspaces"
"niri/workspaces"
"custom/notification"
];
modules-right = [
"group/hardware"
];
}
// common.widgets
// hyprland.widgets;
// wm.widgets;
secondBar =
{
@@ -32,11 +34,14 @@ in
height = 30;
output = [ "HDMI-A-2" ];
modules-left = [ "group/media" ];
modules-center = [ "hyprland/workspaces" ];
modules-center = [
"hyprland/workspaces"
"niri/workspaces"
];
modules-right = [ "custom/weather" ];
}
// common.widgets
// hyprland.widgets;
// wm.widgets;
};
}

Some files were not shown because too many files have changed in this diff Show More