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
96
flake.nix
96
flake.nix
|
@ -1,48 +1,85 @@
|
|||
{
|
||||
description = "Your new nix config";
|
||||
description = "GHOSCHT's NixOS config";
|
||||
|
||||
inputs = {
|
||||
# Nixpkgs
|
||||
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";
|
||||
# Also see the 'unstable-packages' overlay at 'overlays/default.nix'.
|
||||
|
||||
# Home manager
|
||||
home-manager.url = "github:nix-community/home-manager/release-24.11";
|
||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||
home-manager = {
|
||||
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 = {
|
||||
url = "github:nix-community/disko";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
nix-colors.url = "github:misterio77/nix-colors";
|
||||
firefox-addons = {
|
||||
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
arkenfox = {
|
||||
url = "github:dwarfmaster/arkenfox-nixos";
|
||||
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";
|
||||
|
||||
xremap = {
|
||||
url = "github:xremap/nix-flake";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
home-manager,
|
||||
...
|
||||
} @ inputs: let
|
||||
flatpaks = {
|
||||
url = "github:GermanBread/declarative-flatpak/stable-v3";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
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 = [
|
||||
|
@ -56,7 +93,8 @@
|
|||
# pass to it, with each system as an argument
|
||||
forAllSystems = nixpkgs.lib.genAttrs systems;
|
||||
vars = import ./vars.nix;
|
||||
in {
|
||||
in
|
||||
{
|
||||
# Your custom packages
|
||||
# Accessible through 'nix build', 'nix shell', etc
|
||||
packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system});
|
||||
|
@ -65,7 +103,7 @@
|
|||
formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra);
|
||||
|
||||
# Your custom packages and modifications, exported as overlays
|
||||
overlays = import ./overlays {inherit inputs;};
|
||||
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;
|
||||
|
@ -77,25 +115,25 @@
|
|||
# Available through 'nixos-rebuild --flake .#your-hostname'
|
||||
nixosConfigurations = {
|
||||
adalbert = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = {inherit inputs outputs vars;};
|
||||
specialArgs = { inherit inputs outputs vars; };
|
||||
modules = [
|
||||
./hosts/adalbert
|
||||
];
|
||||
};
|
||||
ludwig = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = {inherit inputs outputs vars;};
|
||||
specialArgs = { inherit inputs outputs vars; };
|
||||
modules = [
|
||||
./hosts/ludwig
|
||||
];
|
||||
};
|
||||
leopold = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = {inherit inputs outputs vars;};
|
||||
specialArgs = { inherit inputs outputs vars; };
|
||||
modules = [
|
||||
./hosts/leopold
|
||||
];
|
||||
};
|
||||
franz = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = {inherit inputs outputs vars;};
|
||||
specialArgs = { inherit inputs outputs vars; };
|
||||
modules = [
|
||||
./hosts/franz
|
||||
];
|
||||
|
@ -120,7 +158,7 @@
|
|||
homeConfigurations = {
|
||||
"${vars.user}@adalbert" = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance
|
||||
extraSpecialArgs = {inherit inputs outputs vars;};
|
||||
extraSpecialArgs = { inherit inputs outputs vars; };
|
||||
modules = [
|
||||
./home/adalbert.nix
|
||||
];
|
||||
|
@ -128,14 +166,14 @@
|
|||
};
|
||||
"${vars.user}@ludwig" = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance
|
||||
extraSpecialArgs = {inherit inputs outputs vars;};
|
||||
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;};
|
||||
extraSpecialArgs = { inherit inputs outputs vars; };
|
||||
modules = [
|
||||
./home/franz.nix
|
||||
];
|
||||
|
|
|
@ -11,11 +11,8 @@ in {
|
|||
./features/games
|
||||
./features/coding
|
||||
./features/desktop/common/3d-printing.nix
|
||||
inputs.nix-colors.homeManagerModules.default
|
||||
];
|
||||
|
||||
colorScheme = inputs.nix-colors.colorSchemes.catppuccin-mocha;
|
||||
|
||||
home.packages = [
|
||||
inputs.picokontroller.packages.x86_64-linux.default
|
||||
# pkgs.citrix_workspace
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
{
|
||||
programs.bat = {
|
||||
enable = true;
|
||||
config.theme = "base16";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
programs.btop = {
|
||||
enable = true;
|
||||
settings = {
|
||||
color_theme = "nix-colors";
|
||||
theme_background = false;
|
||||
truecolor = true;
|
||||
vim_keys = true;
|
||||
|
@ -10,89 +9,4 @@
|
|||
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, ...}: {
|
||||
programs.lazygit = {
|
||||
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, ...}: {
|
||||
imports = [
|
||||
./nvim
|
||||
# ./nvim
|
||||
./nixvim
|
||||
./vscode.nix
|
||||
./intellij.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
|
||||
vars = import ../../../../vars.nix;
|
||||
colors = config.colorScheme.colors;
|
||||
stableExtraPkgs = with pkgs; [
|
||||
# LSP
|
||||
lua-language-server
|
||||
|
@ -134,18 +133,6 @@ in {
|
|||
|
||||
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;
|
||||
config = builtins.readFile ./plugin/lualine.lua;
|
||||
|
|
|
@ -44,7 +44,7 @@ require("lspconfig").nixd.setup({
|
|||
capabilities = capabilities,
|
||||
})
|
||||
|
||||
require("lspconfig").tsserver.setup({
|
||||
require("lspconfig").ts_lsp.setup({
|
||||
on_attach = on_attach,
|
||||
capabilities = capabilities,
|
||||
})
|
||||
|
|
|
@ -31,9 +31,6 @@ in {
|
|||
];
|
||||
userSettings = {
|
||||
#Theming
|
||||
"workbench.colorTheme" = "Catppuccin Mocha";
|
||||
"catppuccin.accentColor" = "green";
|
||||
"workbench.iconTheme" = "material-icon-theme";
|
||||
"window.menuBarVisibility" = "toggle";
|
||||
"editor.minimap.autohide" = false;
|
||||
#Extensions - General
|
||||
|
|
|
@ -1,47 +1,9 @@
|
|||
{pkgs, ...}: {
|
||||
{
|
||||
programs.zathura = {
|
||||
enable = true;
|
||||
options = {
|
||||
selection-clipboard = "clipboard";
|
||||
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, ...}: {
|
||||
imports = [
|
||||
./theming.nix
|
||||
./firefox.nix
|
||||
./alacritty.nix
|
||||
./wezterm.nix
|
||||
./font.nix
|
||||
./playerctl.nix
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
vars,
|
||||
...
|
||||
{ inputs
|
||||
, pkgs
|
||||
, 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";
|
||||
|
||||
programs.firefox = {
|
||||
|
@ -22,6 +21,10 @@
|
|||
darkreader
|
||||
tabliss
|
||||
consent-o-matic
|
||||
floccus
|
||||
gesturefy
|
||||
plasma-integration
|
||||
libredirect
|
||||
# bypass-paywalls-clean
|
||||
];
|
||||
|
||||
|
@ -44,13 +47,13 @@
|
|||
];
|
||||
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = ["@np"];
|
||||
definedAliases = [ "@np" ];
|
||||
};
|
||||
|
||||
"Home Manager" = {
|
||||
urls = [
|
||||
{
|
||||
template = "https://mipmip.github.io/home-manager-option-search";
|
||||
template = "https://home-manager-options.extranix.com";
|
||||
params = [
|
||||
{
|
||||
name = "query";
|
||||
|
@ -61,7 +64,7 @@
|
|||
];
|
||||
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = ["@hm"];
|
||||
definedAliases = [ "@hm" ];
|
||||
};
|
||||
|
||||
"Searx" = {
|
||||
|
@ -78,7 +81,7 @@
|
|||
];
|
||||
|
||||
iconUpdateURL = "https://paulgo.io/favicon.ico";
|
||||
definedAliases = ["@sx"];
|
||||
definedAliases = [ "@sx" ];
|
||||
};
|
||||
|
||||
"Amazon" = {
|
||||
|
@ -95,7 +98,7 @@
|
|||
];
|
||||
|
||||
iconUpdateURL = "https://amazon.de/favicon.ico";
|
||||
definedAliases = ["@a"];
|
||||
definedAliases = [ "@a" ];
|
||||
};
|
||||
|
||||
"YouTube" = {
|
||||
|
@ -112,7 +115,7 @@
|
|||
];
|
||||
|
||||
iconUpdateURL = "https://piped.video/favicon.ico";
|
||||
definedAliases = ["yt"];
|
||||
definedAliases = [ "yt" ];
|
||||
};
|
||||
};
|
||||
search.force = true;
|
||||
|
@ -187,9 +190,9 @@
|
|||
};
|
||||
|
||||
xdg.mimeApps.defaultApplications = {
|
||||
"text/html" = ["firefox.desktop"];
|
||||
"text/xml" = ["firefox.desktop"];
|
||||
"x-scheme-handler/http" = ["firefox.desktop"];
|
||||
"x-scheme-handler/https" = ["firefox.desktop"];
|
||||
"text/html" = [ "firefox.desktop" ];
|
||||
"text/xml" = [ "firefox.desktop" ];
|
||||
"x-scheme-handler/http" = [ "firefox.desktop" ];
|
||||
"x-scheme-handler/https" = [ "firefox.desktop" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -3,8 +3,6 @@
|
|||
services.flatpak = {
|
||||
remotes.flathub = "https://flathub.org/repo/flathub.flatpakrepo";
|
||||
packages = [
|
||||
"flathub:app/us.zoom.Zoom//stable"
|
||||
"flathub:app/com.discordapp.Discord//stable"
|
||||
"flathub:app/md.obsidian.Obsidian//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 = {
|
||||
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 = ''
|
||||
return {
|
||||
front_end = "WebGpu", -- fixes https://github.com/wez/wezterm/issues/5990H
|
||||
warn_about_missing_glyphs=false,
|
||||
font = wezterm.font("${config.fontProfiles.monospace.family}"),
|
||||
font_size = 12.0,
|
||||
window_background_opacity = 0.83,
|
||||
color_scheme = "${config.colorscheme.slug}",
|
||||
-- window_background_opacity = 0.83,
|
||||
hide_tab_bar_if_only_one_tab = true,
|
||||
window_close_confirmation = "NeverPrompt",
|
||||
use_ime = true,
|
||||
|
|
|
@ -8,11 +8,8 @@ in {
|
|||
./global
|
||||
./features/coding/nvim
|
||||
./features/coding/tmux.nix
|
||||
inputs.nix-colors.homeManagerModules.default
|
||||
];
|
||||
|
||||
colorScheme = inputs.nix-colors.colorSchemes.catppuccin-mocha;
|
||||
|
||||
home.file.".docker" = {
|
||||
source = ../rsc/docker/franz;
|
||||
recursive = true;
|
||||
|
|
|
@ -10,12 +10,10 @@ in {
|
|||
./features/desktop/awesome
|
||||
./features/desktop/gnome
|
||||
./features/coding
|
||||
inputs.nix-colors.homeManagerModules.default
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [nextcloud-client];
|
||||
|
||||
colorScheme = inputs.nix-colors.colorSchemes.catppuccin-mocha;
|
||||
nixpkgs = {
|
||||
config = {
|
||||
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/tailscale.nix
|
||||
../common/optional/fhs-compat.nix
|
||||
../common/optional/stylix.nix
|
||||
];
|
||||
|
||||
nixpkgs = {
|
||||
|
|
|
@ -17,7 +17,7 @@ local my_table = awful.util.table or gears.table -- 4.{0,1} compatibility
|
|||
local theme = {}
|
||||
theme.dir = os.getenv("HOME") .. "/.config/awesome/"
|
||||
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.fg_normal = colors.text
|
||||
theme.fg_focus = colors.teal
|
||||
|
|
Before Width: | Height: | Size: 11 MiB After Width: | Height: | Size: 11 MiB |
Loading…
Reference in a new issue