nixos-refactor: Consolidate, cleanup, clarify #25

Merged
Jafner merged 9 commits from nixos-refactor into main 2025-01-08 21:31:10 -08:00
135 changed files with 21055 additions and 4883 deletions

View File

Before

Width:  |  Height:  |  Size: 2.0 MiB

After

Width:  |  Height:  |  Size: 2.0 MiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

201
dotfiles/flake.lock generated
View File

@ -20,11 +20,11 @@
]
},
"locked": {
"lastModified": 1734906446,
"narHash": "sha256-6OWluVE2A8xi+8V3jN9KA72RCgJjYdyyuLBUjxZ2q2U=",
"lastModified": 1736102453,
"narHash": "sha256-5qb4kb7Xbt8jJFL/oDqOor9Z2+E+A+ql3PiyDvsfWZ0=",
"owner": "hyprwm",
"repo": "aquamarine",
"rev": "eecb74dc79bb6752a2a507e6edee3042390a6091",
"rev": "4846091641f3be0ad7542086d52769bb7932bde6",
"type": "github"
},
"original": {
@ -119,6 +119,22 @@
"type": "github"
}
},
"firefox-gnome-theme": {
"flake": false,
"locked": {
"lastModified": 1734969791,
"narHash": "sha256-A9PxLienMYJ/WUvqFie9qXrNC2MeRRYw7TG/q7DRjZg=",
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"rev": "92f4890bd150fc9d97b61b3583680c0524a8cafe",
"type": "github"
},
"original": {
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
@ -261,11 +277,11 @@
"zig": "zig"
},
"locked": {
"lastModified": 1735861317,
"narHash": "sha256-XpFTJoY+0nsVdIQZmJt3SMgQkYr8KI5DFQ4b5cf3LM4=",
"lastModified": 1736372994,
"narHash": "sha256-iCb3+KniUL0Ic1AUkaM3CpO2UGNW6CQSigVzuVUQ8T0=",
"owner": "ghostty-org",
"repo": "ghostty",
"rev": "b65c26966a73b0a2142d69c69c4e486c1e3f38f9",
"rev": "eb40cce45e6593a4065a32681d27c75c4ca3a9c9",
"type": "github"
},
"original": {
@ -274,6 +290,37 @@
"type": "github"
}
},
"git-hooks": {
"inputs": {
"flake-compat": [
"stylix",
"flake-compat"
],
"gitignore": "gitignore_2",
"nixpkgs": [
"stylix",
"nixpkgs"
],
"nixpkgs-stable": [
"stylix",
"git-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1731363552,
"narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
@ -296,6 +343,28 @@
"type": "github"
}
},
"gitignore_2": {
"inputs": {
"nixpkgs": [
"stylix",
"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"
}
},
"gnome-shell": {
"flake": false,
"locked": {
@ -320,11 +389,11 @@
]
},
"locked": {
"lastModified": 1735344290,
"narHash": "sha256-oJDtWPH1oJT34RJK1FSWjwX4qcGOBRkcNQPD0EbSfNM=",
"lastModified": 1736373539,
"narHash": "sha256-dinzAqCjenWDxuy+MqUQq0I4zUSfaCvN9rzuCmgMZJY=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "613691f285dad87694c2ba1c9e6298d04736292d",
"rev": "bd65bc3cde04c16755955630b344bc9e35272c56",
"type": "github"
},
"original": {
@ -342,15 +411,16 @@
]
},
"locked": {
"lastModified": 1733085484,
"narHash": "sha256-dVmNuUajnU18oHzBQWZm1BQtANCHaqNuxTHZQ+GN0r8=",
"lastModified": 1733572789,
"narHash": "sha256-zjO6m5BqxXIyjrnUziAzk4+T4VleqjstNudSqWcpsHI=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "c1fee8d4a60b89cae12b288ba9dbc608ff298163",
"rev": "c7ffc9727d115e433fd884a62dc164b587ff651d",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-24.11",
"repo": "home-manager",
"type": "github"
}
@ -400,11 +470,11 @@
]
},
"locked": {
"lastModified": 1734906236,
"narHash": "sha256-vH/ysV2ONGQgYZPtcJKwc8jJivzyVxru2aaOxC20ZOE=",
"lastModified": 1736115290,
"narHash": "sha256-Jcn6yAzfUMcxy3tN/iZRbi/QgrYm7XLyVRl9g/nbUl4=",
"owner": "hyprwm",
"repo": "hyprgraphics",
"rev": "6dea3fba08fd704dd624b6d4b261638fb4003c9c",
"rev": "52202272d89da32a9f866c0d10305a5e3d954c50",
"type": "github"
},
"original": {
@ -431,11 +501,11 @@
"xdph": "xdph"
},
"locked": {
"lastModified": 1735851503,
"narHash": "sha256-r5FFHhiZZOOlzWsS06oz+7MKpjJydDXsD9N2NcKFSjE=",
"lastModified": 1736370994,
"narHash": "sha256-0rt/+Ma9a3HMmvxziMMmUTb5dPu4gN+lSbW+K/zxG6o=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "f3c49c1295126c2154ee800ceedb48b79451840c",
"rev": "c9822b08f914da2997e8ef47c8bef8016e5ff313",
"type": "github"
},
"original": {
@ -456,11 +526,11 @@
]
},
"locked": {
"lastModified": 1735734474,
"narHash": "sha256-9OV4lOqrEJVLdOrpNN/9msNwAhI6FQTu4N7fufilG08=",
"lastModified": 1735774328,
"narHash": "sha256-vIRwLS9w+N99EU1aJ+XNOU6mJTxrUBa31i1r82l0V7s=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "271df559dd30e4bc5ec6af02d017ac0aaabd63a7",
"rev": "e3b6af97ddcfaafbda8e2828c719a5af84f662cb",
"type": "github"
},
"original": {
@ -485,11 +555,11 @@
]
},
"locked": {
"lastModified": 1734906472,
"narHash": "sha256-pWPRv/GA/X/iAwoE6gMNUqn/ZeJX1IeLPRpZI0tTPK0=",
"lastModified": 1736114838,
"narHash": "sha256-FxbuGQExtN37ToWYnGmO6weOYN6WPHN/RAqbr7gNPek=",
"owner": "hyprwm",
"repo": "hyprland-qtutils",
"rev": "c77109d7e1ddbcdb87cafd32ce411f76328ae152",
"rev": "6997fe382dcf396704227d2b98ffdd5066da6959",
"type": "github"
},
"original": {
@ -514,11 +584,11 @@
]
},
"locked": {
"lastModified": 1734906259,
"narHash": "sha256-P79t/7HbACO4/PuJBroGpTptvCWJtXTv+gWsF+sM6MI=",
"lastModified": 1735393019,
"narHash": "sha256-NPpqA8rtmDLsEmZOmz+qR67zsB6Y503Jnv+nSFLKJZ8=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "0404833ea18d543df44df935ebf1b497310eb046",
"rev": "55608efdaa387af7bfdc0eddb404c409958efa43",
"type": "github"
},
"original": {
@ -539,11 +609,11 @@
]
},
"locked": {
"lastModified": 1735316583,
"narHash": "sha256-AiiUwHWHfEdpFzXy7l1x3zInCUa1xcRMrbZ1XRSkzwU=",
"lastModified": 1736164519,
"narHash": "sha256-1LimBKvDpBbeX+qW7T240WEyw+DBVpDotZB4JYm8Aps=",
"owner": "hyprwm",
"repo": "hyprutils",
"rev": "8f15d45b120b33712f6db477fe5ffb18034d0ea8",
"rev": "3c895da64b0eb19870142196fa48c07090b441c4",
"type": "github"
},
"original": {
@ -564,11 +634,11 @@
]
},
"locked": {
"lastModified": 1734793513,
"narHash": "sha256-rrrHcXapXJvGFqX+L/Bb0182L25jofAZ0fm1FInvrTQ=",
"lastModified": 1735493474,
"narHash": "sha256-fktzv4NaqKm94VAkAoVqO/nqQlw+X0/tJJNAeCSfzK4=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"rev": "4d7367b6eee87397e2dbca2e78078dd0a4ef4c61",
"rev": "de913476b59ee88685fdc018e77b8f6637a2ae0b",
"type": "github"
},
"original": {
@ -579,11 +649,11 @@
},
"nix-flatpak": {
"locked": {
"lastModified": 1735500379,
"narHash": "sha256-5qmX6YYjYfVYBbsmd2XxbTi7A59YuuN9IwfXU7qFquQ=",
"lastModified": 1736334301,
"narHash": "sha256-370z+WLVnD7LrN/SvTCZxPl/XPTshS5NS2dHN4iyK6o=",
"owner": "gmodena",
"repo": "nix-flatpak",
"rev": "c31b6cbd11707fe2c74ad805ef085d59d75116ae",
"rev": "5f4ec93d432cd5288f6fe20d8842dceb5a065885",
"type": "github"
},
"original": {
@ -643,22 +713,6 @@
"type": "github"
}
},
"nixpkgs-stable_2": {
"locked": {
"lastModified": 1730741070,
"narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d063c1dd113c91ab27959ba540c0d9753409edf3",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1733229606,
@ -677,11 +731,11 @@
},
"nixpkgs-unstable_2": {
"locked": {
"lastModified": 1735471104,
"narHash": "sha256-0q9NGQySwDQc7RhAV2ukfnu7Gxa5/ybJ2ANT8DQrQrs=",
"lastModified": 1736012469,
"narHash": "sha256-/qlNWm/IEVVH7GfgAIyP6EsVZI6zjAx1cV5zNyrs+rI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "88195a94f390381c6afcdaa933c2f6ff93959cb4",
"rev": "8f3e1f807051e32d8c95cd12b9b421623850a34d",
"type": "github"
},
"original": {
@ -708,11 +762,11 @@
},
"nixpkgs_3": {
"locked": {
"lastModified": 1735669367,
"narHash": "sha256-tfYRbFhMOnYaM4ippqqid3BaLOXoFNdImrfBfCp4zn0=",
"lastModified": 1736200483,
"narHash": "sha256-JO+lFN2HsCwSLMUWXHeOad6QUxOuwe9UOAF/iSl1J4I=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "edf04b75c13c2ac0e54df5ec5c543e300f76f1c9",
"rev": "3f0a8ac25fb674611b98089ca3a5dd6480175751",
"type": "github"
},
"original": {
@ -745,15 +799,14 @@
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable_2"
]
},
"locked": {
"lastModified": 1734797603,
"narHash": "sha256-ulZN7ps8nBV31SE+dwkDvKIzvN6hroRY8sYOT0w+E28=",
"lastModified": 1735882644,
"narHash": "sha256-3FZAG+pGt3OElQjesCAWeMkQ7C/nB1oTHLRQ8ceP110=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "f0f0dc4920a903c3e08f5bdb9246bb572fcae498",
"rev": "a5a961387e75ae44cc20f0a57ae463da5e959656",
"type": "github"
},
"original": {
@ -784,11 +837,11 @@
]
},
"locked": {
"lastModified": 1735844895,
"narHash": "sha256-CIRlqX9tBK2awJkmVu2cKuap/0QziDXStQZ/u/+e8Z4=",
"lastModified": 1736203741,
"narHash": "sha256-eSjkBwBdQk+TZWFlLbclF2rAh4JxbGg8az4w/Lfe7f4=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "24d89184adf76d7ccc99e659dc5f3838efb5ee32",
"rev": "c9c88f08e3ee495e888b8d7c8624a0b2519cb773",
"type": "github"
},
"original": {
@ -803,8 +856,10 @@
"base16-fish": "base16-fish",
"base16-helix": "base16-helix",
"base16-vim": "base16-vim",
"firefox-gnome-theme": "firefox-gnome-theme",
"flake-compat": "flake-compat_4",
"flake-utils": "flake-utils_3",
"git-hooks": "git-hooks",
"gnome-shell": "gnome-shell",
"home-manager": "home-manager_2",
"nixpkgs": [
@ -816,17 +871,17 @@
"tinted-tmux": "tinted-tmux"
},
"locked": {
"lastModified": 1735840530,
"narHash": "sha256-4O+KR6WSb40pcIPO9QboI59eH3/oxNEvCwXkFi6QvvM=",
"lastModified": 1736300250,
"narHash": "sha256-xyEutjs7pWQ7cLqfdTnhvWWeJ136wu6Jlxz5ez4htHE=",
"owner": "danth",
"repo": "stylix",
"rev": "90f95c5d8408360fc38cb3a862565bcb08ae6aa8",
"rev": "743ad1da11fec9711f46c2fcf46e7142da0594cd",
"type": "github"
},
"original": {
"owner": "danth",
"ref": "release-24.11",
"repo": "stylix",
"rev": "90f95c5d8408360fc38cb3a862565bcb08ae6aa8",
"type": "github"
}
},
@ -1004,11 +1059,11 @@
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1735849099,
"narHash": "sha256-nYykv3COeYunqlha9Co+8CCigM2GtdtS7vw9xuhoO7Q=",
"lastModified": 1736267677,
"narHash": "sha256-7FH/gFShKOzf46yKqA4VWAaWxuyHBRnXOdaffbTxVo4=",
"owner": "0xc000022070",
"repo": "zen-browser-flake",
"rev": "b275d71ba83928121235a4e7968b9be55986fdc6",
"rev": "c96c6a1ebf1bea782f9528dc316d986a6087ebc0",
"type": "github"
},
"original": {

View File

@ -1,25 +1,23 @@
{
description = "Joey's Flake";
inputs = {
# Package repositories:
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
hyprland = {
url = "github:hyprwm/Hyprland";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
home-manager = {
url = "github:nix-community/home-manager/release-24.11";
inputs.nixpkgs.follows = "nixpkgs";
};
# Applications:
hyprland = {
url = "github:hyprwm/Hyprland";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
nixgl.url = "github:nix-community/nixGL";
nix-flatpak.url = "github:gmodena/nix-flatpak";
stylix = {
type = "github";
owner = "danth";
repo = "stylix";
rev = "90f95c5d8408360fc38cb3a862565bcb08ae6aa8"; # Before breaking commit that inits ghostty
#rev = "6eb0597e345a7f4a16f7d7b14154fc151790b419";
#url = "github:danth/stylix";
url = "github:danth/stylix/release-24.11";
inputs.nixpkgs.follows = "nixpkgs";
};
zen-browser.url = "github:0xc000022070/zen-browser-flake";
@ -39,137 +37,64 @@
...
}:
let
vars = {
user = {
username = "joey";
realname = "Joey Hafner";
email = "joey@jafner.net";
keys = {
gpgSigningKey = "$HOME/.keys/joey@jafner.net.desktop.sign.gpg";
gpgSigningKeyFingerprint = "B0BBF464024BCEAE";
gpgEncryptKey = "$HOME/.keys/joey@jafner.net.encrypt.gpg";
sshKey = "$HOME/.keys/joey.desktop@jafner.net";
ageKey = "$HOME/.keys/joey.author.key";
};
};
laptop = {
hostname = "joey-laptop";
theme = "gruvbox-warm";
sshKey = "joey.laptop@jafner.net";
};
desktop = {
hostname = "joey-desktop";
sshKey = "joey.desktop@jafner.net";
};
flake = {
gitServer.http = "https://gitea.jafner.tools";
gitServer.ssh = "ssh://git@gitea.jafner.tools:2225";
owner = "Jafner";
repoName = "Jafner.net";
branch = "main";
repoPath = "Git/Jafner.net";
path = "dotfiles/flake.nix";
# Use the following to compose the full absolute path:
# "/home/${sys.username}/${flake.repoPath}/${flake.path}"
};
system = "x86_64-linux";
lib = nixpkgs.lib;
pkgs = import inputs.nixpkgs {
inherit system;
overlays = [ nixgl.overlay ];
config = { allowUnfreePredicate = (_: true); };
};
pkgs-unstable = import nixpkgs-unstable {
inherit system;
overlays = [ nixgl.overlay ];
config = { allowUnfreePredicate = (_: true); };
usr.joey = {
realname = "Joey Hafner";
email = "joey@jafner.net";
encryptKey = "$HOME/.keys/joey@jafner.net.encrypt.gpg";
ageKey = "$HOME/.keys/joey.author.key";
};
in {
nixosConfigurations = {
installer = lib.nixosSystem {
desktop = let
sys = {
username = "joey";
hostname = "desktop@jafner.net";
sshKey = "joey.desktop@jafner.net";
signingKey = "B0BBF464024BCEAE";
shellPackage = "zsh";
kernelPackage = "linux_zen"; # Read more: https://nixos.wiki/wiki/Linux_kernel; Other options: https://mynixos.com/nixpkgs/packages/linuxKernel.packages;
wallpaper = ./assets/romb-3840x2160.png;
arch = "x86_64-linux";
flakeDir = "Git/Jafner.net/dotfiles";
};
system = "x86_64-linux";
lib = nixpkgs.lib;
pkgs = import inputs.nixpkgs {
inherit system;
overlays = [ nixgl.overlay ];
config = { allowUnfreePredicate = (_: true); };
};
pkgs-unstable = import nixpkgs-unstable {
inherit system;
overlays = [ nixgl.overlay ];
config = { allowUnfreePredicate = (_: true); };
};
in lib.nixosSystem {
modules = [
./nixos/installer/configuration.nix
./systems/desktop/configuration.nix
inputs.nix-flatpak.nixosModules.nix-flatpak
inputs.home-manager.nixosModules.home-manager
{
home-manager = {
users.joey = import ./home-manager/installer/home.nix;
sharedModules = [
inputs.nix-flatpak.homeManagerModules.nix-flatpak
inputs.stylix.homeManagerModules.stylix
];
extraSpecialArgs = { inherit pkgs pkgs-unstable inputs; inherit vars; };
};
}
"${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-base.nix"
];
inherit system;
specialArgs = {
inherit pkgs pkgs-unstable inputs;
inherit vars;
};
};
desktop = lib.nixosSystem {
modules = [
./nixos/desktop/configuration.nix
inputs.nix-flatpak.nixosModules.nix-flatpak
inputs.home-manager.nixosModules.home-manager
{
home-manager = {
users.joey = import ./home-manager/desktop/home.nix;
sharedModules = [
inputs.nix-flatpak.homeManagerModules.nix-flatpak
inputs.stylix.homeManagerModules.stylix
];
extraSpecialArgs = { inherit pkgs pkgs-unstable inputs; inherit vars; };
};
home-manager.sharedModules = [
inputs.nix-flatpak.homeManagerModules.nix-flatpak
inputs.stylix.homeManagerModules.stylix
];
home-manager.extraSpecialArgs = { inherit pkgs pkgs-unstable inputs; inherit sys usr flake; };
}
];
inherit system;
specialArgs = {
inherit pkgs pkgs-unstable inputs;
inherit vars;
};
};
laptop = lib.nixosSystem {
modules = [
./nixos/laptop/configuration.nix
inputs.hyprland.nixosModules.default
#inputs.stylix.nixosModules.stylix
inputs.nix-flatpak.nixosModules.nix-flatpak
inputs.home-manager.nixosModules.home-manager
{
home-manager = {
users.joey = import ./home-manager/laptop/home.nix;
sharedModules = [
inputs.nix-flatpak.homeManagerModules.nix-flatpak
inputs.stylix.homeManagerModules.stylix
];
extraSpecialArgs = { inherit pkgs pkgs-unstable inputs; inherit vars; };
};
}
];
inherit system;
specialArgs = {
inherit pkgs pkgs-unstable inputs;
inherit vars;
};
};
};
homeConfigurations = {
laptop = home-manager.lib.homeManagerConfiguration {
modules = [
./home-manager/laptop/home.nix
inputs.stylix.homeManagerModules.stylix
inputs.plasma-manager.homeManagerModules.plasma-manager
inputs.nix-flatpak.homeManagerModules.nix-flatpak
];
inherit pkgs;
extraSpecialArgs = {
inherit pkgs pkgs-unstable inputs;
inherit vars;
};
};
desktop = home-manager.lib.homeManagerConfiguration {
modules = [
./home-manager/desktop/home.nix
inputs.nix-flatpak.homeManagerModules.nix-flatpak
];
inherit pkgs;
extraSpecialArgs = {
inherit pkgs pkgs-unstable inputs;
inherit vars;
};
specialArgs = { inherit pkgs pkgs-unstable inputs sys usr flake; };
};
};
};

View File

@ -1,97 +0,0 @@
{ pkgs, vars, ... }: {
home.packages = with pkgs; [
ollama-rocm
( writeShellApplication {
name = "ollama-chat";
runtimeInputs = [
libnotify
];
text = ''
#!/bin/bash
# shellcheck disable=SC2034
DEFAULT_MODEL="llama3.2:3b"
MODEL=''$''\{1:-DEFAULT_MODEL}
# if [ -z "''$''\{MODEL}" ]; then
# echo "No model selected. Choose a model from the list below:"
# unset modellist
# while read -r model; do
# modellist+=( "$model" )
# done< <(${pkgs.ollama-rocm}/bin/ollama list | tail -n+2)
# select model in "''$''\{modellist[@]}"; do
# MODEL=$(echo "$model" | tr -s ' ' | cut -d' ' -f1)
# echo "Selected: $MODEL"
# export MODEL
# break
# done
# fi
echo "Loading model $MODEL"
${pkgs.ollama-rocm}/bin/ollama run "$MODEL" ""
echo "Finished loading $MODEL"
${pkgs.ollama-rocm}/bin/ollama run "$MODEL"
echo "Unloading model $MODEL"
${pkgs.ollama-rocm}/bin/ollama stop "$MODEL"
'';
} )
];
xdg.desktopEntries.ollama = {
exec = "kitty-popup ollama-wrapped";
icon = "/home/${vars.user.username}/.icons/custom/ollama.png";
name = "AI Chat";
categories = [ "Utility" ];
type = "Application";
actions = {};
};
home.file."ollama.png" = {
target = ".icons/custom/ollama.png";
source = pkgs.fetchurl {
url = "https://ollama.com/public/icon-64x64.png";
sha256 = "sha256-jzjt+wB9e3TwPSrXpXwCPapngDF5WtEYNt9ZOXB2Sgs=";
};
};
home.file."codewriter.Modelfile" = {
target = ".ollama/codewriter.Modelfile";
text = ''
FROM llama3.3:70b
PARAMETER temperature 1
SYSTEM """
I want you to act as a senior full-stack tech leader and top-tier brilliant software developer, you embody technical excellence and a deep understanding of a wide range of technologies.
Your expertise covers not just coding, but also algorithm design, system architecture, and technology strategy.
For every question there is no need to explain, only give the solution.
Coding Mastery: Possess exceptional skills in programming languages including Python, JavaScript, SQL, NoSQL, mySQL, C++, C, Rust, Groovy, Go, and Java.
Your proficiency goes beyond mere syntax; you explore and master the nuances and complexities of each language, crafting code that is both highly efficient and robust.
Your capability to optimize performance and manage complex codebases sets the benchmark in software development.
Python | JavaScript | C++ | C | RUST | Groovy | Go | Java | SQL | MySQL | NoSQL
Efficient, Optimal, Good Performance, Excellent Complexity, Robust Code
Cutting-Edge Technologies: Adept at leveraging the latest technologies, frameworks, and tools to drive innovation and efficiency.
Experienced with Docker, Kubernetes, React, Angular, AWS, Supabase, Firebase, Azure, and Google Cloud.
Your understanding of these platforms enables you to architect and deploy scalable, resilient applications that meet modern business demands.
Docker | Kubernetes | React | Angular | AWS | Supabase | Firebase | Azure | Google Cloud Seamlessly Integrating Modern Tech Stacks Complex Algorithms & Data Structures Optimized Solutions for Enhanced Performance & Scalability
Solution Architect: Your comprehensive grasp of the software development lifecycle empowers you to design solutions that are not only technically sound but also align perfectly with business goals. From concept to deployment, you ensure adherence to industry best practices and agile methodologies, making the development process both agile and effective.
Interactive Solutions: When crafting user-facing features, employ modern ES6 JavaScript, TypeScript, and native browser APIs to manage interactivity seamlessly, enabling a dynamic and engaging user experience. Your focus lies in delivering functional, ready-to-deploy code, ensuring that explanations are succinct and directly aligned with the required solutions.
Never explain the code just write code.
"""
'';
};
home.file."custom.Modelfile" = {
enable = true;
target = ".ollama/custom.Modelfile";
text = ''
FROM /home/joey/.llm/models/my-model.gguf
'';
};
}

View File

@ -1,15 +0,0 @@
{ inputs, ... }: {
# services.flatpak.packages = [
# "io.github.zen_browser.zen/x86_64/stable"
# ];
programs.firefox = {
enable = true;
};
programs.chromium = {
enable = true;
};
home.packages = [
inputs.zen-browser.packages."x86_64-linux".default
#pkgs-unstable.zen-browser
];
}

View File

@ -1,118 +0,0 @@
{
"models": [
{
"title": "Ollama",
"provider": "ollama",
"model": "AUTODETECT"
},
{
"title": "OpenRouter LLaMA 3 70B",
"provider": "openai",
"model": "meta-llama/llama-3-70b-instruct",
"apiBase": "https://openrouter.ai/api/v1",
"apiKey": "ENC[AES256_GCM,data:OM0zLvnnjY5OcOfw0GGGplDnopUx8EgVY4nvtnMC19iyRN+p+KHGRkaSNuXsqSijWs5VVOi2GkNPpwcHrf6J7wV3UmO1DTR2Gg==,iv:fiq9SQDu2DKq/LZRYNsST6LsxFOxs38yrMmrWhmgVRQ=,tag:qqIJo4TBaiATk1fdnlPw7Q==,type:str]"
}
],
"slashCommands": [
{
"name": "edit",
"description": "Edit selected code"
},
{
"name": "comment",
"description": "Write comments for the selected code"
},
{
"name": "share",
"description": "Export this session as markdown"
},
{
"name": "cmd",
"description": "Generate a shell command"
}
],
"customCommands": [
{
"name": "test",
"prompt": "Write a comprehensive set of unit tests for the selected code. It should setup, run tests that check for correctness including important edge cases, and teardown. Ensure that the tests are complete and sophisticated. Give the tests just as chat output, don't edit any file.",
"description": "Write unit tests for highlighted code"
}
],
"contextProviders": [
{
"name": "code",
"params": {}
},
{
"name": "docs",
"params": {}
},
{
"name": "diff",
"params": {}
},
{
"name": "open",
"params": {}
},
{
"name": "terminal",
"params": {}
},
{
"name": "problems",
"params": {}
},
{
"name": "folder",
"params": {}
},
{
"name": "codebase",
"params": {}
}
],
"tabAutocompleteModel": {
"title": "starcoder2:3b",
"provider": "ollama",
"model": "starcoder2:3b",
"apiBase": "http://localhost:11434"
},
"tabAutocompleteOptions": {
"disable": false,
"useCopyBuffer": false,
"useFileSuffix": true,
"maxPromptTokens": 1024,
"prefixPercentage": 0.85,
"maxSuffixPercentage": 0.25,
"debounceDelay": 800,
"multilineCompletions": "auto",
"useCache": false,
"useOtherFiles": true,
"disableInFiles": []
},
"allowAnonymousTelemetry": true,
"embeddingsProvider": {
"provider": "ollama",
"model": "nomic-embed-text:latest",
"apiBase": "http://localhost:11434"
},
"docs": [],
"sops": {
"kms": null,
"gcp_kms": null,
"azure_kv": null,
"hc_vault": null,
"age": [
{
"recipient": "age1v5wy7epv5mm8ddf3cfv8m0e9w4s693dw7djpuytz9td8ycha5f0sv2se9n",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXR3VBK2JMNnZsUllQbXA3\neDU3ZkpTY3k1RzVaMHV5amJtWlk1SVNJdmlBCmVubWxHYWkxSy9LUTFLTDR6b1Z6\nek9zQTRIcnRQYUl2cVFhZ1Arc3EvY00KLS0tIFIyODdmQVZDYXdYazZod1lac0hD\nOVVwc095akp3dHM3Z3dPcFhmYTFJWHMKlIHpUzJb51+ygCpUSzVXaksEuuHt/wVy\nt4y/DiSHSzotvbA3zm27yHhjiPopNyJxK0CKtgZ9B5QOZDeAwGBSig==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2024-10-02T22:46:20Z",
"mac": "ENC[AES256_GCM,data:x6TTD1HD8XO/e2myCLyG9b5P74ZyvlCJkDrNxlEpIO/Trfr3Hv0GdDPLvR9jsCxXWz+LkBE0xl7wA1e7d1vBQck0vzH3H7XEdwcLw5me+x3vTxHb19P6Po5P0sgPwlSgAA2p+RrdWxlmRaInoWjrwIAt547AGir9r826CNUBmew=,iv:VQgqq+ZhbvlHVZB6Q9s6HbG3NDrtfah4HzYpS6e7S0k=,tag:cbX/jHdQI/K2j+rBDVOtgw==,type:str]",
"pgp": null,
"encrypted_regex": "^(apiKey)$",
"version": "3.9.0"
}
}

View File

@ -1,4 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [ vesktop ];
#services.flatpak.packages = [ "dev.vencord.Vesktop/x86_64/stable" ];
}

View File

@ -1,5 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
protonmail-desktop
];
}

View File

@ -1,7 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
dolphin-emu
mgba
desmume
];
}

View File

@ -1,18 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
terraform
sops ssh-to-age age
doctl
k3s
(wrapHelm kubernetes-helm {
plugins = with pkgs.kubernetes-helmPlugins; [
helm-diff
helm-secrets
helm-s3
helm-git
];
})
helmfile-wrapped
];
}

View File

@ -1,8 +0,0 @@
{ pkgs, ... }: {
services.flatpak.packages = [
"org.prismlauncher.PrismLauncher/x86_64/stable"
];
home.packages = [
pkgs.prismlauncher
];
}

View File

@ -1,9 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
vlc
ffmpeg-full
];
services.flatpak.packages = [
"no.mifi.losslesscut/x86_64/stable"
];
}

