Compare commits

..

No commits in common. "743258bb44e2af77798ee74c9d4f6ec2d895eb9f" and "8761dae20ce7dd7d2b84b32c952fce4a52e3d5f0" have entirely different histories.

29 changed files with 570 additions and 1271 deletions

File diff suppressed because it is too large Load diff

270
flake.nix
View file

@ -1,189 +1,151 @@
{ {
description = "GHOSCHT's NixOS config"; description = "Your new nix 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 = { home-manager.url = "github:nix-community/home-manager/release-24.11";
url = "github:nix-community/home-manager/release-24.11"; home-manager.inputs.nixpkgs.follows = "nixpkgs";
inputs.nixpkgs.follows = "nixpkgs";
};
hardware = { hardware.url = "github:nixos/nixos-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";
xremap = { flatpaks.url = "github:GermanBread/declarative-flatpak/stable-v3";
url = "github:xremap/nix-flake"; 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";
}; sops-nix.url = "github:Mic92/sops-nix";
arion.url = "github:hercules-ci/arion";
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 = outputs = {
{ self self,
, nixpkgs nixpkgs,
, home-manager home-manager,
, ... ...
} @ inputs: } @ inputs: let
let inherit (self) outputs;
inherit (self) outputs; # Supported systems for your flake packages, shell, etc.
# Supported systems for your flake packages, shell, etc. systems = [
systems = [ "aarch64-linux"
"aarch64-linux" "i686-linux"
"i686-linux" "x86_64-linux"
"x86_64-linux" "aarch64-darwin"
"aarch64-darwin" "x86_64-darwin"
"x86_64-darwin" ];
]; # This is a function that generates an attribute by calling a function you
# This is a function that generates an attribute by calling a function you # pass to it, with each system as an argument
# pass to it, with each system as an argument forAllSystems = nixpkgs.lib.genAttrs systems;
forAllSystems = nixpkgs.lib.genAttrs systems; vars = import ./vars.nix;
vars = import ./vars.nix; in {
in # Your custom packages
{ # Accessible through 'nix build', 'nix shell', etc
# Your custom packages packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system});
# Accessible through 'nix build', 'nix shell', etc # Formatter for your nix files, available through 'nix fmt'
packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system}); # Other options beside 'alejandra' include 'nixpkgs-fmt'
# Formatter for your nix files, available through 'nix fmt' formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra);
# Other options beside 'alejandra' include 'nixpkgs-fmt'
formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra);
# Your custom packages and modifications, exported as overlays # 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 # Reusable nixos modules you might want to export
# These are usually stuff you would upstream into nixpkgs # These are usually stuff you would upstream into nixpkgs
nixosModules = import ./modules/nixos; nixosModules = import ./modules/nixos;
# Reusable home-manager modules you might want to export # Reusable home-manager modules you might want to export
# These are usually stuff you would upstream into home-manager # These are usually stuff you would upstream into home-manager
homeManagerModules = import ./modules/home-manager; homeManagerModules = import ./modules/home-manager;
# NixOS configuration entrypoint # NixOS configuration entrypoint
# Available through 'nixos-rebuild --flake .#your-hostname' # Available through 'nixos-rebuild --flake .#your-hostname'
nixosConfigurations = { nixosConfigurations = {
adalbert = nixpkgs.lib.nixosSystem { 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; };
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
extraSpecialArgs = { inherit inputs outputs vars; };
modules = [ modules = [
./home/ludwig.nix ./hosts/adalbert
]; ];
}; };
"${vars.user}@franz" = home-manager.lib.homeManagerConfiguration { ludwig = nixpkgs.lib.nixosSystem {
pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance specialArgs = {inherit inputs outputs vars;};
extraSpecialArgs = { inherit inputs outputs vars; };
modules = [ modules = [
./home/franz.nix ./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;
}
]; ];
}; };
# "${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
# ];
# };
}; };
# 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
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
# ];
# };
};
} }

View file

@ -11,8 +11,11 @@ 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

View file

@ -1,5 +1,6 @@
{ {
programs.bat = { programs.bat = {
enable = true; enable = true;
config.theme = "base16";
}; };
} }

View file

@ -2,6 +2,7 @@
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;
@ -9,4 +10,89 @@
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}"
'';
} }

View file

@ -1,5 +1,21 @@
{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}"];
};
};
};
}; };
} }

View file

