Compare commits
2 commits
8761dae20c
...
743258bb44
Author | SHA1 | Date | |
---|---|---|---|
743258bb44 | |||
e23ee8e96e |
29 changed files with 1290 additions and 589 deletions
832
flake.lock
832
flake.lock
File diff suppressed because it is too large
Load diff
276
flake.nix
276
flake.nix
|
@ -1,151 +1,189 @@
|
||||||
{
|
{
|
||||||
description = "Your new nix config";
|
description = "GHOSCHT's NixOS config";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
# Nixpkgs
|
# Nixpkgs
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
|
||||||
# You can access packages and modules from different nixpkgs revs
|
|
||||||
# at the same time. Here's an working example:
|
|
||||||
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
# Also see the 'unstable-packages' overlay at 'overlays/default.nix'.
|
|
||||||
|
|
||||||
# Home manager
|
# Home manager
|
||||||
home-manager.url = "github:nix-community/home-manager/release-24.11";
|
home-manager = {
|
||||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
url = "github:nix-community/home-manager/release-24.11";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
hardware.url = "github:nixos/nixos-hardware";
|
hardware = {
|
||||||
|
url = "github:nixos/nixos-hardware";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
disko = {
|
disko = {
|
||||||
url = "github:nix-community/disko";
|
url = "github:nix-community/disko";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
nix-colors.url = "github:misterio77/nix-colors";
|
|
||||||
firefox-addons = {
|
firefox-addons = {
|
||||||
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
|
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
arkenfox = {
|
arkenfox = {
|
||||||
url = "github:dwarfmaster/arkenfox-nixos";
|
url = "github:dwarfmaster/arkenfox-nixos";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
xremap.url = "github:xremap/nix-flake";
|
|
||||||
flatpaks.url = "github:GermanBread/declarative-flatpak/stable-v3";
|
|
||||||
heliox-cli.url = "git+https://git.ghoscht.com/heliox/cli?ref=custom-dimming";
|
|
||||||
picokontroller.url = "git+https://git.ghoscht.com/ghoscht/picoKontroller";
|
|
||||||
sops-nix.url = "github:Mic92/sops-nix";
|
|
||||||
arion.url = "github:hercules-ci/arion";
|
|
||||||
};
|
|
||||||
|
|
||||||
outputs = {
|
xremap = {
|
||||||
self,
|
url = "github:xremap/nix-flake";
|
||||||
nixpkgs,
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
home-manager,
|
|
||||||
...
|
|
||||||
} @ inputs: let
|
|
||||||
inherit (self) outputs;
|
|
||||||
# Supported systems for your flake packages, shell, etc.
|
|
||||||
systems = [
|
|
||||||
"aarch64-linux"
|
|
||||||
"i686-linux"
|
|
||||||
"x86_64-linux"
|
|
||||||
"aarch64-darwin"
|
|
||||||
"x86_64-darwin"
|
|
||||||
];
|
|
||||||
# This is a function that generates an attribute by calling a function you
|
|
||||||
# pass to it, with each system as an argument
|
|
||||||
forAllSystems = nixpkgs.lib.genAttrs systems;
|
|
||||||
vars = import ./vars.nix;
|
|
||||||
in {
|
|
||||||
# Your custom packages
|
|
||||||
# Accessible through 'nix build', 'nix shell', etc
|
|
||||||
packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system});
|
|
||||||
# Formatter for your nix files, available through 'nix fmt'
|
|
||||||
# Other options beside 'alejandra' include 'nixpkgs-fmt'
|
|
||||||
formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra);
|
|
||||||
|
|
||||||
# Your custom packages and modifications, exported as overlays
|
|
||||||
overlays = import ./overlays {inherit inputs;};
|
|
||||||
# Reusable nixos modules you might want to export
|
|
||||||
# These are usually stuff you would upstream into nixpkgs
|
|
||||||
nixosModules = import ./modules/nixos;
|
|
||||||
# Reusable home-manager modules you might want to export
|
|
||||||
# These are usually stuff you would upstream into home-manager
|
|
||||||
homeManagerModules = import ./modules/home-manager;
|
|
||||||
|
|
||||||
# NixOS configuration entrypoint
|
|
||||||
# Available through 'nixos-rebuild --flake .#your-hostname'
|
|
||||||
nixosConfigurations = {
|
|
||||||
adalbert = nixpkgs.lib.nixosSystem {
|
|
||||||
specialArgs = {inherit inputs outputs vars;};
|
|
||||||
modules = [
|
|
||||||
./hosts/adalbert
|
|
||||||
];
|
|
||||||
};
|
|
||||||
ludwig = nixpkgs.lib.nixosSystem {
|
|
||||||
specialArgs = {inherit inputs outputs vars;};
|
|
||||||
modules = [
|
|
||||||
./hosts/ludwig
|
|
||||||
];
|
|
||||||
};
|
|
||||||
leopold = nixpkgs.lib.nixosSystem {
|
|
||||||
specialArgs = {inherit inputs outputs vars;};
|
|
||||||
modules = [
|
|
||||||
./hosts/leopold
|
|
||||||
];
|
|
||||||
};
|
|
||||||
franz = nixpkgs.lib.nixosSystem {
|
|
||||||
specialArgs = {inherit inputs outputs vars;};
|
|
||||||
modules = [
|
|
||||||
./hosts/franz
|
|
||||||
];
|
|
||||||
};
|
|
||||||
# build with nix build .#nixosConfigurations.eustachius.config.system.build.sdImage
|
|
||||||
eustachius = nixpkgs.lib.nixosSystem {
|
|
||||||
system = "aarch64-linux";
|
|
||||||
modules = [
|
|
||||||
"${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64-installer.nix"
|
|
||||||
./hosts/eustachius
|
|
||||||
|
|
||||||
# extra config for sdImage generator
|
|
||||||
{
|
|
||||||
sdImage.compressImage = false;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Standalone home-manager configuration entrypoint
|
flatpaks = {
|
||||||
# Available through 'home-manager --flake .#your-username@your-hostname'
|
url = "github:GermanBread/declarative-flatpak/stable-v3";
|
||||||
homeConfigurations = {
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
"${vars.user}@adalbert" = home-manager.lib.homeManagerConfiguration {
|
};
|
||||||
|
|
||||||
|
heliox-cli = {
|
||||||
|
url = "git+https://git.ghoscht.com/heliox/cli?ref=custom-dimming";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
picokontroller = {
|
||||||
|
url = "git+https://git.ghoscht.com/ghoscht/picoKontroller";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
sops-nix = {
|
||||||
|
url = "github:Mic92/sops-nix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
arion = {
|
||||||
|
url = "github:hercules-ci/arion";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
stylix = {
|
||||||
|
url = "github:danth/stylix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
nixvim = {
|
||||||
|
url = "github:nix-community/nixvim/nixos-24.11";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs =
|
||||||
|
{ self
|
||||||
|
, nixpkgs
|
||||||
|
, home-manager
|
||||||
|
, ...
|
||||||
|
} @ inputs:
|
||||||
|
let
|
||||||
|
inherit (self) outputs;
|
||||||
|
# Supported systems for your flake packages, shell, etc.
|
||||||
|
systems = [
|
||||||
|
"aarch64-linux"
|
||||||
|
"i686-linux"
|
||||||
|
"x86_64-linux"
|
||||||
|
"aarch64-darwin"
|
||||||
|
"x86_64-darwin"
|
||||||
|
];
|
||||||
|
# This is a function that generates an attribute by calling a function you
|
||||||
|
# pass to it, with each system as an argument
|
||||||
|
forAllSystems = nixpkgs.lib.genAttrs systems;
|
||||||
|
vars = import ./vars.nix;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
# Your custom packages
|
||||||
|
# Accessible through 'nix build', 'nix shell', etc
|
||||||
|
packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system});
|
||||||
|
# Formatter for your nix files, available through 'nix fmt'
|
||||||
|
# Other options beside 'alejandra' include 'nixpkgs-fmt'
|
||||||
|
formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra);
|
||||||
|
|
||||||
|
# Your custom packages and modifications, exported as overlays
|
||||||
|
overlays = import ./overlays { inherit inputs; };
|
||||||
|
# Reusable nixos modules you might want to export
|
||||||
|
# These are usually stuff you would upstream into nixpkgs
|
||||||
|
nixosModules = import ./modules/nixos;
|
||||||
|
# Reusable home-manager modules you might want to export
|
||||||
|
# These are usually stuff you would upstream into home-manager
|
||||||
|
homeManagerModules = import ./modules/home-manager;
|
||||||
|
|
||||||
|
# NixOS configuration entrypoint
|
||||||
|
# Available through 'nixos-rebuild --flake .#your-hostname'
|
||||||
|
nixosConfigurations = {
|
||||||
|
adalbert = nixpkgs.lib.nixosSystem {
|
||||||
|
specialArgs = { inherit inputs outputs vars; };
|
||||||
|
modules = [
|
||||||
|
./hosts/adalbert
|
||||||
|
];
|
||||||
|
};
|
||||||
|
ludwig = nixpkgs.lib.nixosSystem {
|
||||||
|
specialArgs = { inherit inputs outputs vars; };
|
||||||
|
modules = [
|
||||||
|
./hosts/ludwig
|
||||||
|
];
|
||||||
|
};
|
||||||
|
leopold = nixpkgs.lib.nixosSystem {
|
||||||
|
specialArgs = { inherit inputs outputs vars; };
|
||||||
|
modules = [
|
||||||
|
./hosts/leopold
|
||||||
|
];
|
||||||
|
};
|
||||||
|
franz = nixpkgs.lib.nixosSystem {
|
||||||
|
specialArgs = { inherit inputs outputs vars; };
|
||||||
|
modules = [
|
||||||
|
./hosts/franz
|
||||||
|
];
|
||||||
|
};
|
||||||
|
# build with nix build .#nixosConfigurations.eustachius.config.system.build.sdImage
|
||||||
|
eustachius = nixpkgs.lib.nixosSystem {
|
||||||
|
system = "aarch64-linux";
|
||||||
|
modules = [
|
||||||
|
"${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64-installer.nix"
|
||||||
|
./hosts/eustachius
|
||||||
|
|
||||||
|
# extra config for sdImage generator
|
||||||
|
{
|
||||||
|
sdImage.compressImage = false;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Standalone home-manager configuration entrypoint
|
||||||
|
# Available through 'home-manager --flake .#your-username@your-hostname'
|
||||||
|
homeConfigurations = {
|
||||||
|
"${vars.user}@adalbert" = home-manager.lib.homeManagerConfiguration {
|
||||||
|
pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance
|
||||||
|
extraSpecialArgs = { inherit inputs outputs vars; };
|
||||||
|
modules = [
|
||||||
|
./home/adalbert.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"${vars.user}@ludwig" = home-manager.lib.homeManagerConfiguration {
|
||||||
pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance
|
pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance
|
||||||
extraSpecialArgs = {inherit inputs outputs vars;};
|
extraSpecialArgs = { inherit inputs outputs vars; };
|
||||||
modules = [
|
modules = [
|
||||||
./home/adalbert.nix
|
./home/ludwig.nix
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
"${vars.user}@franz" = home-manager.lib.homeManagerConfiguration {
|
||||||
|
pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance
|
||||||
|
extraSpecialArgs = { inherit inputs outputs vars; };
|
||||||
|
modules = [
|
||||||
|
./home/franz.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
# "${vars.user}@eustachius" = home-manager.lib.homeManagerConfiguration {
|
||||||
|
# pkgs = nixpkgs.legacyPackages.aarch64-linux; # Home-manager requires 'pkgs' instance
|
||||||
|
# extraSpecialArgs = {inherit inputs outputs vars;};
|
||||||
|
# modules = [
|
||||||
|
# ./home/eustachius.nix
|
||||||
|
# ];
|
||||||
|
# };
|
||||||
};
|
};
|
||||||
"${vars.user}@ludwig" = home-manager.lib.homeManagerConfiguration {
|
|
||||||
pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance
|
|
||||||
extraSpecialArgs = {inherit inputs outputs vars;};
|
|
||||||
modules = [
|
|
||||||
./home/ludwig.nix
|
|
||||||
];
|
|
||||||
};
|
|
||||||
"${vars.user}@franz" = home-manager.lib.homeManagerConfiguration {
|
|
||||||
pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance
|
|
||||||
extraSpecialArgs = {inherit inputs outputs vars;};
|
|
||||||
modules = [
|
|
||||||
./home/franz.nix
|
|
||||||
];
|
|
||||||
};
|
|
||||||
# "${vars.user}@eustachius" = home-manager.lib.homeManagerConfiguration {
|
|
||||||
# pkgs = nixpkgs.legacyPackages.aarch64-linux; # Home-manager requires 'pkgs' instance
|
|
||||||
# extraSpecialArgs = {inherit inputs outputs vars;};
|
|
||||||
# modules = [
|
|
||||||
# ./home/eustachius.nix
|
|
||||||
# ];
|
|
||||||
# };
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,11 +11,8 @@ in {
|
||||||
./features/games
|
./features/games
|
||||||
./features/coding
|
./features/coding
|
||||||
./features/desktop/common/3d-printing.nix
|
./features/desktop/common/3d-printing.nix
|
||||||
inputs.nix-colors.homeManagerModules.default
|
|
||||||
];
|
];
|
||||||
|
|
||||||
colorScheme = inputs.nix-colors.colorSchemes.catppuccin-mocha;
|
|
||||||
|
|
||||||
home.packages = [
|
home.packages = [
|
||||||
inputs.picokontroller.packages.x86_64-linux.default
|
inputs.picokontroller.packages.x86_64-linux.default
|
||||||
# pkgs.citrix_workspace
|
# pkgs.citrix_workspace
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
{
|
{
|
||||||
programs.bat = {
|
programs.bat = {
|
||||||
enable = true;
|
enable = true;
|
||||||
config.theme = "base16";
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
programs.btop = {
|
programs.btop = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
color_theme = "nix-colors";
|
|
||||||
theme_background = false;
|
theme_background = false;
|
||||||
truecolor = true;
|
truecolor = true;
|
||||||
vim_keys = true;
|
vim_keys = true;
|
||||||
|
@ -10,89 +9,4 @@
|
||||||
proc_gradient = false;
|
proc_gradient = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
xdg.configFile."btop/themes/nix-colors".text = ''
|
|
||||||
# Main background, empty for terminal default, need to be empty if you want transparent background
|
|
||||||
# theme[main_bg]="#${config.colorScheme.colors.base00}"
|
|
||||||
|
|
||||||
# Main text color
|
|
||||||
theme[main_fg]="#${config.colorScheme.colors.base05}"
|
|
||||||
|
|
||||||
# Title color for boxes
|
|
||||||
theme[title]="#${config.colorScheme.colors.base05}"
|
|
||||||
|
|
||||||
# Highlight color for keyboard shortcuts
|
|
||||||
theme[hi_fg]="#${config.colorScheme.colors.base0D}"
|
|
||||||
|
|
||||||
# Background color of selected item in processes box
|
|
||||||
theme[selected_bg]="#${config.colorScheme.colors.base03}"
|
|
||||||
|
|
||||||
# Foreground color of selected item in processes box
|
|
||||||
theme[selected_fg]="#${config.colorScheme.colors.base0D}"
|
|
||||||
|
|
||||||
# Color of inactive/disabled text
|
|
||||||
theme[inactive_fg]="#${config.colorScheme.colors.base02}"
|
|
||||||
|
|
||||||
# Color of text appearing on top of graphs, i.e uptime and current network graph scaling
|
|
||||||
theme[graph_text]="#${config.colorScheme.colors.base06}"
|
|
||||||
|
|
||||||
# Background color of the percentage meters
|
|
||||||
theme[meter_bg]="#${config.colorScheme.colors.base03}"
|
|
||||||
|
|
||||||
# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
|
|
||||||
theme[proc_misc]="#${config.colorScheme.colors.base06}"
|
|
||||||
|
|
||||||
# CPU, Memory, Network, Proc box outline colors
|
|
||||||
theme[cpu_box]="#${config.colorScheme.colors.base0E}" #Mauve
|
|
||||||
theme[mem_box]="#${config.colorScheme.colors.base0B}" #Green
|
|
||||||
theme[net_box]="#${config.colorScheme.colors.base08}" #Maroon
|
|
||||||
theme[proc_box]="#${config.colorScheme.colors.base0D}" #Blue
|
|
||||||
|
|
||||||
# Box divider line and small boxes line color
|
|
||||||
theme[div_line]="#${config.colorScheme.colors.base04}"
|
|
||||||
|
|
||||||
# Temperature graph color (Green -> Yellow -> Red)
|
|
||||||
theme[temp_start]="#${config.colorScheme.colors.base0B}"
|
|
||||||
theme[temp_mid]="#${config.colorScheme.colors.base0A}"
|
|
||||||
theme[temp_end]="#${config.colorScheme.colors.base08}"
|
|
||||||
|
|
||||||
# CPU graph colors (Teal -> Lavender)
|
|
||||||
theme[cpu_start]="#${config.colorScheme.colors.base0C}"
|
|
||||||
theme[cpu_mid]="#${config.colorScheme.colors.base0D}"
|
|
||||||
theme[cpu_end]="#${config.colorScheme.colors.base07}"
|
|
||||||
|
|
||||||
# Mem/Disk free meter (Mauve -> Lavender -> Blue)
|
|
||||||
theme[free_start]="#${config.colorScheme.colors.base0E}"
|
|
||||||
theme[free_mid]="#${config.colorScheme.colors.base07}"
|
|
||||||
theme[free_end]="#${config.colorScheme.colors.base0D}"
|
|
||||||
|
|
||||||
# Mem/Disk cached meter (Sapphire -> Lavender)
|
|
||||||
theme[cached_start]="#${config.colorScheme.colors.base0D}"
|
|
||||||
theme[cached_mid]="#${config.colorScheme.colors.base0D}"
|
|
||||||
theme[cached_end]="#${config.colorScheme.colors.base07}"
|
|
||||||
|
|
||||||
# Mem/Disk available meter (Peach -> Red)
|
|
||||||
theme[available_start]="#${config.colorScheme.colors.base0F}"
|
|
||||||
theme[available_mid]="#${config.colorScheme.colors.base09}"
|
|
||||||
theme[available_end]="#${config.colorScheme.colors.base08}"
|
|
||||||
|
|
||||||
# Mem/Disk used meter (Green -> Sky)
|
|
||||||
theme[used_start]="#${config.colorScheme.colors.base0B}"
|
|
||||||
theme[used_mid]="#${config.colorScheme.colors.base0C}"
|
|
||||||
theme[used_end]="#${config.colorScheme.colors.base0D}"
|
|
||||||
|
|
||||||
# Download graph colors (Peach -> Red)
|
|
||||||
theme[download_start]="#${config.colorScheme.colors.base0F}"
|
|
||||||
theme[download_mid]="#${config.colorScheme.colors.base09}"
|
|
||||||
theme[download_end]="#${config.colorScheme.colors.base08}"
|
|
||||||
|
|
||||||
# Upload graph colors (Green -> Sky)
|
|
||||||
theme[upload_start]="#${config.colorScheme.colors.base0B}"
|
|
||||||
theme[upload_mid]="#${config.colorScheme.colors.base0C}"
|
|
||||||
theme[upload_end]="#${config.colorScheme.colors.base0D}"
|
|
||||||
|
|
||||||
# Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve)
|
|
||||||
theme[process_start]="#${config.colorScheme.colors.base0D}"
|
|
||||||
theme[process_mid]="#${config.colorScheme.colors.base0C}"
|
|
||||||
theme[process_end]="#${config.colorScheme.colors.base0E}"
|
|
||||||
'';
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,21 +1,5 @@
|
||||||
{config, ...}: {
|
{config, ...}: {
|
||||||
programs.lazygit = {
|
programs.lazygit = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = with config.colorScheme.colors; {
|
|
||||||
gui = {
|
|
||||||
theme = {
|
|
||||||
activeBorderColor = ["#${base0D}" "bold"];
|
|
||||||
inactiveBorderColor = ["#${base05}"];
|
|
||||||
optionsTextColor = ["#${base0D}"];
|
|
||||||
selectedLineBgColor = ["${base02}"];
|
|
||||||
selectedRangeBgColor = ["${base02}"];
|
|
||||||
cherryPickedCommitBgColor = ["#${base03}"];
|
|
||||||
cherryPickedCommitFgColor = ["#${base0D}"];
|
|
||||||
unstagedChangesColor = ["#${base08}"];
|
|
||||||
defaultFgColor = ["#${base05}"];
|
|
||||||
searchingActiveBorderColor = ["#${base0A}"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
imports = [
|
imports = [
|
||||||
./nvim
|
# ./nvim
|
||||||
|
./nixvim
|
||||||
./vscode.nix
|
./vscode.nix
|
||||||
./intellij.nix
|
./intellij.nix
|
||||||
./tmux.nix
|
./tmux.nix
|
||||||
|
|
95
home/features/coding/nixvim/cmp.nix
Normal file
95
home/features/coding/nixvim/cmp.nix
Normal file
|
@ -0,0 +1,95 @@
|
||||||
|
{
|
||||||
|
programs.nixvim.plugins = {
|
||||||
|
cmp-emoji = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
cmp = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
completion = {
|
||||||
|
completeopt = "menu,menuone,noinsert";
|
||||||
|
};
|
||||||
|
autoEnableSources = true;
|
||||||
|
experimental = {ghost_text = true;};
|
||||||
|
performance = {
|
||||||
|
debounce = 60;
|
||||||
|
fetchingTimeout = 200;
|
||||||
|
maxViewEntries = 30;
|
||||||
|
};
|
||||||
|
snippet = {
|
||||||
|
expand = ''
|
||||||
|
function(args)
|
||||||
|
require('luasnip').lsp_expand(args.body)
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
formatting = {fields = ["kind" "abbr" "menu"];};
|
||||||
|
sources = [
|
||||||
|
{name = "nvim_lsp";}
|
||||||
|
{name = "emoji";}
|
||||||
|
{
|
||||||
|
name = "buffer"; # text within current buffer
|
||||||
|
option.get_bufnrs.__raw = "vim.api.nvim_list_bufs";
|
||||||
|
keywordLength = 3;
|
||||||
|
}
|
||||||
|
# { name = "copilot"; } # enable/disable copilot
|
||||||
|
{
|
||||||
|
name = "path"; # file system paths
|
||||||
|
keywordLength = 3;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "luasnip"; # snippets
|
||||||
|
keywordLength = 3;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
window = {
|
||||||
|
completion = {border = "solid";};
|
||||||
|
documentation = {border = "solid";};
|
||||||
|
};
|
||||||
|
|
||||||
|
mapping = {
|
||||||
|
"<Tab>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})";
|
||||||
|
"<C-j>" = "cmp.mapping.select_next_item()";
|
||||||
|
"<C-k>" = "cmp.mapping.select_prev_item()";
|
||||||
|
"<C-e>" = "cmp.mapping.abort()";
|
||||||
|
"<C-b>" = "cmp.mapping.scroll_docs(-4)";
|
||||||
|
"<C-f>" = "cmp.mapping.scroll_docs(4)";
|
||||||
|
"<C-Space>" = "cmp.mapping.complete()";
|
||||||
|
"<CR>" = "cmp.mapping.confirm({ select = true })";
|
||||||
|
"<S-CR>" = "cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true })";
|
||||||
|
"<C-l>" = ''
|
||||||
|
cmp.mapping(function()
|
||||||
|
if luasnip.expand_or_locally_jumpable() then
|
||||||
|
luasnip.expand_or_jump()
|
||||||
|
end
|
||||||
|
end, { 'i', 's' })
|
||||||
|
'';
|
||||||
|
"<C-h>" = ''
|
||||||
|
cmp.mapping(function()
|
||||||
|
if luasnip.locally_jumpable(-1) then
|
||||||
|
luasnip.jump(-1)
|
||||||
|
end
|
||||||
|
end, { 'i', 's' })
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
cmp-nvim-lsp = {
|
||||||
|
enable = true; # LSP
|
||||||
|
};
|
||||||
|
cmp-buffer = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
cmp-path = {
|
||||||
|
enable = true; # file system paths
|
||||||
|
};
|
||||||
|
cmp_luasnip = {
|
||||||
|
enable = true; # snippets
|
||||||
|
};
|
||||||
|
cmp-cmdline = {
|
||||||
|
enable = true; # autocomplete for cmdline
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
12
home/features/coding/nixvim/default.nix
Normal file
12
home/features/coding/nixvim/default.nix
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{inputs, ...}: {
|
||||||
|
imports = [
|
||||||
|
inputs.nixvim.homeManagerModules.nixvim
|
||||||
|
./options.nix
|
||||||
|
./plugins.nix
|
||||||
|
./cmp.nix
|
||||||
|
./lsp.nix
|
||||||
|
./none-ls.nix
|
||||||
|
./keymaps.nix
|
||||||
|
];
|
||||||
|
programs.nixvim.enable = true;
|
||||||
|
}
|
112
home/features/coding/nixvim/keymaps.nix
Normal file
112
home/features/coding/nixvim/keymaps.nix
Normal file
|
@ -0,0 +1,112 @@
|
||||||
|
{
|
||||||
|
programs.nixvim.keymaps = [
|
||||||
|
{
|
||||||
|
mode = [
|
||||||
|
"n"
|
||||||
|
"v"
|
||||||
|
];
|
||||||
|
key = "<leader>fc";
|
||||||
|
action = "<cmd>lua vim.lsp.buf.format()<cr>";
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
desc = "Format Code";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>ch";
|
||||||
|
action = "<cmd>noh<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Clear Highlighting";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<C-p>";
|
||||||
|
action = "<cmd>Telescope live_grep<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Telescope LiveGrep";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>fg";
|
||||||
|
action = "<cmd>Telescope find_files<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Telescope File Search";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<C-n>";
|
||||||
|
action = "<Cmd>Neotree toggle<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Toggle Neotree";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader><tab><tab>";
|
||||||
|
action = "<cmd>tabnew<cr>";
|
||||||
|
options = {
|
||||||
|
desc = "New Tab";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader><tab>]";
|
||||||
|
action = "<cmd>BufferNext<cr>";
|
||||||
|
options = {
|
||||||
|
desc = "Next Tab";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader><tab>d";
|
||||||
|
action = "<cmd>BufferClose<cr>";
|
||||||
|
options = {
|
||||||
|
desc = "Close Tab";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader><tab>[";
|
||||||
|
action = "<cmd>BufferPrevious<cr>";
|
||||||
|
options = {
|
||||||
|
desc = "Previous Tab";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<c-k>";
|
||||||
|
action = ":wincmd k<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Go Up";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<c-j>";
|
||||||
|
action = ":wincmd j<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Go Down";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<c-h>";
|
||||||
|
action = ":wincmd h<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Go Left";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<c-l>";
|
||||||
|
action = ":wincmd l<CR>";
|
||||||
|
options = {
|
||||||
|
desc = "Go Right";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
25
home/features/coding/nixvim/lsp.nix
Normal file
25
home/features/coding/nixvim/lsp.nix
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
{
|
||||||
|
programs.nixvim.plugins.lsp = {
|
||||||
|
enable = true;
|
||||||
|
inlayHints = true;
|
||||||
|
|
||||||
|
servers = {
|
||||||
|
ts_ls.enable = true; # TS/JS
|
||||||
|
cssls.enable = true; # CSS
|
||||||
|
html.enable = true; # HTML
|
||||||
|
pyright.enable = true; # Python
|
||||||
|
marksman.enable = true; # Markdown
|
||||||
|
nil_ls.enable = true; # Nix
|
||||||
|
dockerls.enable = true; # Docker
|
||||||
|
bashls.enable = true; # Bash
|
||||||
|
clangd.enable = true; # C/C++
|
||||||
|
yamlls.enable = true; # YAML
|
||||||
|
|
||||||
|
lua_ls = {
|
||||||
|
# Lua
|
||||||
|
enable = true;
|
||||||
|
settings.telemetry.enable = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
42
home/features/coding/nixvim/none-ls.nix
Normal file
42
home/features/coding/nixvim/none-ls.nix
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
{
|
||||||
|
programs.nixvim.plugins = {
|
||||||
|
none-ls = {
|
||||||
|
enable = true;
|
||||||
|
sources = {
|
||||||
|
code_actions = {
|
||||||
|
statix.enable = true;
|
||||||
|
gitsigns.enable = true;
|
||||||
|
};
|
||||||
|
diagnostics = {
|
||||||
|
statix.enable = true;
|
||||||
|
deadnix.enable = true;
|
||||||
|
pylint.enable = true;
|
||||||
|
checkstyle.enable = true;
|
||||||
|
};
|
||||||
|
formatting = {
|
||||||
|
alejandra.enable = true;
|
||||||
|
stylua.enable = true;
|
||||||
|
shfmt.enable = true;
|
||||||
|
nixpkgs_fmt.enable = true;
|
||||||
|
google_java_format.enable = false;
|
||||||
|
prettier = {
|
||||||
|
enable = true;
|
||||||
|
disableTsServerFormatter = true;
|
||||||
|
};
|
||||||
|
black = {
|
||||||
|
enable = true;
|
||||||
|
settings = ''
|
||||||
|
{
|
||||||
|
extra_args = { "--fast" },
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
completion = {
|
||||||
|
luasnip.enable = true;
|
||||||
|
spell.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
52
home/features/coding/nixvim/options.nix
Normal file
52
home/features/coding/nixvim/options.nix
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
config = {
|
||||||
|
# System clipboard support, needs xclip/wl-clipboard
|
||||||
|
clipboard = {
|
||||||
|
providers = {
|
||||||
|
wl-copy.enable = true; # Wayland
|
||||||
|
xsel.enable = true; # For X11
|
||||||
|
};
|
||||||
|
register = "unnamedplus";
|
||||||
|
};
|
||||||
|
globals.mapleader = " ";
|
||||||
|
opts = {
|
||||||
|
number = true; # Show line numbers
|
||||||
|
relativenumber = true; # Show relative line numbers
|
||||||
|
shiftwidth = 2; # Tab width should be 2
|
||||||
|
|
||||||
|
# Always show the signcolumn, otherwise text would be shifted when displaying error icons
|
||||||
|
signcolumn = "yes";
|
||||||
|
|
||||||
|
# Enable mouse
|
||||||
|
mouse = "a";
|
||||||
|
|
||||||
|
# Search
|
||||||
|
ignorecase = true;
|
||||||
|
smartcase = true;
|
||||||
|
|
||||||
|
# Save undo history
|
||||||
|
undofile = true;
|
||||||
|
|
||||||
|
# Global substitution by default
|
||||||
|
gdefault = true;
|
||||||
|
|
||||||
|
# Start scrolling when the cursor is X lines away from the top/bottom
|
||||||
|
scrolloff = 8;
|
||||||
|
|
||||||
|
# Enable 24-bit RGB color in the TUI
|
||||||
|
termguicolors = true;
|
||||||
|
|
||||||
|
# Wrap long lines at a character in 'breakat'
|
||||||
|
linebreak = true;
|
||||||
|
|
||||||
|
smartindent = true;
|
||||||
|
|
||||||
|
# Remove EOB
|
||||||
|
fillchars = {
|
||||||
|
eob = " ";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
112
home/features/coding/nixvim/plugins.nix
Normal file
112
home/features/coding/nixvim/plugins.nix
Normal file
|
@ -0,0 +1,112 @@
|
||||||
|
{ pkgs, ... }: {
|
||||||
|
programs.nixvim.plugins = {
|
||||||
|
lualine.enable = true;
|
||||||
|
oil.enable = true;
|
||||||
|
nvim-surround.enable = true;
|
||||||
|
|
||||||
|
treesitter = {
|
||||||
|
enable = true;
|
||||||
|
grammarPackages = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [
|
||||||
|
markdown
|
||||||
|
# nix
|
||||||
|
vim
|
||||||
|
bash
|
||||||
|
lua
|
||||||
|
python
|
||||||
|
json
|
||||||
|
java
|
||||||
|
rust
|
||||||
|
cpp
|
||||||
|
c
|
||||||
|
css
|
||||||
|
csv
|
||||||
|
dockerfile
|
||||||
|
diff
|
||||||
|
gitignore
|
||||||
|
git_config
|
||||||
|
gitattributes
|
||||||
|
make
|
||||||
|
yaml
|
||||||
|
toml
|
||||||
|
typescript
|
||||||
|
xml
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Autopairs
|
||||||
|
nvim-autopairs = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
luasnip.enable = true;
|
||||||
|
lazygit.enable = true;
|
||||||
|
barbar.enable = true;
|
||||||
|
rainbow-delimiters.enable = true;
|
||||||
|
web-devicons.enable = true;
|
||||||
|
|
||||||
|
telescope = {
|
||||||
|
enable = true;
|
||||||
|
extensions = {
|
||||||
|
fzf-native = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Dashboard
|
||||||
|
alpha = {
|
||||||
|
enable = true;
|
||||||
|
theme = "dashboard";
|
||||||
|
};
|
||||||
|
# File tree
|
||||||
|
neo-tree = {
|
||||||
|
enable = true;
|
||||||
|
enableDiagnostics = false;
|
||||||
|
enableGitStatus = true;
|
||||||
|
enableModifiedMarkers = true;
|
||||||
|
enableRefreshOnWrite = true;
|
||||||
|
closeIfLastWindow = true;
|
||||||
|
popupBorderStyle = "rounded"; # Type: null or one of “NC”, “double”, “none”, “rounded”, “shadow”, “single”, “solid” or raw lua code
|
||||||
|
buffers = {
|
||||||
|
bindToCwd = false;
|
||||||
|
followCurrentFile = {
|
||||||
|
enabled = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
window = {
|
||||||
|
width = 40;
|
||||||
|
height = 15;
|
||||||
|
autoExpandWidth = false;
|
||||||
|
mappings = {
|
||||||
|
"<space>" = "none";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Todo comments
|
||||||
|
todo-comments = {
|
||||||
|
enable = true;
|
||||||
|
settings.colors = {
|
||||||
|
error = [ "DiagnosticError" "ErrorMsg" "#DC2626" ];
|
||||||
|
warning = [ "DiagnosticWarn" "WarningMsg" "#FBBF24" ];
|
||||||
|
info = [ "DiagnosticInfo" "#2563EB" ];
|
||||||
|
hint = [ "DiagnosticHint" "#10B981" ];
|
||||||
|
default = [ "Identifier" "#7C3AED" ];
|
||||||
|
test = [ "Identifier" "#FF00FF" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Highlight word under cursor
|
||||||
|
illuminate = {
|
||||||
|
enable = true;
|
||||||
|
underCursor = false;
|
||||||
|
filetypesDenylist = [
|
||||||
|
"Outline"
|
||||||
|
"TelescopePrompt"
|
||||||
|
"alpha"
|
||||||
|
"harpoon"
|
||||||
|
"reason"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -6,7 +6,6 @@
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
vars = import ../../../../vars.nix;
|
vars = import ../../../../vars.nix;
|
||||||
colors = config.colorScheme.colors;
|
|
||||||
stableExtraPkgs = with pkgs; [
|
stableExtraPkgs = with pkgs; [
|
||||||
# LSP
|
# LSP
|
||||||
lua-language-server
|
lua-language-server
|
||||||
|
@ -134,18 +133,6 @@ in {
|
||||||
|
|
||||||
vim-nix
|
vim-nix
|
||||||
|
|
||||||
{
|
|
||||||
plugin = base16-nvim;
|
|
||||||
config = ''
|
|
||||||
require('base16-colorscheme').setup({
|
|
||||||
base00 = '#${colors.base00}', base01 = '#${colors.base01}', base02 = '#${colors.base02}', base03 = '#${colors.base03}',
|
|
||||||
base04 = '#${colors.base04}', base05 = '#${colors.base05}', base06 = '#${colors.base06}', base07 = '#${colors.base07}',
|
|
||||||
base08 = '#${colors.base08}', base09 = '#${colors.base09}', base0A = '#${colors.base0A}', base0B = '#${colors.base0B}',
|
|
||||||
base0C = '#${colors.base0C}', base0D = '#${colors.base0D}', base0E = '#${colors.base0E}', base0F = '#${colors.base0F}',
|
|
||||||
})'';
|
|
||||||
type = "lua";
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
{
|
||||||
plugin = lualine-nvim;
|
plugin = lualine-nvim;
|
||||||
config = builtins.readFile ./plugin/lualine.lua;
|
config = builtins.readFile ./plugin/lualine.lua;
|
||||||
|
|
|
@ -44,7 +44,7 @@ require("lspconfig").nixd.setup({
|
||||||
capabilities = capabilities,
|
capabilities = capabilities,
|
||||||
})
|
})
|
||||||
|
|
||||||
require("lspconfig").tsserver.setup({
|
require("lspconfig").ts_lsp.setup({
|
||||||
on_attach = on_attach,
|
on_attach = on_attach,
|
||||||
capabilities = capabilities,
|
capabilities = capabilities,
|
||||||
})
|
})
|
||||||
|
|
|
@ -31,9 +31,6 @@ in {
|
||||||
];
|
];
|
||||||
userSettings = {
|
userSettings = {
|
||||||
#Theming
|
#Theming
|
||||||
"workbench.colorTheme" = "Catppuccin Mocha";
|
|
||||||
"catppuccin.accentColor" = "green";
|
|
||||||
"workbench.iconTheme" = "material-icon-theme";
|
|
||||||
"window.menuBarVisibility" = "toggle";
|
"window.menuBarVisibility" = "toggle";
|
||||||
"editor.minimap.autohide" = false;
|
"editor.minimap.autohide" = false;
|
||||||
#Extensions - General
|
#Extensions - General
|
||||||
|
|
|
@ -1,47 +1,9 @@
|
||||||
{pkgs, ...}: {
|
{
|
||||||
programs.zathura = {
|
programs.zathura = {
|
||||||
enable = true;
|
enable = true;
|
||||||
options = {
|
options = {
|
||||||
selection-clipboard = "clipboard";
|
selection-clipboard = "clipboard";
|
||||||
statusbar-home-tilde = true;
|
statusbar-home-tilde = true;
|
||||||
|
|
||||||
default-fg = "#CDD6F4";
|
|
||||||
default-bg = "#1E1E2E";
|
|
||||||
|
|
||||||
completion-bg = "#313244";
|
|
||||||
completion-fg = "#CDD6F4";
|
|
||||||
completion-highlight-bg = "#575268";
|
|
||||||
completion-highlight-fg = "#CDD6F4";
|
|
||||||
completion-group-bg = "#313244";
|
|
||||||
completion-group-fg = "#89B4FA";
|
|
||||||
|
|
||||||
statusbar-fg = "#CDD6F4";
|
|
||||||
statusbar-bg = "#313244";
|
|
||||||
|
|
||||||
notification-bg = "#313244";
|
|
||||||
notification-fg = "#CDD6F4";
|
|
||||||
notification-error-bg = "#313244";
|
|
||||||
notification-error-fg = "#F38BA8";
|
|
||||||
notification-warning-bg = "#313244";
|
|
||||||
notification-warning-fg = "#FAE3B0";
|
|
||||||
|
|
||||||
inputbar-fg = "#CDD6F4";
|
|
||||||
inputbar-bg = "#313244";
|
|
||||||
|
|
||||||
recolor-lightcolor = "#1E1E2E";
|
|
||||||
recolor-darkcolor = "#CDD6F4";
|
|
||||||
|
|
||||||
index-fg = "#CDD6F4";
|
|
||||||
index-bg = "#1E1E2E";
|
|
||||||
index-active-fg = "#CDD6F4";
|
|
||||||
index-active-bg = "#313244";
|
|
||||||
|
|
||||||
render-loading-bg = "#1E1E2E";
|
|
||||||
render-loading-fg = "#CDD6F4";
|
|
||||||
|
|
||||||
highlight-color = "#575268";
|
|
||||||
highlight-fg = "#F5C2E7";
|
|
||||||
highlight-active-color = "#F5C2E7";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
imports = [
|
imports = [
|
||||||
./theming.nix
|
|
||||||
./firefox.nix
|
./firefox.nix
|
||||||
./alacritty.nix
|
|
||||||
./wezterm.nix
|
./wezterm.nix
|
||||||
./font.nix
|
./font.nix
|
||||||
./playerctl.nix
|
./playerctl.nix
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
{
|
{ inputs
|
||||||
inputs,
|
, pkgs
|
||||||
pkgs,
|
, vars
|
||||||
vars,
|
, ...
|
||||||
...
|
|
||||||
}: {
|
}: {
|
||||||
imports = [inputs.arkenfox.hmModules.default];
|
imports = [ inputs.arkenfox.hmModules.default ];
|
||||||
home.file.".mozilla/native-messaging-hosts/org.kde.plasma.browser_integration.json".source = "${pkgs.plasma5Packages.plasma-browser-integration}/lib/mozilla/native-messaging-hosts/org.kde.plasma.browser_integration.json";
|
home.file.".mozilla/native-messaging-hosts/org.kde.plasma.browser_integration.json".source = "${pkgs.plasma5Packages.plasma-browser-integration}/lib/mozilla/native-messaging-hosts/org.kde.plasma.browser_integration.json";
|
||||||
|
|
||||||
programs.firefox = {
|
programs.firefox = {
|
||||||
|
@ -22,6 +21,10 @@
|
||||||
darkreader
|
darkreader
|
||||||
tabliss
|
tabliss
|
||||||
consent-o-matic
|
consent-o-matic
|
||||||
|
floccus
|
||||||
|
gesturefy
|
||||||
|
plasma-integration
|
||||||
|
libredirect
|
||||||
# bypass-paywalls-clean
|
# bypass-paywalls-clean
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -44,13 +47,13 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||||
definedAliases = ["@np"];
|
definedAliases = [ "@np" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
"Home Manager" = {
|
"Home Manager" = {
|
||||||
urls = [
|
urls = [
|
||||||
{
|
{
|
||||||
template = "https://mipmip.github.io/home-manager-option-search";
|
template = "https://home-manager-options.extranix.com";
|
||||||
params = [
|
params = [
|
||||||
{
|
{
|
||||||
name = "query";
|
name = "query";
|
||||||
|
@ -61,7 +64,7 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||||
definedAliases = ["@hm"];
|
definedAliases = [ "@hm" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
"Searx" = {
|
"Searx" = {
|
||||||
|
@ -78,7 +81,7 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
iconUpdateURL = "https://paulgo.io/favicon.ico";
|
iconUpdateURL = "https://paulgo.io/favicon.ico";
|
||||||
definedAliases = ["@sx"];
|
definedAliases = [ "@sx" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
"Amazon" = {
|
"Amazon" = {
|
||||||
|
@ -95,7 +98,7 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
iconUpdateURL = "https://amazon.de/favicon.ico";
|
iconUpdateURL = "https://amazon.de/favicon.ico";
|
||||||
definedAliases = ["@a"];
|
definedAliases = [ "@a" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
"YouTube" = {
|
"YouTube" = {
|
||||||
|
@ -112,7 +115,7 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
iconUpdateURL = "https://piped.video/favicon.ico";
|
iconUpdateURL = "https://piped.video/favicon.ico";
|
||||||
definedAliases = ["yt"];
|
definedAliases = [ "yt" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
search.force = true;
|
search.force = true;
|
||||||
|
@ -187,9 +190,9 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
xdg.mimeApps.defaultApplications = {
|
xdg.mimeApps.defaultApplications = {
|
||||||
"text/html" = ["firefox.desktop"];
|
"text/html" = [ "firefox.desktop" ];
|
||||||
"text/xml" = ["firefox.desktop"];
|
"text/xml" = [ "firefox.desktop" ];
|
||||||
"x-scheme-handler/http" = ["firefox.desktop"];
|
"x-scheme-handler/http" = [ "firefox.desktop" ];
|
||||||
"x-scheme-handler/https" = ["firefox.desktop"];
|
"x-scheme-handler/https" = [ "firefox.desktop" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,8 +3,6 @@
|
||||||
services.flatpak = {
|
services.flatpak = {
|
||||||
remotes.flathub = "https://flathub.org/repo/flathub.flatpakrepo";
|
remotes.flathub = "https://flathub.org/repo/flathub.flatpakrepo";
|
||||||
packages = [
|
packages = [
|
||||||
"flathub:app/us.zoom.Zoom//stable"
|
|
||||||
"flathub:app/com.discordapp.Discord//stable"
|
|
||||||
"flathub:app/md.obsidian.Obsidian//stable"
|
"flathub:app/md.obsidian.Obsidian//stable"
|
||||||
"flathub:app/com.github.iwalton3.jellyfin-media-player//stable"
|
"flathub:app/com.github.iwalton3.jellyfin-media-player//stable"
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,33 +0,0 @@
|
||||||
{pkgs, ...}: {
|
|
||||||
home.pointerCursor = {
|
|
||||||
package = pkgs.bibata-cursors;
|
|
||||||
name = "Bibata-Modern-Ice";
|
|
||||||
size = 25;
|
|
||||||
x11.enable = true;
|
|
||||||
gtk.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# gtk.cursorTheme.package = pkgs.bibata-cursors;
|
|
||||||
# gtk.cursorTheme.name = "Bibata-Modern-Ice";
|
|
||||||
# home.file.".icons/bibata".source = "${pkgs.bibata-cursors}/share/icons/Bibata-Modern-Classic";
|
|
||||||
# xdg.dataFile."icons/bibata".source = "${pkgs.bibata-cursors}/share/icons/Bibata-Modern-Classic";
|
|
||||||
gtk = {
|
|
||||||
enable = true;
|
|
||||||
theme.package = pkgs.adw-gtk3;
|
|
||||||
theme.name = "adw-gtk3-dark";
|
|
||||||
iconTheme.package = pkgs.papirus-icon-theme;
|
|
||||||
iconTheme.name = "Papirus";
|
|
||||||
};
|
|
||||||
|
|
||||||
qt = {
|
|
||||||
enable = true;
|
|
||||||
platformTheme.name = "gtk";
|
|
||||||
style.package = with pkgs; [adwaita-qt adwaita-qt6];
|
|
||||||
style.name = "adwaita-dark";
|
|
||||||
};
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
libsForQt5.qt5.qtquickcontrols2
|
|
||||||
libsForQt5.qt5.qtgraphicaleffects
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -5,44 +5,11 @@
|
||||||
}: {
|
}: {
|
||||||
programs.wezterm = {
|
programs.wezterm = {
|
||||||
enable = true;
|
enable = true;
|
||||||
colorSchemes = {
|
|
||||||
"${config.colorscheme.slug}" = with config.colorScheme; {
|
|
||||||
foreground = "#${colors.base05}";
|
|
||||||
background = "#${colors.base00}";
|
|
||||||
|
|
||||||
ansi = [
|
|
||||||
"#${colors.base00}"
|
|
||||||
"#${colors.base08}"
|
|
||||||
"#${colors.base0B}"
|
|
||||||
"#${colors.base0A}"
|
|
||||||
"#${colors.base0D}"
|
|
||||||
"#${colors.base0E}"
|
|
||||||
"#${colors.base0C}"
|
|
||||||
"#${colors.base05}"
|
|
||||||
];
|
|
||||||
brights = [
|
|
||||||
"#${colors.base03}"
|
|
||||||
"#${colors.base08}"
|
|
||||||
"#${colors.base0B}"
|
|
||||||
"#${colors.base0A}"
|
|
||||||
"#${colors.base0D}"
|
|
||||||
"#${colors.base0E}"
|
|
||||||
"#${colors.base0C}"
|
|
||||||
"#${colors.base07}"
|
|
||||||
];
|
|
||||||
cursor_fg = "#${colors.base00}";
|
|
||||||
cursor_bg = "#${colors.base05}";
|
|
||||||
selection_fg = "#${colors.base00}";
|
|
||||||
selection_bg = "#${colors.base05}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
return {
|
return {
|
||||||
|
front_end = "WebGpu", -- fixes https://github.com/wez/wezterm/issues/5990H
|
||||||
warn_about_missing_glyphs=false,
|
warn_about_missing_glyphs=false,
|
||||||
font = wezterm.font("${config.fontProfiles.monospace.family}"),
|
-- window_background_opacity = 0.83,
|
||||||
font_size = 12.0,
|
|
||||||
window_background_opacity = 0.83,
|
|
||||||
color_scheme = "${config.colorscheme.slug}",
|
|
||||||
hide_tab_bar_if_only_one_tab = true,
|
hide_tab_bar_if_only_one_tab = true,
|
||||||
window_close_confirmation = "NeverPrompt",
|
window_close_confirmation = "NeverPrompt",
|
||||||
use_ime = true,
|
use_ime = true,
|
||||||
|
|
|
@ -8,11 +8,8 @@ in {
|
||||||
./global
|
./global
|
||||||
./features/coding/nvim
|
./features/coding/nvim
|
||||||
./features/coding/tmux.nix
|
./features/coding/tmux.nix
|
||||||
inputs.nix-colors.homeManagerModules.default
|
|
||||||
];
|
];
|
||||||
|
|
||||||
colorScheme = inputs.nix-colors.colorSchemes.catppuccin-mocha;
|
|
||||||
|
|
||||||
home.file.".docker" = {
|
home.file.".docker" = {
|
||||||
source = ../rsc/docker/franz;
|
source = ../rsc/docker/franz;
|
||||||
recursive = true;
|
recursive = true;
|
||||||
|
|
|
@ -10,12 +10,10 @@ in {
|
||||||
./features/desktop/awesome
|
./features/desktop/awesome
|
||||||
./features/desktop/gnome
|
./features/desktop/gnome
|
||||||
./features/coding
|
./features/coding
|
||||||
inputs.nix-colors.homeManagerModules.default
|
|
||||||
];
|
];
|
||||||
|
|
||||||
home.packages = with pkgs; [nextcloud-client];
|
home.packages = with pkgs; [nextcloud-client];
|
||||||
|
|
||||||
colorScheme = inputs.nix-colors.colorSchemes.catppuccin-mocha;
|
|
||||||
nixpkgs = {
|
nixpkgs = {
|
||||||
config = {
|
config = {
|
||||||
permittedInsecurePackages = [
|
permittedInsecurePackages = [
|
||||||
|
|
37
hosts/common/optional/stylix.nix
Normal file
37
hosts/common/optional/stylix.nix
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
{
|
||||||
|
inputs,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [inputs.stylix.nixosModules.stylix];
|
||||||
|
|
||||||
|
stylix = {
|
||||||
|
enable = true;
|
||||||
|
polarity = "dark";
|
||||||
|
image = ../../../rsc/wallpaper/rolltreppe-gluehwein.jpg;
|
||||||
|
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
|
||||||
|
|
||||||
|
# targets = {nixvim.transparentBackground.signColumn = true;};
|
||||||
|
|
||||||
|
cursor = {
|
||||||
|
package = pkgs.bibata-cursors;
|
||||||
|
name = "Bibata-Modern-Ice";
|
||||||
|
size = 25;
|
||||||
|
};
|
||||||
|
|
||||||
|
fonts = {
|
||||||
|
monospace = {
|
||||||
|
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];};
|
||||||
|
name = "JetBrainsMono Nerd Font Mono";
|
||||||
|
};
|
||||||
|
sansSerif = {
|
||||||
|
package = pkgs.dejavu_fonts;
|
||||||
|
name = "DejaVu Sans";
|
||||||
|
};
|
||||||
|
serif = {
|
||||||
|
package = pkgs.dejavu_fonts;
|
||||||
|
name = "DejaVu Serif";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -35,6 +35,7 @@
|
||||||
../common/optional/udisks.nix
|
../common/optional/udisks.nix
|
||||||
../common/optional/tailscale.nix
|
../common/optional/tailscale.nix
|
||||||
../common/optional/fhs-compat.nix
|
../common/optional/fhs-compat.nix
|
||||||
|
../common/optional/stylix.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
nixpkgs = {
|
nixpkgs = {
|
||||||
|
|
|
@ -17,7 +17,7 @@ local my_table = awful.util.table or gears.table -- 4.{0,1} compatibility
|
||||||
local theme = {}
|
local theme = {}
|
||||||
theme.dir = os.getenv("HOME") .. "/.config/awesome/"
|
theme.dir = os.getenv("HOME") .. "/.config/awesome/"
|
||||||
theme.wallpaper_dir = os.getenv("HOME") .. "/.wallpapers/"
|
theme.wallpaper_dir = os.getenv("HOME") .. "/.wallpapers/"
|
||||||
theme.wallpaper = theme.wallpaper_dir .. "/rolltreppe-glühwein.jpg"
|
theme.wallpaper = theme.wallpaper_dir .. "/rolltreppe-gluehwein.jpg"
|
||||||
theme.font = "JetBrainsMono Nerd Font 9"
|
theme.font = "JetBrainsMono Nerd Font 9"
|
||||||
theme.fg_normal = colors.text
|
theme.fg_normal = colors.text
|
||||||
theme.fg_focus = colors.teal
|
theme.fg_focus = colors.teal
|
||||||
|
|
Before Width: | Height: | Size: 11 MiB After Width: | Height: | Size: 11 MiB |
Loading…
Reference in a new issue