View File

@ -1,11 +0,0 @@
{ pkgs, ... }: {
programs.obs-studio = {
enable = true;
plugins = with pkgs.obs-studio-plugins; [
obs-vaapi
obs-vkcapture
input-overlay
wlrobs
];
};
}

View File

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

View File

@ -1,64 +0,0 @@
{ vars, pkgs, ... }:
{
home.packages = with pkgs; [
rofi-rbw-wayland
wl-clipboard
dotool
];
programs.tofi = {
enable = false;
settings = {};
};
programs.rofi = {
enable = false;
configPath = "$XDG_CONFIG_HOME/rofi/config.rasi";
extraConfig = {};
location = "center";
terminal = "${pkgs.kitty}/bin/kitty";
};
programs.wofi = {
enable = true;
};
programs.rbw = {
enable = true;
settings = {
base_url = "https://bitwarden.jafner.tools";
email = "jafner425@gmail.com";
lock_timeout = 2592000;
pinentry = pkgs.pinentry-qt;
};
};
xdg.desktopEntries = {
rofi-rbw = {
exec = "${pkgs.rofi-rbw-wayland}/bin/rofi-rbw";
icon = "/home/${vars.user.username}/.icons/custom/bitwarden.png";
name = "Bitwarden";
categories = [ "Utility" "Security" ];
type = "Application";
};
};
home.file."rofi-rbw.rc" = {
target = ".config/rofi-rbw.rc";
text = ''
action="type"
typing-key-delay=0
selector-args="-W 40% -H 30%"
selector="wofi"
clipboarder="wl-copy"
typer="dotool"
keybindings="Enter:type:username:enter:tab:type:password:enter:copy:totp"
'';
};
home.file."bitwarden.png" = {
target = ".icons/custom/bitwarden.png";
source = pkgs.fetchurl {
url = "https://raw.githubusercontent.com/bitwarden/clients/refs/heads/main/apps/desktop/resources/icons/64x64.png";
sha256 = "sha256-ZEYwxeoL8doV4y3M6kAyfz+5IoDsZ+ci8m+Qghfdp9M=";
};
};
}

View File