@ -1,7 +1,6 @@
{pkgs, ...}: { {pkgs, ...}: {
imports = [ imports = [
# ./nvim ./nvim
./nixvim
./vscode.nix ./vscode.nix
./intellij.nix ./intellij.nix
./tmux.nix ./tmux.nix

View file

@ -1,95 +0,0 @@
{
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
};
};
}

View file

@ -1,12 +0,0 @@
{inputs, ...}: {
imports = [
inputs.nixvim.homeManagerModules.nixvim
./options.nix
./plugins.nix
./cmp.nix
./lsp.nix
./none-ls.nix
./keymaps.nix
];
programs.nixvim.enable = true;
}

View file

@ -1,112 +0,0 @@
{
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";
};
}
];
}

View file

@ -1,25 +0,0 @@
{
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;
};
};
};
}

View file

@ -1,42 +0,0 @@
{
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;
};
};
};
};
}

View file

@ -1,52 +0,0 @@
{
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 = " ";
};
};
};
};
}

View file

@ -1,112 +0,0 @@
{ 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"
];
};
};
}

View file

@ -6,6 +6,7 @@
... ...
}: 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
@ -133,6 +134,18 @@ 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;

View file

@ -44,7 +44,7 @@ require("lspconfig").nixd.setup({
capabilities = capabilities, capabilities = capabilities,
}) })
require("lspconfig").ts_lsp.setup({ require("lspconfig").tsserver.setup({
on_attach = on_attach, on_attach = on_attach,
capabilities = capabilities, capabilities = capabilities,
}) })

View file

@ -31,6 +31,9 @@ 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

View file

@ -1,9 +1,47 @@
{ {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";
}; };
}; };
} }

View file

@ -1,6 +1,8 @@
{pkgs, ...}: { {pkgs, ...}: {
imports = [ imports = [
./theming.nix
./firefox.nix ./firefox.nix
./alacritty.nix
./wezterm.nix ./wezterm.nix
./font.nix ./font.nix
./playerctl.nix ./playerctl.nix

View file

@ -1,9 +1,10 @@
{ inputs {
, pkgs inputs,
, vars 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"; 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 = {
@ -21,10 +22,6 @@
darkreader darkreader
tabliss tabliss
consent-o-matic consent-o-matic
floccus
gesturefy
plasma-integration
libredirect
# bypass-paywalls-clean # bypass-paywalls-clean
]; ];
@ -47,13 +44,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://home-manager-options.extranix.com"; template = "https://mipmip.github.io/home-manager-option-search";
params = [ params = [
{ {
name = "query"; name = "query";
@ -64,7 +61,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" = {
@ -81,7 +78,7 @@
]; ];
iconUpdateURL = "https://paulgo.io/favicon.ico"; iconUpdateURL = "https://paulgo.io/favicon.ico";
definedAliases = [ "@sx" ]; definedAliases = ["@sx"];
}; };
"Amazon" = { "Amazon" = {
@ -98,7 +95,7 @@
]; ];
iconUpdateURL = "https://amazon.de/favicon.ico"; iconUpdateURL = "https://amazon.de/favicon.ico";
definedAliases = [ "@a" ]; definedAliases = ["@a"];
}; };
"YouTube" = { "YouTube" = {
@ -115,7 +112,7 @@
]; ];
iconUpdateURL = "https://piped.video/favicon.ico"; iconUpdateURL = "https://piped.video/favicon.ico";
definedAliases = [ "yt" ]; definedAliases = ["yt"];
}; };
}; };
search.force = true; search.force = true;
@ -190,9 +187,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"];
}; };
} }

View file

@ -3,6 +3,8 @@
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"
]; ];

View file

@ -0,0 +1,33 @@
{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
];
}

View file

@ -5,11 +5,44 @@
}: { }: {
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,
-- window_background_opacity = 0.83, font = wezterm.font("${config.fontProfiles.monospace.family}"),
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,

View file

@ -8,8 +8,11 @@ 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;

View file

@ -10,10 +10,12 @@ 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 = [

View file

@ -1,37 +0,0 @@
{
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";
};
};
};
}

View file

@ -35,7 +35,6 @@
../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 = {

View file

@ -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-gluehwein.jpg" theme.wallpaper = theme.wallpaper_dir .. "/rolltreppe-glühwein.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

View file

Before

Width:  |  Height:  |  Size: 11 MiB

After

Width:  |  Height:  |  Size: 11 MiB