@ -1,14 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [ spotify-qt librespot ];
systemd.user.services.librespot = {
Unit = {
Description = "Librespot (an open source Spotify client)";
Documentation = [ "https://github.com/librespot-org/librespot" "https://github.com/librespot-org/librespot/wiki/Options" ];
};
Service = {
Restart = "always";
RestartSec = 10;
ExecStart = "${pkgs.librespot}/bin/librespot --backend pulseaudio --system-cache /home/joey/.spotify -j";
};
};
}

View File

@ -1,160 +0,0 @@
{ pkgs, pkgs-unstable, ... }: {
home.packages = with pkgs; [
fastfetch
tree
bat
fd
eza
fzf-git-sh
wl-clipboard
jq
amdgpu_top
mission-center
nethogs
( writeShellApplication {
name = "kitty-popup";
runtimeInputs = [];
text = ''
#!/bin/bash
kitty \
--override initial_window_width=1280 \
--override initial_window_height=720 \
--override remember_window_size=no \
--class kitty-popup \
"$@"
'';
} )
pkgs-unstable.ghostty
];
programs.kitty = {
enable = true;
package = pkgs.kitty;
};
programs.tmux = {
enable = true;
newSession = true;
shell = "$HOME/.nix-profile/bin/zsh";
};
programs.zsh = {
enable = true;
dotDir = ".config/zsh";
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
shellAliases = {
bat = "bat --paging=never --color=always";
fd = "fd -Lu";
ls = "eza";
lt = "eza --tree";
fetch = "fastfetch";
neofetch = "fetch";
find = ''fzf --preview "bat --color=always --style=numbers --line-range=:500 {}"'';
nixgc = "nix-env --delete-generations 7d && nix-store --gc --print-dead";
fzf-ssh = "ssh $(cat ~/.ssh/profiles | fzf --height 20%)";
fsh = "fzf-ssh";
k = "kubectl";
};
history = {
share = true;
save = 10000;
size = 10000;
expireDuplicatesFirst = false;
extended = false;
ignoreAllDups = false;
ignoreDups = true;
};
initExtra = ''
bindkey '^[[1;5A' history-search-backward # Ctrl+Up-arrow
bindkey '^[[1;5B' history-search-forward # Ctrl+Down-arrow
bindkey '^[[1;5D' backward-word # Ctrl+Left-arrow
bindkey '^[[1;5C' forward-word # Ctrl+Right-arrow
bindkey '^[[H' beginning-of-line # Home
bindkey '^[[F' end-of-line # End
bindkey '^[w' kill-region # Delete
bindkey '^I^I' autosuggest-accept # Tab, Tab
bindkey '^[' autosuggest-clear # Esc
bindkey -s '^E' 'fzf-ssh\n'
_fzf_compgen_path() {
fd --hidden --exclude .git . "$1"
}
_fzf_compgen_dir() {
fd --hidden --exclude .git . "$1"
}
eval "$(~/.nix-profile/bin/fzf --zsh)"
'';
};
programs.eza = {
enable = true;
enableZshIntegration = true;
git = true;
extraOptions = [
"--color=always"
"--long"
"--icons=always"
"--no-time"
"--no-user"
];
};
programs.vim = {
enable = true;
defaultEditor = true;
settings = {
copyindent = true;
relativenumber = true;
expandtab = true;
tabstop = 2;
};
extraConfig = ''
set nocompatible
filetype on
filetype plugin on
filetype indent on
syntax on
set cursorline
set wildmenu
set wildmode=list:longest
'';
};
programs.fzf = {
enable = true;
package = pkgs-unstable.fzf;
};
programs.btop = {
enable = true;
package = pkgs.btop-rocm;
settings = {
color_theme = "stylix";
theme_background = true;
update_ms = 500;
};
};
xdg.desktopEntries = {
btop = {
exec = "kitty-popup btop";
icon = "utilities-system-monitor";
name = "btop";
categories = [ "Utility" "System" ];
type = "Application";
};
nethogs = {
exec = "kitty-popup sudo nethogs";
icon = "utilities-system-monitor";
name = "nethogs";
categories = [ "Utility" "System" ];
type = "Application";
};
};
}

View File

@ -1,8 +0,0 @@
{ ... }: {
services.flatpak.packages = [
"at.vintagestory.VintageStory/x86_64/stable"
];
# home.packages = [
# pkgs.vintagestory
# ];
}

View File

@ -1,25 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [ nixd ];
programs.vscode = {
enable = true;
package = pkgs.vscodium;
extensions = with pkgs.vscode-extensions; [
jnoortheen.nix-ide
adzero.vscode-sievehighlight
];
userSettings = {
#"editor.fontFamily" = "'DejaVu Sans Mono'";
"nix.serverPath" = "nixd";
"nix.enableLanguageServer" = true;
"explorer.confirmDragAndDrop" = false;
"explorer.confirmDelete" = false;
"git.autofetch" = true;
"git.confirmSync" = false;
"git.enableSmartCommit" = true;
"security.workspace.trust.untrustedFiles" = "open";
"terminal.integrated.defaultProfile.linux" = "zsh";
#"terminal.integrated.fontFamily" = "'DejaVu Sans Mono'";
"terminal.integrated.profiles.linux.zsh.path" = "/usr/bin/zsh";
};
};
}

View File

@ -1,15 +0,0 @@
{ ... }: {
programs.zed-editor = {
# https://mynixos.com/home-manager/options/programs.zed-editor
enable = true;
extensions = [ "Nix" "Catppuccin" ];
userSettings = {
languages."Nix"."language_servers" = [ "!nil" "nixd" ];
theme = {
mode = "system";
dark = "Catppuccin Mocha";
light = "Catppuccin Mocha";
};
};
};
}

View File

@ -1,38 +0,0 @@
{ ... }: {
xdg.mimeApps = let
webBrowser = "zen.desktop";
emailClient = "proton-mail.desktop";
imageViewer = "org.kde.gwenview.desktop";
musicPlayer = "vlc.desktop";
videoPlayer = "vlc.desktop";
textEditor = "dev.zed.Zed.desktop";
docViewer = "zen.desktop";
fileManager = "org.kde.dolphin.desktop";
terminal = "org.kde.konsole.desktop";
archiveManager = "org.kde.ark.desktop";
in {
enable = true;
defaultApplications = {
"x-scheme-handler/http" = "${webBrowser}";
"x-scheme-handler/https" = "${webBrowser}";
"x-scheme-handler/about" = "${webBrowser}";
"x-scheme-handler/unknown" = "${webBrowser}";
"application/json" = "${textEditor}";
"application/pdf" = "${webBrowser}";
"application/vnd.apple.keynote" = "${textEditor}";
"application/vnd.ms-publisher" = "${textEditor}";
"application/x-desktop" = "${textEditor}";
"application/x-executable" = "${textEditor}";
"text/css" = "${textEditor}";
"text/html" = "${textEditor}";
"text/plain" = "${textEditor}";
"video/mp4" = "${videoPlayer}";
"video/x-matroska" = "${videoPlayer}";
};
associations.added = {
};
};
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

View File

@ -1,20 +0,0 @@
{ pkgs, vars, ... }: {
home.packages = with pkgs; [ git ];
programs.git = {
enable = true;
userName = "${vars.user.realname}";
userEmail = "${vars.user.email}";
extraConfig = {
init.defaultBranch = "main";
core.sshCommand = "ssh -i /home/${vars.user.username}/.ssh/${vars.desktop.sshKey}";
gpg.format = "openpgp";
commit.gpgsign = true;
tag.gpgsign = true;
user.signingKey = "${vars.user.keys.gpgSigningKeyFingerprint}";
};
delta.enable = true;
delta.options = {
side-by-side = true;
};
};
}

View File

@ -1,169 +0,0 @@
{ pkgs, ... }: {
imports = [
];
home.packages = with pkgs; [
mako
libnotify
swww
polkit-kde-agent
dolphin
power-profiles-daemon
pavucontrol
grimblast
waybar
];
wayland.windowManager.hyprland = {
enable = true;
plugins = [];
settings = { };
};
programs.wofi = {
enable = true;
settings = {
show = "drun";
width = "40%";
height = "20%";
allow_markup = true;
};
};
programs.waybar = {
enable = true;
settings = {
mainBar = {
# layer = "top";
# position = "top";
# height = 30;
# spacing = 30;
# margin-left = 0;
# margin-right = 0;
# modules-left = [ "custom/appmenu" "wlr/taskbar" "hyprland/window" "tray" ];
# modules-center = [ "hyprland/workspaces" ];
# modules-right = [
# "pulseaudio"
# "network"
# "battery"
# "clock"
# "custom/power"
# ];
# "hyprland/workspaces" = {
# active-only = false;
# on-click = "activate";
# format = "{}";
# format-icons = {
# urgent = "";
# active = "";
# default = "";
# };
# persistent-workspaces = {
# "*" = 3;
# };
# };
# "wlr/taskbar" = {
# format = "{icon}";
# icon-size = 18;
# tooltip-format = "{title}";
# on-click = "activate";
# on-click-middle = "close";
# ignore-list = [
# "kitty"
# ];
# app_ids-mapping = {};
# rewrite = {};
# };
# "hyprland/window" = {
# rewrite = {};
# separate-outputs = true;
# };
# "custom/appmenu" = {
# format = "  "; # Manual padding to move it further from left edge
# on-click = "wofi --show drun";
# };
# "custom/exit" = {
# format = " "; # Manual padding to move it further from right edge
# on-click = "wlogout";
# tooltip-format = "Power Menu";
# };
# keyboard-state = {
# numlock = true;
# capslock = true;
# format = "{name} {icon}";
# format-icons = {
# locked = " ";
# unlocked = " ";
# };
# };
# tray = {
# icon-size = 21;
# spacing = 10;
# };
# clock = {
# tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
# format-alt = ''{:%Y-%m-%d}'';
# };
# battery = {
# states = {
# warning = 30;
# critical = 15;
# };
# format = ''{capacity}% {icon}'';
# format-full = ''{capacity}% {icon}'';
# format-charging = ''{capacity}%  '';
# format-plugged = ''{capacity}%  '';
# format-alt = ''{time} {icon}'';
# format-icons = [ " " " " " " " " " " ];
# };
# power-profiles-daemon = {
# format = ''{icon}'';
# tooltip-format = "Power profile: {profile}\nDriver: {driver}";
# tooltip = true;
# format-icons = {
# default = '' '';
# performance = '' '';
# balanced = '' '';
# power-saver = '' '';
# };
# };
# network = {
# format-wifi = ''{essid} ({signalStrength}%)  '';
# format-ethernet = ''{ipaddr}/{cidr}  '';
# tooltip-format = ''{ifname} via {gwaddr}  '';
# format-linked = ''{ifname} (No IP)  '';
# format-disconnected = ''Disconnected ⚠ '';
# format-alt = ''{ifname}: {ipaddr}/{cidr}'';
# on-click = "kitty --class floating --override initial_window_width=400 --override initial_window_height=400 --override remember_window_size=false nmtui";
# on-click-right = "nm-connection-editor";
# };
# pulseaudio = {
# format = ''{volume}% {icon} {format_source}'';
# format-bluetooth = ''{volume}% {icon} {format_source}'';
# format-bluetooth-muted = ''{icon} {format_source}'';
# format-muted = ''{format_source}'';
# format-source = ''{volume}% '';
# format-source-muted = '' '';
# format-icons = {
# headphone = '' '';
# hands-free = '' '';
# headset = '' '';
# phone = '' '';
# portable = '' '';
# car = '' '';
# default = [ "" " " " " ];
# };
# on-click = ''pavucontrol'';
# };
# "custom/power" = {
# format = ''⏻ '';
# tooltip = false;
# menu = "on-click";
# menu-file = ''$HOME/.config/waybar/power_menu.xml'';
# menu-actions = {
# shutdown = "shutdown";
# reboot = "reboot";
# suspend = "systemctl suspend";
# hibernate = "systemctl hibernate";
# };
# };
};
};
};
}

View File

@ -1,355 +0,0 @@
/*
* __ __ _ ____ _ _
* \ \ / /_ _ _ _| |__ __ _ _ __ / ___|| |_ _ _| | ___
* \ \ /\ / / _` | | | | '_ \ / _` | '__| \___ \| __| | | | |/ _ \
* \ V V / (_| | |_| | |_) | (_| | | ___) | |_| |_| | | __/
* \_/\_/ \__,_|\__, |_.__/ \__,_|_| |____/ \__|\__, |_|\___|
* |___/ |___/
*
* by Stephan Raabe (2024)
* -----------------------------------------------------
*/
@define-color backgroundlight #FFFFFF;
@define-color backgrounddark #FFFFFF;
@define-color workspacesbackground1 #FFFFFF;
@define-color workspacesbackground2 #CCCCCC;
@define-color bordercolor #FFFFFF;
@define-color textcolor1 #000000;
@define-color textcolor2 #000000;
@define-color textcolor3 #FFFFFF;
@define-color iconcolor #FFFFFF;
/* -----------------------------------------------------
* General
* ----------------------------------------------------- */
* {
font-family: "Fira Sans Semibold", FontAwesome, Roboto, Helvetica, Arial, sans-serif;
border: none;
border-radius: 0px;
}
window#waybar {
background-color: rgba(0,0,0,0.2);
border-bottom: 0px solid #ffffff;
/* color: #FFFFFF; */
transition-property: background-color;
transition-duration: .5s;
}
/* -----------------------------------------------------
* Workspaces
* ----------------------------------------------------- */
#workspaces {
margin: 5px 1px 6px 1px;
padding: 0px 1px;
border-radius: 15px;
border: 0px;
font-weight: bold;
font-style: normal;
font-size: 16px;
color: @textcolor1;
}
#workspaces button {
padding: 0px 5px;
margin: 4px 3px;
border-radius: 15px;
border: 0px;
color: @textcolor3;
transition: all 0.3s ease-in-out;
}
#workspaces button.active {
color: @textcolor1;
background: @workspacesbackground2;
border-radius: 15px;
min-width: 40px;
transition: all 0.3s ease-in-out;
}
#workspaces button:hover {
color: @textcolor1;
background: @workspacesbackground2;
border-radius: 15px;
}
/* -----------------------------------------------------
* Tooltips
* ----------------------------------------------------- */
tooltip {
border-radius: 10px;
background-color: @backgroundlight;
opacity:0.8;
padding:20px;
margin:0px;
}
tooltip label {
color: @textcolor2;
}
/* -----------------------------------------------------
* Window
* ----------------------------------------------------- */
#window {
background: @backgroundlight;
margin: 10px 15px 10px 0px;
padding: 2px 10px 0px 10px;
border-radius: 12px;
color:@textcolor2;
font-size:16px;
font-weight:normal;
}
window#waybar.empty #window {
background-color:transparent;
}
/* -----------------------------------------------------
* Taskbar
* ----------------------------------------------------- */
#taskbar {
background: @backgroundlight;
margin: 6px 15px 6px 0px;
padding:0px;
border-radius: 15px;
font-weight: normal;
font-style: normal;
border: 3px solid @backgroundlight;
}
#taskbar button {
margin:0;
border-radius: 15px;
padding: 0px 5px 0px 5px;
}
/* -----------------------------------------------------
* Modules
* ----------------------------------------------------- */
.modules-left > widget:first-child > #workspaces {
margin-left: 0;
}
.modules-right > widget:last-child > #workspaces {
margin-right: 0;
}
/* -----------------------------------------------------
* Custom Quicklinks
* ----------------------------------------------------- */
#custom-browser,
#custom-filemanager,
#network,
#pulseaudio,
#battery,
#custom-appmenu,
#clock {
margin-right: 20px;
font-size: 20px;
font-weight: bold;
color: @iconcolor;
padding: 4px 10px 2px 10px;
font-size: 16px;
}
#custom-quicklink1,
#custom-quicklink2,
#custom-quicklink3,
#custom-quicklink4,
#custom-quicklink5,
#custom-quicklink6,
#custom-quicklink7,
#custom-quicklink8,
#custom-quicklink9,
#custom-quicklink10 {
padding:0px;
margin-right: 7px;
font-size:20px;
color: @iconcolor;
}
/* -----------------------------------------------------
* Custom Modules
* ----------------------------------------------------- */
#custom-appmenu {
background-color: @backgrounddark;
color: @textcolor1;
border-radius: 15px;
margin: 10px 10px 10px 10px;
}
/* -----------------------------------------------------
* Custom Exit
* ----------------------------------------------------- */
#custom-exit {
margin: 2px 20px 0px 0px;
padding:0px;
font-size:20px;
color: @iconcolor;
}
/* -----------------------------------------------------
* Hardware Group
* ----------------------------------------------------- */
#disk,#memory,#cpu,#language {
margin:0px;
padding:0px;
font-size:16px;
color:@iconcolor;
}
#language {
margin-right:10px;
}
/* -----------------------------------------------------
* Clock
* ----------------------------------------------------- */
#clock {
background-color: @backgrounddark;
font-size: 16px;
color: @textcolor1;
border-radius: 15px;
margin: 10px 7px 10px 0px;
}
/* -----------------------------------------------------
* Pulseaudio
* ----------------------------------------------------- */
#pulseaudio {
background-color: @backgroundlight;
font-size: 16px;
color: @textcolor2;
border-radius: 15px;
margin: 10px 10px 10px 0px;
}
#pulseaudio.muted {
background-color: @backgrounddark;
color: @textcolor1;
}
/* -----------------------------------------------------
* Network
* ----------------------------------------------------- */
#network {
background-color: @backgroundlight;
font-size: 16px;
color: @textcolor2;
border-radius: 15px;
margin: 10px 10px 10px 0px;
}
#network.ethernet {
background-color: @backgroundlight;
color: @textcolor2;
}
#network.wifi {
background-color: @backgroundlight;
color: @textcolor2;
}
/* -----------------------------------------------------
* Bluetooth
* ----------------------------------------------------- */
#bluetooth, #bluetooth.on, #bluetooth.connected {
background-color: @backgroundlight;
font-size: 16px;
color: @textcolor2;
border-radius: 15px;
margin: 10px 15px 10px 0px;
}
#bluetooth.off {
background-color: transparent;
padding: 0px;
margin: 0px;
}
/* -----------------------------------------------------
* Battery
* ----------------------------------------------------- */
#battery {
background-color: @backgroundlight;
font-size: 16px;
color: @textcolor2;
border-radius: 15px;
margin: 10px 15px 10px 0px;
}
#battery.charging, #battery.plugged {
color: @textcolor2;
background-color: @backgroundlight;
}
@keyframes blink {
to {
background-color: @backgroundlight;
color: @textcolor2;
}
}
#battery.critical:not(.charging) {
background-color: #f53c3c;
color: @textcolor3;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
/* -----------------------------------------------------
* Tray
* ----------------------------------------------------- */
#tray {
margin:0px 10px 0px 0px;
}
#tray > .passive {
-gtk-icon-effect: dim;
}
#tray > .needs-attention {
-gtk-icon-effect: highlight;
background-color: #eb4d4b;
}
/* -----------------------------------------------------
* Other
* ----------------------------------------------------- */
label:focus {
background-color: #000000;
}
#backlight {
background-color: #90b1b1;
}
#network {
background-color: #2980b9;
}
#network.disconnected {
background-color: #f53c3c;
}

View File

@ -1,355 +0,0 @@
@import "style.css";
waybar#window {
background-color: @base0B;
}
@define-color base00 #111349;
@define-color base01 #332330;
@define-color base02 #156eb2;
@define-color base03 #66a3da;
@define-color base04 #95bede;
@define-color base05 #e2e1ef;
@define-color base06 #e0e3f4;
@define-color base07 #cce8f6;
@define-color base08 #5196d1;
@define-color base09 #5196cf;
@define-color base0A #5796cc;
@define-color base0B #5595d3;
@define-color base0C #5896c9;
@define-color base0D #5795d0;
@define-color base0E #4f96d8;
@define-color base0F #5894d3;
* {
font-family: "DejaVu Sans";
font-size: 12pt;
}
window#waybar, tooltip {
background: alpha(@base00, 1.000000);
color: @base05;
}
tooltip {
border-color: @base0D;
}
#wireplumber,
#pulseaudio,
#sndio {
padding: 0 5px;
}
#wireplumber.muted,
#pulseaudio.muted,
#sndio.muted {
padding: 0 5px;
}
#upower,
#battery {
padding: 0 5px;
}
#upower.charging,
#battery.Charging {
padding: 0 5px;
}
#network {
padding: 0 5px;
}
#network.disconnected {
padding: 0 5px;
}
#user {
padding: 0 5px;
}
#clock {
padding: 0 5px;
}
#backlight {
padding: 0 5px;
}
#cpu {
padding: 0 5px;
}
#disk {
padding: 0 5px;
}
#idle_inhibitor {
padding: 0 5px;
}
#temperature {
padding: 0 5px;
}
#mpd {
padding: 0 5px;
}
#language {
padding: 0 5px;
}
#keyboard-state {
padding: 0 5px;
}
#memory {
padding: 0 5px;
}
#window {
padding: 0 5px;
}
window .modules-left #workspaces button {
background-color: @base07;
color: @base00;
}
.modules-left #wireplumber,
.modules-left #pulseaudio,
.modules-left #sndio {
background-color: @base09;
color: @base00;
}
.modules-left #workspaces button.focused,
.modules-left #workspaces button.active {
background: @base03;
}
.modules-left #workspaces button.urgent {
background-color: @base08;
}
.modules-left #wireplumber.muted,
.modules-left #pulseaudio.muted,
.modules-left #sndio.muted {
background-color: @base0C;
}
.modules-left #upower,
.modules-left #battery {
background-color: @base0D;
color: @base00;
}
.modules-left #upower.charging,
.modules-left #battery.Charging {
background-color: @base0E;
}
.modules-left #network {
background-color: @base0B;
color: @base00;
}
.modules-left #network.disconnected {
background-color: @base0C;
}
.modules-left #user {
background-color: @base0F;
color: @base00;
}
.modules-left #clock {
background-color: @base03;
color: @base00;
}
.modules-left #backlight {
background-color: @base0E;
color: @base00;
}
.modules-left #cpu {
background-color: @base0B;
color: @base00;
}
.modules-left #disk {
background-color: @base02;
color: @base00;
}
.modules-left #idle_inhibitor {
background-color: @base06;
color: @base00;
}
.modules-left #temperature {
background-color: @base07;
color: @base00;
}
.modules-left #mpd {
background-color: @base02;
color: @base00;
}
.modules-left #language {
background-color: @base02;
color: @base00;
}
.modules-left #keyboard-state {
background-color: @base03;
color: @base00;
}
.modules-left #memory {
background-color: @base09;
color: @base00;
}
.modules-left #window {
background-color: @base0C;
color: @base00;
}
window .modules-center #workspaces button {
background-color: @base07;
color: @base00;
}
.modules-center #wireplumber,
.modules-center #pulseaudio,
.modules-center #sndio {
background-color: @base09;
color: @base00;
}
.modules-center #workspaces button.focused,
.modules-center #workspaces button.active {
background: @base03;
}
.modules-center #workspaces button.urgent {
background-color: @base08;
}
.modules-center #wireplumber.muted,
.modules-center #pulseaudio.muted,
.modules-center #sndio.muted {
background-color: @base0C;
}
.modules-center #upower,
.modules-center #battery {
background-color: @base0D;
color: @base00;
}
.modules-center #upower.charging,
.modules-center #battery.Charging {
background-color: @base0E;
}
.modules-center #network {
background-color: @base0B;
color: @base00;
}
.modules-center #network.disconnected {
background-color: @base0C;
}
.modules-center #user {
background-color: @base0F;
color: @base00;
}
.modules-center #clock {
background-color: @base03;
color: @base00;
}
.modules-center #backlight {
background-color: @base0E;
color: @base00;
}
.modules-center #cpu {
background-color: @base0B;
color: @base00;
}
.modules-center #disk {
background-color: @base02;
color: @base00;
}
.modules-center #idle_inhibitor {
background-color: @base06;
color: @base00;
}
.modules-center #temperature {
background-color: @base07;
color: @base00;
}
.modules-center #mpd {
background-color: @base02;
color: @base00;
}
.modules-center #language {
background-color: @base02;
color: @base00;
}
.modules-center #keyboard-state {
background-color: @base03;
color: @base00;
}
.modules-center #memory {
background-color: @base09;
color: @base00;
}
.modules-center #window {
background-color: @base0C;
color: @base00;
}
window .modules-right #workspaces button {
background-color: @base07;
color: @base00;
}
.modules-right #wireplumber,
.modules-right #pulseaudio,
.modules-right #sndio {
background-color: @base09;
color: @base00;
}
.modules-right #workspaces button.focused,
.modules-right #workspaces button.active {
background: @base03;
}
.modules-right #workspaces button.urgent {
background-color: @base08;
}
.modules-right #wireplumber.muted,
.modules-right #pulseaudio.muted,
.modules-right #sndio.muted {
background-color: @base0C;
}
.modules-right #upower,
.modules-right #battery {
background-color: @base0D;
color: @base00;
}
.modules-right #upower.charging,
.modules-right #battery.Charging {
background-color: @base0E;
}
.modules-right #network {
background-color: @base0B;
color: @base00;
}
.modules-right #network.disconnected {
background-color: @base0C;
}
.modules-right #user {
background-color: @base0F;
color: @base00;
}
.modules-right #clock {
background-color: @base03;
color: @base00;
}
.modules-right #backlight {
background-color: @base0E;
color: @base00;
}
.modules-right #cpu {
background-color: @base0B;
color: @base00;
}
.modules-right #disk {
background-color: @base02;
color: @base00;
}
.modules-right #idle_inhibitor {
background-color: @base06;
color: @base00;
}
.modules-right #temperature {
background-color: @base07;
color: @base00;
}
.modules-right #mpd {
background-color: @base02;
color: @base00;
}
.modules-right #language {
background-color: @base02;
color: @base00;
}
.modules-right #keyboard-state {
background-color: @base03;
color: @base00;
}
.modules-right #memory {
background-color: @base09;
color: @base00;
}
.modules-right #window {
background-color: @base0C;
color: @base00;
}

View File

@ -1,152 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [ waybar ];
programs.waybar = {
enable = true;
settings = {
mainBar = {
layer = "top";
position = "top";
height = 30;
spacing = 30;
margin-left = 0;
margin-right = 0;
modules-left = [ "custom/appmenu" "wlr/taskbar" "hyprland/window" "tray" ];
modules-center = [ "hyprland/workspaces" ];
modules-right = [
"pulseaudio"
"network"
"battery"
"clock"
"custom/power"
];
"hyprland/workspaces" = {
active-only = false;
on-click = "activate";
format = "{}";
format-icons = {
urgent = "";
active = "";
default = "";
};
persistent-workspaces = {
"*" = 3;
};
};
"wlr/taskbar" = {
format = "{icon}";
icon-size = 18;
tooltip-format = "{title}";
on-click = "activate";
on-click-middle = "close";
ignore-list = [
"kitty"
];
app_ids-mapping = {};
rewrite = {};
};
"hyprland/window" = {
rewrite = {};
separate-outputs = true;
};
"custom/appmenu" = {
format = " "; # Manual padding to move it further from left edge
on-click = "wofi --show drun";
};
"custom/exit" = {
format = " "; # Manual padding to move it further from right edge
on-click = "wlogout";
tooltip-format = "Power Menu";
};
keyboard-state = {
numlock = true;
capslock = true;
format = "{name} {icon}";
format-icons = {
locked = " ";
unlocked = " ";
};
};
tray = {
icon-size = 21;
spacing = 10;
};
clock = {
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
format-alt = ''{:%Y-%m-%d}'';
};
battery = {
states = {
warning = 30;
critical = 15;
};
format = ''{capacity}% {icon}'';
format-full = ''{capacity}% {icon}'';
format-charging = ''{capacity}% '';
format-plugged = ''{capacity}% '';
format-alt = ''{time} {icon}'';
format-icons = [ " " " " " " " " " " ];
};
power-profiles-daemon = {
format = ''{icon}'';
tooltip-format = "Power profile: {profile}\nDriver: {driver}";
tooltip = true;
format-icons = {
default = '' '';
performance = '' '';
balanced = '' '';
power-saver = '' '';
};
};
network = {
format-wifi = ''{essid} ({signalStrength}%) '';
format-ethernet = ''{ipaddr}/{cidr} '';
tooltip-format = ''{ifname} via {gwaddr} '';
format-linked = ''{ifname} (No IP) '';
format-disconnected = ''Disconnected '';
format-alt = ''{ifname}: {ipaddr}/{cidr}'';
on-click = "kitty --class floating --override initial_window_width=400 --override initial_window_height=400 --override remember_window_size=false nmtui";
on-click-right = "nm-connection-editor";
};
pulseaudio = {
format = ''{volume}% {icon} {format_source}'';
format-bluetooth = ''{volume}% {icon} {format_source}'';
format-bluetooth-muted = ''{icon} {format_source}'';
format-muted = ''{format_source}'';
format-source = ''{volume}% '';
format-source-muted = '' '';
format-icons = {
headphone = '' '';
hands-free = '' '';
headset = '' '';
phone = '' '';
portable = '' '';
car = '' '';
default = [ "" " " " " ];
};
on-click = ''pavucontrol'';
};
"custom/power" = {
format = '' '';
tooltip = false;
menu = "on-click";
menu-file = ''$HOME/.config/waybar/power_menu.xml'';
menu-actions = {
shutdown = "shutdown";
reboot = "reboot";
suspend = "systemctl suspend";
hibernate = "systemctl hibernate";
};
};
};
};
};
# We want Stylix to do most of the heavy lifting for our styling,
# but we want to add a few snippets. So we're going to run waybar
# with '-c ~/.config/waybar/waybar.css', which will add our snippets
# and then source the original, default '~/.config/waybar/style.css'
# created by Stylix.
# home.file."waybar.css" = {
# target = ".config/waybar/waybar.css";
# source = ./waybar.css;
# };
}

View File

@ -1,11 +0,0 @@
{ pkgs, ... }: {
programs.wofi = {
enable = true;
settings = {
show = "drun";
width = "40%";
height = "20%";
allow_markup = true;
};
};
}

View File

@ -1,128 +0,0 @@
{ pkgs, vars, ... }: {
home.packages = with pkgs; [
ssh-to-age
pinentry-all
( writeShellApplication {
name = "keyman";
runtimeInputs = [];
text = ''
#!/bin/bash
# Fuck GPG. Miserable UX.
id="joey@jafner.net"
device="desktop"
homedir="/home/${vars.user.username}/.gpg"
backupdir="/home/${vars.user.username}/.keys"
mkdir -p "$homedir" "$backupdir"
getPrimaryKeyFingerprint() {
return "$(gpg --list-keys | grep fingerprint | tr -s ' ' | cut -d'=' -f2 | xargs)"
}
bootstrap() {
gpg --quick-generate-key 'Joey Hafner <joey@jafner.net>' ed25519 cert 0
gpg --quick-add-key "$(getPrimaryKeyFingerprint)" ed25519 sign 0
gpg --quick-add-key "$(getPrimaryKeyFingerprint)" cv25519 encrypt 0
}
lockPrimary() {
gpg -a --export-secret-key "$(getPrimaryKeyFingerprint)" > "$backupdir/$id.primary.gpg"
gpg -a --export "$(getPrimaryKeyFingerprint)" > "$backupdir/$id.primary.gpg.pub"
gpg -a --export-secret-subkeys "$(getPrimaryKeyFingerprint)" > "/tmp/subkeys.gpg"
gpg --delete-secret-subkeys "$(getPrimaryKeyFingerprint)"
gpg --import "/tmp/subkeys.gpg" && rm "/tmp/subkeys.gpg"
}
unlockPrimary() {
gpg --import "$backupdir/$id.primary.gpg"
if gpg --list-secret-keys | grep -q sec#; then
echo "Unlocked primary key $backupdir/$id.primary.gpg"
else
echo "Failed to unlock primary key $backupdir/$id.primary.gpg"
fi
}
initNewDevice() {
stty icrnl
unlockPrimary
gpg --quick-add-key "$(getPrimaryKeyFingerprint)" ed25519 sign 0
if [[ $(gpg --list-keys | grep "$(date +%Y-%m-%d)" | grep "[S]") -gt 1 ]]; then
echo "More than one loaded signing key is listed for today's date. Please select one:"
while read -r key; do
key_list+=( "$key" )
done< <(gpg --list-keys | grep "$(date +%Y-%m-%d)" | grep "[S]")
select key in "''$''\{key_list[@]}"; do
SUBKEY_FINGERPRINT=$(echo "$key" | cut -d'/' -f2 | cut -d' ' -f1)
export SUBKEY_FINGERPRINT
echo "Subkey fingerprint: $SUBKEY_FINGERPRINT"
break
done
else
SUBKEY_FINGERPRINT=$(gpg --list-keys | grep "$(date +%Y-%m-%d)" | grep "[S]" | cut -d'/' -f2 | cut -d' ' -f1 | head -1)
export SUBKEY_FINGERPRINT
fi
gpg --list-keys | grep "$(date +%Y-%m-%d)" | grep "[S]"
gpg -a --export-secret-key "$SUBKEY_FINGERPRINT" > "$backupdir/$id.$device.gpg"
gpg -a --export "$SUBKEY_FINGERPRINT" > "$backupdir/$id.$device.gpg.pub"
lockPrimary
}
"$@" || declare -F
'';
} )
];
programs.gpg = {
enable = true;
homedir = "/home/${vars.user.username}/.gpg";
mutableKeys = true;
mutableTrust = true;
publicKeys = [ ];
};
services.gpg-agent = {
enable = true;
enableZshIntegration = true;
enableScDaemon = false;
pinentryPackage = pkgs.pinentry-qt;
};
home.file = {
"profiles" = {
target = ".ssh/profiles";
text = ''
admin@192.168.1.31
admin@192.168.1.32
admin@192.168.1.33
admin@192.168.1.10
admin@192.168.1.11
admin@192.168.1.12
vyos@192.168.1.1
admin@192.168.1.23
admin@143.110.151.123
'';
};
"config" = {
target = ".ssh/config";
text = ''
Host *
ForwardAgent yes
IdentityFile ~/.ssh/${vars.desktop.sshKey}
'';
};
"authorized_keys" = {
target = ".ssh/authorized_keys";
text = ''
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB9guFiLtbnUn93C3fBggGFyPqR3/5pPKrVTtuGL/dcP joey@pixel
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFzxkV2KZDEUKddI2sbgpQkYFazRSmt/XfzVhcHHDGso joey@joey-laptop
'';
};
};
# Configure Sops key
home.sessionVariables = {
SOPS_AGE_KEY_FILE = "/home/${vars.user.username}/Git/Jafner.net/.sops/${vars.user.username}.author.key";
};
}

View File

@ -1,207 +0,0 @@
{ ... }: {
programs.mangohud = {
enable = true;
settings = {};
settingsPerApplication = {};
};
home.file."MyConfig.conf" = {
enable = true;
target = ".config/MangoHud/MyConfig.conf";
text = ''
# FPS Limit
fps_limit=240,0
fps_limit_method=late
# Software Information
## FPS
fps=0
fps_color_change=0
fps_text=
fps_value=59,239
fps_metrics=0
## Frame Times
frame_timing=1
frame_timing_detailed=0
dynamic_frame_timing=1
frametime=0
histogram=1
show_fps_limit=0
## Environment
gamemode=0
present_mode=0
vulkan_driver=0
engine_version=0
engine_short_names=0
exec_name=0
vkbasalt=0
wine=0
winesync=0
# Info: CPU
cpu_text=
cpu_stats=0
core_load=0
core_bars=0
cpu_power=0
cpu_temp=0
# Info: GPU
gpu_text=
gpu_stats=0
gpu_power=0
gpu_temp=0
gpu_core_clock=0
gpu_mem_clock=0
gpu_fan=0
gpu_voltage=0
throttling_status=0
throttling_status_graph=0
# Info: Memory
procmem=0
procmem_shared=0
procmem_virt=0
ram=0
vram=0
swap=0
# Info: Network
network=0
# Info: Other
time=0
time_format=%r
time_no_label=1
graphs=
# Keybindings
toggle_hud=Shift_R+F12
toggle_logging=Shift_L+F2
toggle_hud_position=R_Shift+F11
toggle_preset=Shift_R+F10
toggle_fps_limit=Shift_L+F1
reload_cfg=Shift_L+F4
upload_log=Shift_L+F3
reset_fps_metrics=Shift_R+f9
# Orientation: positioning, size, arrangement
width=240
table_columns=2
offset_x=3
offset_y=24
position=top-left
legacy_layout=1
height=0
horizontal=0
horizontal_stretch=0
hud_compact=0
hud_no_margin=1
cellpadding_y=0
round_corners=10
alpha=1.000000
background_alpha=1.00000
# Text: Font, colors, etc.
font_scale=1.0
font_size=24
font_size_text=24
no_small_font=0
text_color=cdd6f4
text_outline=1
text_outline_thickness=1
text_outline_color=#1e1e2e
frametime_color=b2bedc
frametime_text_color=
background_color=1d253a
battery_color=ff0000#585b70
engine_color=cdd6f4
cpu_color=89b4fa
cpu_load_color=a6e3a1, f9e2af, f38ba8
io_color=f9e2af
media_player_color=cdd6f4
gpu_color=a6e3a1
gpu_load_color=a6e3a1, f9e2af, f38ba8
fps_color=a6e3a1, f9e2af, f38ba8
wine_color=cba6f7
vram_color=94e2d5
'';
};
home.file."presets.conf" = {
target = ".config/MangoHud/presets.conf";
text = ''
[preset 1] # Frame data
fps=1
fps_color_change=1
fps_text=
fps_value=59,239
fps_metrics=avg,0.01
frame_timing=1
frame_timing_detailed=1
dynamic_frame_timing=1
frametime=1
histogram=1
show_fps_limit=1
[preset 2] # CPU info
cpu_text=5700X
cpu_stats=1
core_load=1
core_bars=1
cpu_power=0
cpu_temp=1
[preset 3] # GPU info
gpu_text=7900 XTX
gpu_stats=1
gpu_power=1
gpu_temp=1
gpu_core_clock=1
gpu_mem_clock=1
gpu_fan=1
gpu_voltage=1
throttling_status=1
throttling_status_graph=1
[preset 4] # Memory info
procmem=1
procmem_shared=1
procmem_virt=1
ram=1
vram=1
swap=1
[preset 5] # Network info
network=enp4s0f0
[preset 6] # Environment info
gamemode=1
present_mode=1
vulkan_driver=1
engine_version=1
engine_short_names=1
exec_name=1
vkbasalt=1
wine=1
winesync=1
[preset 7]
no_display=1
'';
};
home.sessionVariables = {
MANGOHUD_CONFIGFILE = "$XDG_CONFIG_HOME/MangoHud/MyConfig.conf";
MANGOHUD_PRESETSFILE = "$XDG_CONFIG_HOME/MangoHud/presets.conf";
};
}
# OW HUD background: #1d253a
# OW HUD text: #b2bedc
# cat ~/.config/MangoHud/MangoHud.conf

View File

@ -1,7 +0,0 @@
{ ... }: {
nixGL = {
vulkan.enable = true;
defaultWrapper = "mesa";
installScripts = [ "mesa" ];
};
}

View File

@ -1,60 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [ base16-schemes ];
# Use the following before running a switch to prevent clobbering:
# rm ~/.gtkrc-2.0 ~/.config/gtk-3.0/settings.ini ~/.config/gtk-3.0/gtk.css ~/.config/gtk-4.0/settings.ini ~/.config/gtk-4.0/gtk.css
# if one run with backups has already been done, clean it up with:
# rm ~/.gtkrc-2.0.backup ~/.config/gtk-3.0/settings.ini.backup ~/.config/gtk-3.0/gtk.css.backup ~/.config/gtk-4.0/settings.ini.backup ~/.config/gtk-4.0/gtk.css.backup
stylix = {
enable = true;
autoEnable = true;
polarity = "dark";
#image = ./plasma6-2560x1440.png;
image = ./romb-3840x2160.png;
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
fonts = {
sizes = {
applications = 10;
desktop = 10;
popups = 10;
terminal = 12;
};
monospace = {
name = "DejaVu Sans Mono";
package = pkgs.dejavu_fonts;
};
serif = {
name = "DejaVu Serif";
package = pkgs.dejavu_fonts;
};
sansSerif = {
name = "DejaVu Sans";
package = pkgs.dejavu_fonts;
};
emoji = {
name = "Noto Color Emoji";
package = pkgs.noto-fonts-color-emoji;
};
};
targets = {
bat.enable = true;
btop.enable = true;
firefox.enable = true;
firefox.profileNames = [ "Default" ];
fzf.enable = true;
gnome.enable = true;
gtk.enable = true;
kde.enable = true;
rofi.enable = true;
vesktop.enable = true;
vscode.enable = true;
wofi.enable = true;
#ghostty.enable = false;
};
};
}
# Use the following to get an ordered list of color codes from ~/.config/stylix/palette.json:
#
# cat ~/.config/stylix/palette.json | jq 'to_entries | .[] | select(.key | contains("base")) | .value'
# To convert that to the format expected by [genix7000](https://github.com/cab404/genix7000):
# sed 's/^"/"\\#/' | tr '\n' ' '

View File

@ -1,56 +0,0 @@
{ vars, ... }:
{
imports = [
./configuration/stylix.nix
./configuration/git.nix
./configuration/keys.nix
./configuration/defaultApps.nix
./configuration/mangohud.nix
./apps/zed.nix
./apps/browser.nix
./apps/discord.nix
./apps/obs-studio.nix
./apps/terminal.nix
./apps/vscode.nix
./apps/iac-tools.nix
./apps/minecraft.nix
./apps/multimedia.nix
./apps/obsidian.nix
./apps/spotify.nix
./apps/password-manager.nix
./apps/email.nix
./apps/emulators.nix
./apps/ai.nix
./services/flatpak.nix
./services/kdeconnect.nix
./services/nextcloud.nix
./services/protonmail.nix
./services/goxlr-utility.nix
#./services/syncthing.nix
./scripts/ffmpeg.nix
./scripts/nixos.nix
./scripts/obs-toggle-recording.nix
];
services.flatpak = {
enable = true;
uninstallUnmanaged = true;
remotes = [
{ name = "flathub"; location = "https://flathub.org/repo/flathub.flatpakrepo"; }
];
};
home.enableNixpkgsReleaseCheck = false;
home.preferXdgDirectories = true;
home.username = "${vars.user.username}";
home.homeDirectory = "/home/${vars.user.username}";
home.stateVersion = "24.11";
home.sessionVariables = { };
programs.home-manager.enable = true;
xdg.systemDirs.data = [
"/usr/share"
];
}

View File

@ -1,82 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
ffmpeg-full
libnotify
( writeShellApplication {
name = "convert-for-discord"; # { filePath }: { none } (side-effect: transcodes & remuxes file to x264/mp4)
runtimeInputs = [
libnotify
ffmpeg-full
];
text = ''
#!/bin/bash
INPUT_FILE=$(realpath "$1")
FILE_PATH=$(dirname "$INPUT_FILE")
FILE_NAME=$(basename "$INPUT_FILE")
#FILE_EXT="''$''\{FILE_NAME##*.}"
FILE_NAME="''$''\{FILE_NAME%.*}"
OUTFILE="$FILE_PATH/$FILE_NAME.mp4"
# Actual transcoding happens here:
notify-send -t 2000 "Transcode starting" "$FILE_NAME"
ffmpeg -hide_banner -vaapi_device /dev/dri/renderD128 -i "$INPUT_FILE" -map 0 -vf 'format=nv12,hwupload' -c:v h264_vaapi -b:v 8M -c:a copy "$OUTFILE"
notify-send -t 4000 "Transcode complete" "$FILE_NAME"
'';
} )
( writeShellApplication {
name = "send-to-zipline"; # { filePath }: { none } (side-effect: transcodes & remuxes file to x264/mp4)
runtimeInputs = [
libnotify
curl
jq
wl-clipboard
wl-clip-persist
];
text = ''
#!/bin/bash
INPUT_FILE=$(realpath "$INPUT_FILE")
FILE_NAME=$(basename "$INPUT_FILE")
FILE_NAME="''$''\{FILE_NAME%.*}"
ZIPLINE_HOST_ROOT=https://zipline.jafner.net
TOKEN=$(cat ~/.zipline-auth)
LINK=$(curl \
--header "authorization: $TOKEN" \
$ZIPLINE_HOST_ROOT/api/upload -F "file=@$INPUT_FILE" \
--header "Content-Type: multipart/form-data" \
--header "Format: name" \
--header "Embed: true" \
--header "Original-Name: true")
LINK=$(echo "$LINK" | jq -r .'files[0]')
echo "[$FILE_NAME]($LINK)" | wl-copy
notify-send -t 4000 "Zipline - Upload complete." "Link copied to clipboard: $LINK"
'';
} )
];
home.file."send-to-ffmpeg.desktop" = {
target = ".local/share/kio/servicemenus/send-to-ffmpeg.desktop";
text = ''
[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=video/*;
Icon=video-mp4
X-KDE-Submenu=Run script...
Actions=convertForDiscord;sendToZipline
[Desktop Action convertForDiscord]
Name=Convert for Discord
Icon=video-mp4
TryExec=ffmpeg
Exec=file=%f; convert-for-discord "%f"
[Desktop Action sendToZipline]
Name=Send to Zipline
Icon=video-mp4
TryExec=ffmpeg
Exec=file=%f; send-to-zipline "%f"
'';
};
}

View File

@ -1,31 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
( writeShellApplication {
name = "init-keys";
runtimeInputs = [
ssh-to-age
];
text = ''
#!/bin/bash
# Asserts all keys are where they belong.
assert() {
TEST_FILE="$1"
FILE_HASH="$2"
if [ ! -f "$1" ]; then
echo "Error: Missing file $1"
exit 1
fi
TEST_HASH="$(sha256sum "$TEST_FILE" | cut -d' ' -f1)"
if [ ! "$HASH" == "$FILE_HASH" ]; then
echo "Error: File hash mismatch $1"
exit 1
fi
}
'';
} )
];
}

View File

@ -1,58 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
( writeShellApplication {
name = "nixos";
runtimeInputs = [
libnotify
jq
git
];
text = ''
#!/bin/bash
FLAKE_DIR="$HOME/Git/Jafner.net/dotfiles/"
CURRENT_CONFIGURATION="desktop"
cd "$FLAKE_DIR"
handleUntracked() {
UNTRACKED=$(git ls-files -o --directory --exclude-standard --no-empty-directory)
if [[ $(echo "$UNTRACKED" | wc -l) -gt 0 ]]; then
git add -A
notify-send "Adding untracked files" "$UNTRACKED"
fi
}
rebuild() {
notify-send "Beginning rebuild"
sudo nixos-rebuild switch \
--flake ".#$CURRENT_CONFIGURATION" \
--impure \
--show-trace &&\
notify-send "Rebuilt successfully"
}
update() {
notify-send "Beginning update" "Updating lockfile $FLAKE_DIR/flake.lock"
nix flake update --flake "$FLAKE_DIR"
notify-send "Update complete" "Finished updating lockfile $FLAKE_DIR/flake.lock"
}
finish() {
mkdir -p "$HOME/.nixos"
nixos-rebuild list-generations --json > "$HOME/.nixos/nixos-generations.json"
}
error() {
notify-send "Nixos Script Error" "$@"
exit 1
}
case "$1" in
rebuild) handleUntracked && rebuild && finish;;
update) handleUntracked && update && finish;;
*) error "Unrecognized subcommand $1";;
esac
'';
} )
];
}

View File

@ -1,65 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
### Python script that uses OBS-Studio's websocket to toggle recording when a hotkey is pressed.
( writers.writePython3Bin "obs-toggle-recording" {
libraries = [
( python312Packages.buildPythonPackage {
pname = "obsws_python";
version = "1.7.0";
src = fetchurl {
url = "https://files.pythonhosted.org/packages/22/29/dcb5286c9301eee8b72aee1e997761fb2cca9bf963fcd373acdfca353af3/obsws_python-1.7.0-py3-none-any.whl";
sha256 = "0jvqfvqgvqjsv0jsddj51m4wrinbrc2gbymmnmv9kfarfj7ly7g7";
};
format = "wheel";
doCheck = false;
buildInputs = [];
checkInputs = [];
nativeBuildInputs = [];
propagatedBuildInputs = [
( python312Packages.buildPythonPackage {
pname = "tomli";
version = "2.0.2";
src = fetchurl {
url = "https://files.pythonhosted.org/packages/cf/db/ce8eda256fa131af12e0a76d481711abe4681b6923c27efb9a255c9e4594/tomli-2.0.2-py3-none-any.whl";
sha256 = "0f5ar8vfq7lkydj19am5ymxg11d00ql0kv5hj3v07lskbi429gif";
};
format = "wheel";
doCheck = false;
buildInputs = [];
checkInputs = [];
nativeBuildInputs = [];
propagatedBuildInputs = [];
} )
( python312Packages.buildPythonPackage {
pname = "websocket-client";
version = "1.8.0";
src = fetchurl {
url = "https://files.pythonhosted.org/packages/5a/84/44687a29792a70e111c5c477230a72c4b957d88d16141199bf9acb7537a3/websocket_client-1.8.0-py3-none-any.whl";
sha256 = "09m5pwwi4bbwdv2vdhlc5k0737kskhnxyb5j17l9ii7mjz4lrd0p";
};
format = "wheel";
doCheck = false;
buildInputs = [];
checkInputs = [];
nativeBuildInputs = [];
propagatedBuildInputs = [];
} )
];
}
)
];
} ''
import obsws_python as obs
client = obs.ReqClient(host='localhost', port=4455)
recording_status = client.get_record_status()
active = recording_status.output_active
paused = recording_status.output_paused
if not active:
client.start_record()
else:
client.toggle_record_pause()
'' )
];
}

View File

@ -1,11 +0,0 @@
{ pkgs, ... }: {
services.flatpak = {
enable = true;
uninstallUnmanaged = true;
remotes = [
{ name = "flathub"; location = "https://flathub.org/repo/flathub.flatpakrepo"; }
];
packages = [ ];
};
home.packages = with pkgs; [ flatpak ];
}

View File

@ -1,18 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
goxlr-utility
];
systemd.user.services = {
goxlr-utility = {
Unit = {
Description = "Unofficial GoXLR App replacement for Linux, Windows and MacOS";
Documentation = [ "https://github.com/GoXLR-on-Linux/goxlr-utility" ];
};
Service = {
Restart = "always";
RestartSec = 30;
ExecStart = "${pkgs.goxlr-utility}/bin/goxlr-daemon";
};
};
};
}

View File

@ -1,5 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
kdePackages.kdeconnect-kde
];
}

View File

@ -1,3 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [ nextcloud-client ];
}

View File

@ -1,5 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
protonmail-bridge-gui
];
}

View File

@ -1,6 +0,0 @@
{ ... }: {
services.syncthing = {
enable = false;
tray = true;
};
}

View File

@ -1,28 +0,0 @@
{ pkgs, pkgs-unstable, ... }:
{
home.packages = with pkgs; [
rofi-rbw-wayland
rbw
pinentry-rofi
pinentry-all
];
home.file = {
rbw-config = {
target = ".config/rbw/config.json";
text = ''
{
"email": "jafner425@gmail.com",
"sso_id": null,
"base_url": "https://bitwarden.jafner.tools",
"identity_url": null,
"ui_url": null,
"notifications_url": null,
"lock_timeout": 3600,
"sync_interval": 3600,
"pinentry": "pinentry-curses",
"client_cert_path": null
}
'';
};
};
}

View File

@ -1,6 +0,0 @@
{ ... }:
{
services.flatpak.packages = [
{ appId = "io.github.zen_browser.zen"; origin = "flathub"; }
];
}

View File

@ -1,5 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [ flatpak ];
services.flatpak.enable = true;
}

View File

@ -1,9 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
(wineWowPackages.full.override {
wineRelease = "staging";
mingwSupport = true;
})
winetricks
];
}

View File

@ -1,16 +0,0 @@
{ vars, ... }:
{
## Git
programs.git = {
enable = true;
userName = "${vars.user.realname}";
userEmail = "${vars.user.email}";
extraConfig = {
core.sshCommand = "ssh -i /home/joey/.ssh/${vars.user.username}@${vars.laptop.hostname}";
};
delta.enable = true;
delta.options = {
side-by-side = true;
};
};
}

View File

@ -1,7 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
k3s
kubernetes-helm
helmfile-wrapped ];
}

View File

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

View File

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

View File

@ -1,12 +0,0 @@
{ pkgs, ... }:
{
## OBS-Studio
programs.obs-studio = {
enable = true;
plugins = with pkgs.obs-studio-plugins; [
obs-vaapi
obs-vkcapture
input-overlay
];
};
}

View File

@ -1,72 +0,0 @@
{ ... }:
{
programs.plasma = {
enable = true;
shortcuts = {
"kwin"."Show Desktop" = "Meta+D";
"kwin"."Switch One Desktop Down" = "Meta+Ctrl+Down";
"kwin"."Switch One Desktop Up" = "Meta+Ctrl+Up";
"kwin"."Switch One Desktop to the Left" = "Meta+Ctrl+Left";
"kwin"."Switch One Desktop to the Right" = "Meta+Ctrl+Right";
"kwin"."Switch Window Down" = "Meta+Alt+Down";
"kwin"."Switch Window Left" = "Meta+Alt+Left";
"kwin"."Switch Window Right" = "Meta+Alt+Right";
"kwin"."Switch Window Up" = "Meta+Alt+Up";
"kwin"."Walk Through Windows" = "Alt+Tab";
"kwin"."Walk Through Windows (Reverse)" = "Alt+Shift+Tab";
"kwin"."Walk Through Windows of Current Application" = "Alt+`";
"kwin"."Walk Through Windows of Current Application (Reverse)" = "Alt+~";
"kwin"."Window Close" = "Alt+F4";
"kwin"."Window Fullscreen" = "Meta+F";
"kwin"."Window Maximize" = "Meta+PgUp";
"kwin"."Window Minimize" = "Meta+PgDown";
"kwin"."Window One Desktop Down" = "Meta+Ctrl+Shift+Down";
"kwin"."Window One Desktop Up" = "Meta+Ctrl+Shift+Up";
"kwin"."Window One Desktop to the Left" = "Meta+Ctrl+Shift+Left";
"kwin"."Window One Desktop to the Right" = "Meta+Ctrl+Shift+Right";
"kwin"."Window Operations Menu" = "Alt+F3";
"kwin"."Window Quick Tile Bottom" = "Meta+Down";
"kwin"."Window Quick Tile Left" = "Meta+Left";
"kwin"."Window Quick Tile Right" = "Meta+Right";
"kwin"."Window Quick Tile Top" = "Meta+Up";
"kwin"."view_actual_size" = "Meta+0";
"kwin"."view_zoom_in" = ["Meta++" "Meta+=,Meta++" "Meta+=,Zoom In"];
"kwin"."view_zoom_out" = "Meta+-";
"org_kde_powerdevil"."Decrease Keyboard Brightness" = "Keyboard Brightness Down";
"org_kde_powerdevil"."Decrease Screen Brightness" = "Monitor Brightness Down";
"org_kde_powerdevil"."Decrease Screen Brightness Small" = "Shift+Monitor Brightness Down";
"org_kde_powerdevil"."Hibernate" = "Hibernate";
"org_kde_powerdevil"."Increase Keyboard Brightness" = "Keyboard Brightness Up";
"org_kde_powerdevil"."Increase Screen Brightness" = "Monitor Brightness Up";
"org_kde_powerdevil"."Increase Screen Brightness Small" = "Shift+Monitor Brightness Up";
"org_kde_powerdevil"."PowerDown" = "Power Down";
"org_kde_powerdevil"."PowerOff" = "Power Off";
"org_kde_powerdevil"."Sleep" = "Sleep";
"org_kde_powerdevil"."Toggle Keyboard Backlight" = "Keyboard Light On/Off";
"org_kde_powerdevil"."Turn Off Screen" = [ ];
};
configFile = {
"kcminputrc"."Libinput/1739/30382/DLL0704:01 06CB:76AE Mouse"."NaturalScroll" = true;
"kded5rc"."Module-device_automounter"."autoload" = false;
"kwinrulesrc"."1"."Description" = "Start Kitty fullscreen";
"kwinrulesrc"."1"."desktops" = "8174df23-1d2f-4d61-aef3-9b44ed596ed4";
"kwinrulesrc"."1"."desktopsrule" = 3;
"kwinrulesrc"."1"."fullscreenrule" = 3;
"kwinrulesrc"."1"."wmclass" = "kitty";
"kwinrulesrc"."1"."wmclassmatch" = 1;
"kwinrulesrc"."2"."Description" = "Start Zen Browser fullscreen";
"kwinrulesrc"."2"."desktops" = "ff42d652-e597-4e3c-9eb7-0cb2f5124dfe";
"kwinrulesrc"."2"."desktopsrule" = 3;
"kwinrulesrc"."2"."fullscreen" = true;
"kwinrulesrc"."2"."fullscreenrule" = 3;
"kwinrulesrc"."2"."title" = "Zen Browser";
"kwinrulesrc"."2"."wmclass" = "zen-alpha";
"kwinrulesrc"."2"."wmclassmatch" = 1;
"kwinrulesrc"."3"."Description" = "Start Vesktop fullscreen";
"kwinrulesrc"."3"."desktopsrule" = 3;
"kwinrulesrc"."3"."fullscreenrule" = 3;
"kwinrulesrc"."3"."wmclass" = "vesktop";
"kwinrulesrc"."3"."wmclassmatch" = 1;
};
};
}

View File

@ -1,120 +0,0 @@
{ pkgs, pkgs-unstable, ... }:
{
# Terminal
## Kitty
programs.kitty = {
enable = true;
};
## Tmux
programs.tmux = {
enable = true;
newSession = true;
shell = "$HOME/.nix-profile/bin/zsh";
};
# Shell
## Zsh
programs.zsh = {
enable = true;
dotDir = ".config/zsh";
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
shellAliases = {
bat = "bat --paging=never --color=always";
fd = "fd -Lu";
ls = "eza";
lt = "eza --tree";
fetch = "fastfetch";
neofetch = "fetch";
find = ''fzf --preview "bat --color=always --style=numbers --line-range=:500 {}"'';
nu = "sudo nixos-rebuild switch --flake ~/Jafner.net/nix";
hmu = "home-manager switch -b bak --flake ~/Jafner.net/nix";
ngls = "nix-env --profile /nix/var/nix/profiles/system --list-generations";
ngclean = "nix-collect-garbage --delete-old";
ngcleanboot = "/run/current-system/bin/switch-to-configuration boot";
};
history = {
share = true;
save = 10000;
size = 10000;
expireDuplicatesFirst = false;
extended = false;
ignoreAllDups = false;
ignoreDups = true;
};
initExtra = ''
bindkey '^[[1;5A' history-search-backward # Ctrl+Up-arrow
bindkey '^[[1;5B' history-search-forward # Ctrl+Down-arrow
bindkey '^[[1;5D' backward-word # Ctrl+Left-arrow
bindkey '^[[1;5C' forward-word # Ctrl+Right-arrow
bindkey '^[[H' beginning-of-line # Home
bindkey '^[[F' end-of-line # End
bindkey '^[w' kill-region # Delete
bindkey '^I^I' autosuggest-accept # Tab, Tab
bindkey '^[' autosuggest-clear # Esc
_fzf_compgen_path() {
fd --hidden --exclude .git . "$1"
}
_fzf_compgen_dir() {
fd --hidden --exclude .git . "$1"
}
eval "$(~/.nix-profile/bin/fzf --zsh)"
source ${pkgs.fzf-git-sh}/share/fzf-git-sh/fzf-git.sh
'';
};
# CLI Utilities
home.packages = with pkgs; [
fastfetch
tree btop
bat fd eza fzf-git-sh
wl-clipboard
killall
pkgs-unstable.fzf
];
## eza
programs.eza = {
enable = true;
enableZshIntegration = true;
git = true;
extraOptions = [
"--color=always"
"--long"
"--icons=always"
"--no-time"
"--no-user"
];
};
## vim
programs.vim = {
enable = true;
defaultEditor = true;
settings = {
copyindent = true;
relativenumber = true;
expandtab = true;
tabstop = 2;
};
extraConfig = ''
set nocompatible
filetype on
filetype plugin on
filetype indent on
syntax on
set cursorline
set wildmenu
set wildmode=list:longest
'';
};
## fzf
programs.fzf = {
enable = true;
package = pkgs-unstable.fzf;
};
}

View File

@ -1,49 +0,0 @@
{ pkgs, lib, ... }:
{
## Nix LSP
home.packages = with pkgs; [ nixd ];
## VSCodium
programs.vscode = {
enable = true;
package = pkgs.vscodium;
mutableExtensionsDir = true;
extensions = with pkgs.vscode-extensions; [
jnoortheen.nix-ide
continue.continue
];
userSettings = {
"nix.serverPath" = "nixd";
"nix.enableLanguageServer" = true;
"explorer.confirmDragAndDrop" = false;
"workbench.colorTheme" = "Stylix";
"git.autofetch" = true;
"git.confirmSync" = false;
"editor.fontFamily" = lib.mkForce "'Symbols Nerd Font Mono', 'PowerlineSymbols', 'DejaVu Sans Mono'";
"git.enableSmartCommit" = true;
"security.workspace.trust.untrustedFiles" = "open";
};
userTasks = {
version = "2.0.0";
tasks = [
{
type = "shell";
label = "NixOS Rebuild Switch";
command = "sudo nixos-rebuild switch --flake ~/Jafner.net/nix";
problemMatcher = [];
}
{
type = "shell";
label = "Home-Manager Switch";
command = "home-manager switch -b bak --flake ~/Jafner.net/nix";
problemMatcher = [];
}
{
label = "System Rebuild";
dependsOn = ["NixOS Rebuild Switch" "Home-Manager Switch" ];
dependsOrder = "sequence";
problemMatcher = [];
}
];
};
};
}

View File

@ -1,5 +0,0 @@
{ inputs, ... }: {
home.packages = [
inputs.nix-ecuflash.packages."x86_64-linux".ecuflash
];
}

View File

@ -1,33 +0,0 @@
{ pkgs, vars, ... }:
{
home.stateVersion = "24.05";
home.username = "${vars.user.username}";
home.homeDirectory = "/home/${vars.user.username}";
imports = [
./style.nix
./app/wine/wine.nix
./app/browser/zen.nix
./app/flatpak/flatpak.nix
./app/git/git.nix
./app/games/games.nix
./app/media/media.nix
./app/messaging/discord.nix
./app/obs-studio/obs-studio.nix
./app/bitwarden/bitwarden.nix
./app/sh/sh.nix # Consider splitting out to "terminal", "shell", and "cmd" or similar
./app/vscode/vscode.nix # Consider using a generalized "IDE" or "Editor" folder.
./wm/hyprland/wm.nix
];
# Desktop apps
home.packages = with pkgs; [
git
kdePackages.kdeconnect-kde
nix-prefetch
];
programs.home-manager = {
enable = true;
};
}

View File

@ -1,43 +0,0 @@
{ pkgs, vars, ... }:
{
home.packages = with pkgs; [ base16-schemes ];
## Stylix
imports = [ ./themes/${vars.laptop.theme}/theme.nix ];
stylix = {
enable = true;
autoEnable = true;
polarity = "dark";
targets = {
wofi.enable = true;
waybar = {
enableLeftBackColors = true;
enableCenterBackColors = true;
enableRightBackColors = true;
};
};
fonts = {
monospace = {
name = "DejaVu Sans Mono";
package = pkgs.dejavu_fonts;
};
serif = {
name = "DejaVu Serif";
package = pkgs.dejavu_fonts;
};
sansSerif = {
name = "DejaVu Sans";
package = pkgs.dejavu_fonts;
};
emoji = {
name = "Noto Color Emoji";
package = pkgs.noto-fonts-color-emoji;
};
sizes = {
terminal = 14;
applications = 12;
popups = 12;
desktop = 12;
};
};
};
}

View File

@ -1,7 +0,0 @@
{ ... }:
{
stylix = {
image = ./wallpaper.png;
override = { base01 = "332330"; };
};
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.6 MiB

View File

@ -1,7 +0,0 @@
{ pkgs, ... }:
{
stylix = {
image = pkgs.fetchurl { url = "https://wallpaperaccess.com/full/7731794.png"; sha256 = "1n0l1v0hfna5378zdfazvhq1np8x1wgjcmfnphxj4vjb48gkzmjk"; };
base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-medium.yaml";
};
}

View File

@ -1,7 +0,0 @@
{ pkgs, ... }:
{
stylix = {
image = pkgs.fetchurl { url = "https://wallpaperaccess.com/full/7731826.png"; sha256 = "07cq8vvi25h8wp21jgmj1yw3w4674khxcjb6c8vgybi94ikjqcyv"; };
base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-medium.yaml";
};
}

View File

@ -1,6 +0,0 @@
{ pkgs, ... }:
{
stylix = {
image = ./blue-material.jpg;
};
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

View File

@ -1,6 +0,0 @@
{ pkgs, ... }:
{
stylix = {
image = ./red-black-material.jpg;
};
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

View File

@ -1,25 +0,0 @@
{ pkgs, ... }:
{
stylix = {
image = ./wallpaper.jpg;
override = { base01 = "332330"; };
};
}
# Generated Colors
# base00: #111349; /* Black */
# base01: #2c4482; /* Bright Black */
# base02: #156eb2; /* Grey */
# base03: #66a3da; /* Brighter Grey */
# base04: #95bede; /* Bright Grey */
# base05: #e2e1ef; /* White */
# base06: #e0e3f4; /* Brighter White */
# base07: #cce8f6; /* Bright White */
# base08: #5196d1; /* Red */
# base09: #5196cf; /* Orange */
# base0A: #5796cc; /* Yellow */
# base0B: #5595d3; /* Green */
# base0C: #5896c9; /* Cyan */
# base0D: #5795d0; /* Blue */
# base0E: #4f96d8; /* Purple */
# base0F: #5894d3; /* Magenta */

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

View File

@ -1,6 +0,0 @@
{ pkgs, ... }:
{
stylix = {
image = ./wallpaper.jpg;
};
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 KiB

View File

@ -1,6 +0,0 @@
{ pkgs, ... }:
{
stylix = {
image = ./wallpaper.jpg;
};
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

View File

@ -1,7 +0,0 @@
{ ... }:
{
stylix = {
image = ./temple.png;
override = { base01 = "332330"; };
};
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

View File

@ -1,139 +0,0 @@
{ pkgs, ... }:
{
wayland.windowManager.hyprland = {
enable = true;
plugins = [];
settings = {
monitor = ",1920x1080@60,0x0,1";
# Declare default applications
"$terminal" = "kitty";
"$terminalFloating" = "kitty --class floating --override remember_window_size=false --override initial_window_height=720 --override initial_window_width=1280";
"$fileManager" = "dolphin";
"$browser" = "flatpak run io.github.zen_browser.zen";
"$bar" = "killall .waybar-wrapped; waybar"; #"$bar" = "killall .waybar-wrapped; waybar --style ~/.config/waybar/waybar.css";
"$menu" = "wofi --show drun";
"$notifd" = "mako";
"$wallpaperd" = "swww-daemon";
"$network" = "nm-applet --indicator";
"$screenshot" = "grimblast copy area";
# Scripted actions
"$commandRebuildNix" = "$terminal sudo nixos-rebuild switch --flake ~/Jafner.net/nix && read";
"$commandRebuildHomeManager" = "$terminal home-manager switch -b bak --flake ~/Jafner.net/nix && read";
exec-once = [
"$terminal"
"$bar"
"$notifd"
"$wallpaperd"
"$network"
];
env = [
"XCURSOR_SIZE,24"
"HYPRCURSOR_SIZE,24"
];
general = {
gaps_in = "5";
gaps_out = "20";
border_size = "2";
allow_tearing = false;
resize_on_border = false;
layout = "dwindle";
};
decoration = {
rounding = "10";
active_opacity = "1.0";
inactive_opacity = "0.99";
drop_shadow = true;
shadow_range = "4";
shadow_render_power = "3";
blur = {
enabled = true;
size = "3";
passes = "1";
vibrancy = "0.1696";
};
};
animations = {
enabled = true;
bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
animation = [
"windows, 1, 7, myBezier"
"windowsOut, 1, 7, default, popin 80%"
"border, 1, 10, default"
"borderangle, 1, 8, default"
"fade, 1, 7, default"
"workspaces, 1, 6, default"
];
};
dwindle = {
pseudotile = true;
preserve_split = true;
};
master = {
new_status = "master";
};
misc = {
force_default_wallpaper = "0";
disable_hyprland_logo = true;
};
input = {
kb_layout = "us";
follow_mouse = "1";
sensitivity = "0";
touchpad = {
natural_scroll = false;
};
};
gestures = {
workspace_swipe = false;
};
device = {
name = "epic-mouse-v1";
sensitivity = "-0.5";
};
"$mainMod" = "SUPER";
bind = [
"$mainMod, T, exec, $terminalFloating"
"$mainMod, Q, killactive,"
"$mainMod, M, exit,"
"$mainMod, E, exec, $fileManager"
"$mainMod, V, togglefloating,"
"$mainMod, R, exec, $menu"
"$mainMod, P, pseudo,"
"$mainMod, J, togglesplit,"
"$mainMod CTRL, S, exec, $screenshot"
"$mainMod CTRL, Z, exec, $browser"
"$mainMod CTRL ALT, N, exec, $commandRebuildNix"
"$mainMod CTRL ALT, H, exec, $commandRebuildHomeManager"
"$mainMod CTRL, P, exec, rofi-rbw"
"$mainMod, left, movefocus, l"
"$mainMod, right, movefocus, r"
"$mainMod, up, movefocus, u"
"$mainMod, down, movefocus, d"
"$mainMod CTRL, right, workspace, +1"
"$mainMod CTRL, left, workspace, -1"
"$mainMod CTRL SHIFT, right, movetoworkspace, +1"
"$mainMod CTRL SHIFT, left, movetoworkspace, -1"
"$mainMod CTRL, B, exec, $bar"
];
windowrulev2 = [
"suppressevent maximize, class:.*"
"float, class:floating"
"float, title:Network Connections"
];
};
};
}

View File

@ -1,355 +0,0 @@
/*
* __ __ _ ____ _ _
* \ \ / /_ _ _ _| |__ __ _ _ __ / ___|| |_ _ _| | ___
* \ \ /\ / / _` | | | | '_ \ / _` | '__| \___ \| __| | | | |/ _ \
* \ V V / (_| | |_| | |_) | (_| | | ___) | |_| |_| | | __/
* \_/\_/ \__,_|\__, |_.__/ \__,_|_| |____/ \__|\__, |_|\___|
* |___/ |___/
*
* by Stephan Raabe (2024)
* -----------------------------------------------------
*/
@define-color backgroundlight #FFFFFF;
@define-color backgrounddark #FFFFFF;
@define-color workspacesbackground1 #FFFFFF;
@define-color workspacesbackground2 #CCCCCC;
@define-color bordercolor #FFFFFF;
@define-color textcolor1 #000000;
@define-color textcolor2 #000000;
@define-color textcolor3 #FFFFFF;
@define-color iconcolor #FFFFFF;
/* -----------------------------------------------------
* General
* ----------------------------------------------------- */
* {
font-family: "Fira Sans Semibold", FontAwesome, Roboto, Helvetica, Arial, sans-serif;
border: none;
border-radius: 0px;
}
window#waybar {
background-color: rgba(0,0,0,0.2);
border-bottom: 0px solid #ffffff;
/* color: #FFFFFF; */
transition-property: background-color;
transition-duration: .5s;
}
/* -----------------------------------------------------
* Workspaces
* ----------------------------------------------------- */
#workspaces {
margin: 5px 1px 6px 1px;
padding: 0px 1px;
border-radius: 15px;
border: 0px;
font-weight: bold;
font-style: normal;
font-size: 16px;
color: @textcolor1;
}
#workspaces button {
padding: 0px 5px;
margin: 4px 3px;
border-radius: 15px;
border: 0px;
color: @textcolor3;
transition: all 0.3s ease-in-out;
}
#workspaces button.active {
color: @textcolor1;
background: @workspacesbackground2;
border-radius: 15px;
min-width: 40px;
transition: all 0.3s ease-in-out;
}
#workspaces button:hover {
color: @textcolor1;
background: @workspacesbackground2;
border-radius: 15px;
}
/* -----------------------------------------------------
* Tooltips
* ----------------------------------------------------- */
tooltip {
border-radius: 10px;
background-color: @backgroundlight;
opacity:0.8;
padding:20px;
margin:0px;
}
tooltip label {
color: @textcolor2;
}
/* -----------------------------------------------------
* Window
* ----------------------------------------------------- */
#window {
background: @backgroundlight;
margin: 10px 15px 10px 0px;
padding: 2px 10px 0px 10px;
border-radius: 12px;
color:@textcolor2;
font-size:16px;
font-weight:normal;
}
window#waybar.empty #window {
background-color:transparent;
}
/* -----------------------------------------------------
* Taskbar
* ----------------------------------------------------- */
#taskbar {
background: @backgroundlight;
margin: 6px 15px 6px 0px;
padding:0px;
border-radius: 15px;
font-weight: normal;
font-style: normal;
border: 3px solid @backgroundlight;
}
#taskbar button {
margin:0;
border-radius: 15px;
padding: 0px 5px 0px 5px;
}
/* -----------------------------------------------------
* Modules
* ----------------------------------------------------- */
.modules-left > widget:first-child > #workspaces {
margin-left: 0;
}
.modules-right > widget:last-child > #workspaces {
margin-right: 0;
}
/* -----------------------------------------------------
* Custom Quicklinks
* ----------------------------------------------------- */
#custom-browser,
#custom-filemanager,
#network,
#pulseaudio,
#battery,
#custom-appmenu,
#clock {
margin-right: 20px;
font-size: 20px;
font-weight: bold;
color: @iconcolor;
padding: 4px 10px 2px 10px;
font-size: 16px;
}
#custom-quicklink1,
#custom-quicklink2,
#custom-quicklink3,
#custom-quicklink4,
#custom-quicklink5,
#custom-quicklink6,
#custom-quicklink7,
#custom-quicklink8,
#custom-quicklink9,
#custom-quicklink10 {
padding:0px;
margin-right: 7px;
font-size:20px;
color: @iconcolor;
}
/* -----------------------------------------------------
* Custom Modules
* ----------------------------------------------------- */
#custom-appmenu {
background-color: @backgrounddark;
color: @textcolor1;
border-radius: 15px;
margin: 10px 10px 10px 10px;
}
/* -----------------------------------------------------
* Custom Exit
* ----------------------------------------------------- */
#custom-exit {
margin: 2px 20px 0px 0px;
padding:0px;
font-size:20px;
color: @iconcolor;
}
/* -----------------------------------------------------
* Hardware Group
* ----------------------------------------------------- */
#disk,#memory,#cpu,#language {
margin:0px;
padding:0px;
font-size:16px;
color:@iconcolor;
}
#language {
margin-right:10px;
}
/* -----------------------------------------------------
* Clock
* ----------------------------------------------------- */
#clock {
background-color: @backgrounddark;
font-size: 16px;
color: @textcolor1;
border-radius: 15px;
margin: 10px 7px 10px 0px;
}
/* -----------------------------------------------------
* Pulseaudio
* ----------------------------------------------------- */
#pulseaudio {
background-color: @backgroundlight;
font-size: 16px;
color: @textcolor2;
border-radius: 15px;
margin: 10px 10px 10px 0px;
}
#pulseaudio.muted {
background-color: @backgrounddark;
color: @textcolor1;
}
/* -----------------------------------------------------
* Network
* ----------------------------------------------------- */
#network {
background-color: @backgroundlight;
font-size: 16px;
color: @textcolor2;
border-radius: 15px;
margin: 10px 10px 10px 0px;
}
#network.ethernet {
background-color: @backgroundlight;
color: @textcolor2;
}
#network.wifi {
background-color: @backgroundlight;
color: @textcolor2;
}
/* -----------------------------------------------------
* Bluetooth
* ----------------------------------------------------- */
#bluetooth, #bluetooth.on, #bluetooth.connected {
background-color: @backgroundlight;
font-size: 16px;
color: @textcolor2;
border-radius: 15px;
margin: 10px 15px 10px 0px;
}
#bluetooth.off {
background-color: transparent;
padding: 0px;
margin: 0px;
}
/* -----------------------------------------------------
* Battery
* ----------------------------------------------------- */
#battery {
background-color: @backgroundlight;
font-size: 16px;
color: @textcolor2;
border-radius: 15px;
margin: 10px 15px 10px 0px;
}
#battery.charging, #battery.plugged {
color: @textcolor2;
background-color: @backgroundlight;
}
@keyframes blink {
to {
background-color: @backgroundlight;
color: @textcolor2;
}
}
#battery.critical:not(.charging) {
background-color: #f53c3c;
color: @textcolor3;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
/* -----------------------------------------------------
* Tray
* ----------------------------------------------------- */
#tray {
margin:0px 10px 0px 0px;
}
#tray > .passive {
-gtk-icon-effect: dim;
}
#tray > .needs-attention {
-gtk-icon-effect: highlight;
background-color: #eb4d4b;
}
/* -----------------------------------------------------
* Other
* ----------------------------------------------------- */
label:focus {
background-color: #000000;
}
#backlight {
background-color: #90b1b1;
}
#network {
background-color: #2980b9;
}
#network.disconnected {
background-color: #f53c3c;
}

View File

@ -1,355 +0,0 @@
@import "style.css";
waybar#window {
background-color: @base0B;
}
@define-color base00 #111349;
@define-color base01 #332330;
@define-color base02 #156eb2;
@define-color base03 #66a3da;
@define-color base04 #95bede;
@define-color base05 #e2e1ef;
@define-color base06 #e0e3f4;
@define-color base07 #cce8f6;
@define-color base08 #5196d1;
@define-color base09 #5196cf;
@define-color base0A #5796cc;
@define-color base0B #5595d3;
@define-color base0C #5896c9;
@define-color base0D #5795d0;
@define-color base0E #4f96d8;
@define-color base0F #5894d3;
* {
font-family: "DejaVu Sans";
font-size: 12pt;
}
window#waybar, tooltip {
background: alpha(@base00, 1.000000);
color: @base05;
}
tooltip {
border-color: @base0D;
}
#wireplumber,
#pulseaudio,
#sndio {
padding: 0 5px;
}
#wireplumber.muted,
#pulseaudio.muted,
#sndio.muted {
padding: 0 5px;
}
#upower,
#battery {
padding: 0 5px;
}
#upower.charging,
#battery.Charging {
padding: 0 5px;
}
#network {
padding: 0 5px;
}
#network.disconnected {
padding: 0 5px;
}
#user {
padding: 0 5px;
}
#clock {
padding: 0 5px;
}
#backlight {
padding: 0 5px;
}
#cpu {
padding: 0 5px;
}
#disk {
padding: 0 5px;
}
#idle_inhibitor {
padding: 0 5px;
}
#temperature {
padding: 0 5px;
}
#mpd {
padding: 0 5px;
}
#language {
padding: 0 5px;
}
#keyboard-state {
padding: 0 5px;
}
#memory {
padding: 0 5px;
}
#window {
padding: 0 5px;
}
window .modules-left #workspaces button {
background-color: @base07;
color: @base00;
}
.modules-left #wireplumber,
.modules-left #pulseaudio,
.modules-left #sndio {
background-color: @base09;
color: @base00;
}
.modules-left #workspaces button.focused,
.modules-left #workspaces button.active {
background: @base03;
}
.modules-left #workspaces button.urgent {
background-color: @base08;
}
.modules-left #wireplumber.muted,
.modules-left #pulseaudio.muted,
.modules-left #sndio.muted {
background-color: @base0C;
}
.modules-left #upower,
.modules-left #battery {
background-color: @base0D;
color: @base00;
}
.modules-left #upower.charging,
.modules-left #battery.Charging {
background-color: @base0E;
}
.modules-left #network {
background-color: @base0B;
color: @base00;
}
.modules-left #network.disconnected {
background-color: @base0C;
}
.modules-left #user {
background-color: @base0F;
color: @base00;
}
.modules-left #clock {
background-color: @base03;
color: @base00;
}
.modules-left #backlight {
background-color: @base0E;
color: @base00;
}
.modules-left #cpu {
background-color: @base0B;
color: @base00;
}
.modules-left #disk {
background-color: @base02;
color: @base00;
}
.modules-left #idle_inhibitor {
background-color: @base06;
color: @base00;
}
.modules-left #temperature {
background-color: @base07;
color: @base00;
}
.modules-left #mpd {
background-color: @base02;
color: @base00;
}
.modules-left #language {
background-color: @base02;
color: @base00;
}
.modules-left #keyboard-state {
background-color: @base03;
color: @base00;
}
.modules-left #memory {
background-color: @base09;
color: @base00;
}
.modules-left #window {
background-color: @base0C;
color: @base00;
}
window .modules-center #workspaces button {
background-color: @base07;
color: @base00;
}
.modules-center #wireplumber,
.modules-center #pulseaudio,
.modules-center #sndio {
background-color: @base09;
color: @base00;
}
.modules-center #workspaces button.focused,
.modules-center #workspaces button.active {
background: @base03;
}
.modules-center #workspaces button.urgent {
background-color: @base08;
}
.modules-center #wireplumber.muted,
.modules-center #pulseaudio.muted,
.modules-center #sndio.muted {
background-color: @base0C;
}
.modules-center #upower,
.modules-center #battery {
background-color: @base0D;
color: @base00;
}
.modules-center #upower.charging,
.modules-center #battery.Charging {
background-color: @base0E;
}
.modules-center #network {
background-color: @base0B;
color: @base00;
}
.modules-center #network.disconnected {
background-color: @base0C;
}
.modules-center #user {
background-color: @base0F;
color: @base00;
}
.modules-center #clock {
background-color: @base03;
color: @base00;
}
.modules-center #backlight {
background-color: @base0E;
color: @base00;
}
.modules-center #cpu {
background-color: @base0B;
color: @base00;
}
.modules-center #disk {
background-color: @base02;
color: @base00;
}
.modules-center #idle_inhibitor {
background-color: @base06;
color: @base00;
}
.modules-center #temperature {
background-color: @base07;
color: @base00;
}
.modules-center #mpd {
background-color: @base02;
color: @base00;
}
.modules-center #language {
background-color: @base02;
color: @base00;
}
.modules-center #keyboard-state {
background-color: @base03;
color: @base00;
}
.modules-center #memory {
background-color: @base09;
color: @base00;
}
.modules-center #window {
background-color: @base0C;
color: @base00;
}
window .modules-right #workspaces button {
background-color: @base07;
color: @base00;
}
.modules-right #wireplumber,
.modules-right #pulseaudio,
.modules-right #sndio {
background-color: @base09;
color: @base00;
}
.modules-right #workspaces button.focused,
.modules-right #workspaces button.active {
background: @base03;
}
.modules-right #workspaces button.urgent {
background-color: @base08;
}
.modules-right #wireplumber.muted,
.modules-right #pulseaudio.muted,
.modules-right #sndio.muted {
background-color: @base0C;
}
.modules-right #upower,
.modules-right #battery {
background-color: @base0D;
color: @base00;
}
.modules-right #upower.charging,
.modules-right #battery.Charging {
background-color: @base0E;
}
.modules-right #network {
background-color: @base0B;
color: @base00;
}
.modules-right #network.disconnected {
background-color: @base0C;
}
.modules-right #user {
background-color: @base0F;
color: @base00;
}
.modules-right #clock {
background-color: @base03;
color: @base00;
}
.modules-right #backlight {
background-color: @base0E;
color: @base00;
}
.modules-right #cpu {
background-color: @base0B;
color: @base00;
}
.modules-right #disk {
background-color: @base02;
color: @base00;
}
.modules-right #idle_inhibitor {
background-color: @base06;
color: @base00;
}
.modules-right #temperature {
background-color: @base07;
color: @base00;
}
.modules-right #mpd {
background-color: @base02;
color: @base00;
}
.modules-right #language {
background-color: @base02;
color: @base00;
}
.modules-right #keyboard-state {
background-color: @base03;
color: @base00;
}
.modules-right #memory {
background-color: @base09;
color: @base00;
}
.modules-right #window {
background-color: @base0C;
color: @base00;
}

View File

@ -1,152 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [ waybar ];
programs.waybar = {
enable = true;
settings = {
mainBar = {
layer = "top";
position = "top";
height = 30;
spacing = 30;
margin-left = 0;
margin-right = 0;
modules-left = [ "custom/appmenu" "wlr/taskbar" "hyprland/window" "tray" ];
modules-center = [ "hyprland/workspaces" ];
modules-right = [
"pulseaudio"
"network"
"battery"
"clock"
"custom/power"
];
"hyprland/workspaces" = {
active-only = false;
on-click = "activate";
format = "{}";
format-icons = {
urgent = "";
active = "";
default = "";
};
persistent-workspaces = {
"*" = 3;
};
};
"wlr/taskbar" = {
format = "{icon}";
icon-size = 18;
tooltip-format = "{title}";
on-click = "activate";
on-click-middle = "close";
ignore-list = [
"kitty"
];
app_ids-mapping = {};
rewrite = {};
};
"hyprland/window" = {
rewrite = {};
separate-outputs = true;
};
"custom/appmenu" = {
format = " "; # Manual padding to move it further from left edge
on-click = "wofi --show drun";
};
"custom/exit" = {
format = " "; # Manual padding to move it further from right edge
on-click = "wlogout";
tooltip-format = "Power Menu";
};
keyboard-state = {
numlock = true;
capslock = true;
format = "{name} {icon}";
format-icons = {
locked = " ";
unlocked = " ";
};
};
tray = {
icon-size = 21;
spacing = 10;
};
clock = {
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
format-alt = ''{:%Y-%m-%d}'';
};
battery = {
states = {
warning = 30;
critical = 15;
};
format = ''{capacity}% {icon}'';
format-full = ''{capacity}% {icon}'';
format-charging = ''{capacity}% '';
format-plugged = ''{capacity}% '';
format-alt = ''{time} {icon}'';
format-icons = [ " " " " " " " " " " ];
};
power-profiles-daemon = {
format = ''{icon}'';
tooltip-format = "Power profile: {profile}\nDriver: {driver}";
tooltip = true;
format-icons = {
default = '' '';
performance = '' '';
balanced = '' '';
power-saver = '' '';
};
};
network = {
format-wifi = ''{essid} ({signalStrength}%) '';
format-ethernet = ''{ipaddr}/{cidr} '';
tooltip-format = ''{ifname} via {gwaddr} '';
format-linked = ''{ifname} (No IP) '';
format-disconnected = ''Disconnected '';
format-alt = ''{ifname}: {ipaddr}/{cidr}'';
on-click = "kitty --class floating --override initial_window_width=400 --override initial_window_height=400 --override remember_window_size=false nmtui";
on-click-right = "nm-connection-editor";
};
pulseaudio = {
format = ''{volume}% {icon} {format_source}'';
format-bluetooth = ''{volume}% {icon} {format_source}'';
format-bluetooth-muted = ''{icon} {format_source}'';
format-muted = ''{format_source}'';
format-source = ''{volume}% '';
format-source-muted = '' '';
format-icons = {
headphone = '' '';
hands-free = '' '';
headset = '' '';
phone = '' '';
portable = '' '';
car = '' '';
default = [ "" " " " " ];
};
on-click = ''pavucontrol'';
};
"custom/power" = {
format = '' '';
tooltip = false;
menu = "on-click";
menu-file = ''$HOME/.config/waybar/power_menu.xml'';
menu-actions = {
shutdown = "shutdown";
reboot = "reboot";
suspend = "systemctl suspend";
hibernate = "systemctl hibernate";
};
};
};
};
};
# We want Stylix to do most of the heavy lifting for our styling,
# but we want to add a few snippets. So we're going to run waybar
# with '-c ~/.config/waybar/waybar.css', which will add our snippets
# and then source the original, default '~/.config/waybar/style.css'
# created by Stylix.
# home.file."waybar.css" = {
# target = ".config/waybar/waybar.css";
# source = ./waybar.css;
# };
}

View File

@ -1,18 +0,0 @@
{ pkgs, ... }: {
imports = [
./hyprland.nix
./waybar.nix
./wofi.nix
];
home.packages = with pkgs; [
mako
libnotify
swww
polkit-kde-agent
dolphin
power-profiles-daemon
pavucontrol
grimblast
];
}

View File

@ -1,11 +0,0 @@
{ pkgs, ... }: {
programs.wofi = {
enable = true;
settings = {
show = "drun";
width = "40%";
height = "20%";
allow_markup = true;
};
};
}

View File

@ -1,5 +1,4 @@
{ ... }: {
# Configure audio
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
@ -9,4 +8,4 @@
pulse.enable = true;
jack.enable = true;
};
}
}

View File

@ -0,0 +1,19 @@
{ pkgs, sys, ... }: {
services.goxlr-utility.enable = true;
home-manager.users."${sys.username}" = {
home.packages = with pkgs; [ goxlr-utility ];
systemd.user.services = {
goxlr-utility = {
Unit = {
Description = "Unofficial GoXLR App replacement for Linux, Windows and MacOS";
Documentation = [ "https://github.com/GoXLR-on-Linux/goxlr-utility" ];
};
Service = {
Restart = "always";
RestartSec = 30;
ExecStart = "${pkgs.goxlr-utility}/bin/goxlr-daemon";
};
};
};
};
}

View File

@ -0,0 +1,7 @@
{ ... }: {
services.libinput = {
enable = true;
mouse.naturalScrolling = true;
touchpad.naturalScrolling = true;
};
}

View File

@ -1,9 +1,9 @@
{ pkgs, ... }: {
environment.systemPackages = with pkgs; [ cifs-utils ];
fileSystems =
let
automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s";
permissions_opts = "credentials=/etc/nixos/smb-secrets,uid=1000,gid=1000";
fileSystems =
let
automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s";
permissions_opts = "credentials=/etc/nixos/smb-secrets,uid=1000,gid=1000";
in {
# Pool Media on Paladin
"/mnt/smb/paladin/Media/AV" = {
@ -36,7 +36,7 @@
fsType = "cifs";
options = ["${automount_opts},${permissions_opts}"];
};
# Pool Tank on Paladin
"/mnt/smb/paladin/Tank/AppData" = {
device = "//192.168.1.12/AppData";

View File

@ -0,0 +1,3 @@
{ ... }: {
services.printing.enable = true;
}

View File

@ -0,0 +1,12 @@
{ pkgs, sys, ... }: {
hardware.openrazer = {
enable = true;
users = [ "${sys.username}" ];
batteryNotifier = {
enable = true;
frequency = 600;
percentage = 40;
};
};
environment.systemPackages = [ pkgs.razergenie ];
}

View File

@ -0,0 +1,3 @@
{ ... }: {
hardware.wooting.enable = true;
}

View File

@ -0,0 +1,4 @@
{ pkgs, ... }: {
hardware.xpadneo.enable = true;
environment.systemPackages = [ pkgs.gamepad-tool ];
}

View File

@ -0,0 +1,9 @@
{ sys, ... }: {
networking.firewall = {
allowedTCPPorts = [ 42420 ];
allowedUDPPorts = [ 42420 ];
};
home-manager.users."${sys.username}" = {
services.flatpak.packages = [ "at.vintagestory.VintageStory/x86_64/stable" ];
};
}

View File

@ -0,0 +1,21 @@
{ sys, pkgs, ... }: {
services.flatpak = {
enable = true;
uninstallUnmanaged = true;
remotes = [ { name = "flathub"; location = "https://flathub.org/repo/flathub.flatpakrepo"; } ];
};
home-manager.users."${sys.username}" = {
services.flatpak = {
enable = true;
uninstallUnmanaged = true;
remotes = [ { name = "flathub"; location = "https://flathub.org/repo/flathub.flatpakrepo"; } ];
};
home.packages = with pkgs; [ flatpak ];
};
}
# To use:
# For system packages:
# services.flatpak.packages = [ "com.myproject.app/arch/branch" ];
# For user packages:
# home-manager.users."${sysVars.username}".services.flatpak.packages = [ "com.myproject.app/arch/branch" ];

View File

@ -0,0 +1,14 @@
{ pkgs, sys, ... }: {
# Enable SSH server with exclusively key-based auth
services.openssh = {
enable = true;
settings.PasswordAuthentication = false;
settings.KbdInteractiveAuthentication = false;
};
users.users."${sys.username}".openssh.authorizedKeys.keys = let
authorizedKeys = pkgs.fetchurl {
url = "https://github.com/Jafner.keys";
sha256 = "1i3Vs6mPPl965g3sRmbXGzx6zQBs5geBCgNx2zfpjF4=";
};
in pkgs.lib.splitString "\n" (builtins.readFile authorizedKeys);
}

View File

@ -1,30 +0,0 @@
{ ... }: {
imports = [
./hardware/amdgpu.nix
./hardware/audio.nix
./hardware/boot.nix
./hardware/filesystems.nix
./hardware/networking.nix
./hardware/peripherals.nix
./hardware/samba-client.nix
./services/flatpak.nix
./services/ollama.nix
./services/printing.nix
./services/ssh.nix
./services/syncthing.nix
./services/vintagestory.nix
./services/minecraft-server.nix
./sysconfig/desktop-environment.nix
./sysconfig/fonts.nix
./sysconfig/gaming.nix
./sysconfig/localization.nix
./sysconfig/nixos.nix
./sysconfig/user.nix
./sysconfig/ydotool.nix
];
# DO NOT CHANGE
system.stateVersion = "24.11";
}

View File

@ -1,16 +0,0 @@
{ pkgs, ... }: {
hardware = {
amdgpu.amdvlk.enable = false;
graphics = {
enable = true;
enable32Bit = true;
};
};
environment.systemPackages = with pkgs; [
rocmPackages.rocm-smi
rocmPackages.rocminfo
];
environment.variables = {
AMD_VULKAN_ICD = "RADV";
};
}

View File

@ -1,18 +0,0 @@
{ pkgs, ... }: {
hardware.enableRedistributableFirmware = true;
hardware.cpu.amd.updateMicrocode = true;
boot = {
#kernelPackages = pkgs.linuxKernel.kernels.linux_xanmod_latest
kernelPackages = pkgs.linuxPackages_zen;
initrd = {
availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" ];
kernelModules = [ ];
};
kernelModules = [ "amdgpu" "kvm-amd" ];
extraModulePackages = [ ];
loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
};
}

View File

@ -1,19 +0,0 @@
{ ... }: {
fileSystems."/" = {
device = "/dev/disk/by-uuid/e29ec340-6231-4afe-91a8-aaa2da613282";
fsType = "ext4";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/CC5A-CDFE";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
fileSystems."/mnt/fedora" = {
device = "/dev/disk/by-uuid/15454185-1268-4559-a074-bb154dc20a93";
fsType = "btrfs";
};
swapDevices = [ { device = "/dev/disk/by-uuid/73e8e737-1c5c-4ead-80c6-e616be538145"; } ];
}

View File

@ -1,11 +0,0 @@
{ pkgs, lib, ... }: {
networking = {
hostName = "joey-desktop-nixos";
networkmanager.enable = true;
useDHCP = lib.mkDefault true;
};
# Configure system packages
environment.systemPackages = with pkgs; [
networkmanagerapplet
];
}

View File

@ -1,25 +0,0 @@
{ pkgs, ... }: {
# Configure mouse and touchpad
services.libinput = {
enable = true;
mouse.naturalScrolling = true;
touchpad.naturalScrolling = true;
};
services.goxlr-utility.enable = true;
hardware.wooting.enable = true;
hardware.xpadneo.enable = true;
hardware.openrazer = {
enable = true;
users = [ "joey" ];
batteryNotifier = {
enable = true;
frequency = 600;
percentage = 40;
};
};
environment.systemPackages = with pkgs; [
razergenie
gamepad-tool
linuxKernel.packages.linux_6_11.xpadneo
];
}

View File

@ -1,7 +0,0 @@
{ ... }: {
services.flatpak = {
enable = true;
uninstallUnmanaged = true;
remotes = [ { name = "flathub"; location = "https://flathub.org/repo/flathub.flatpakrepo"; } ];
};
}

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