theme collect & kitty & wallpaper & yazi

Collect all catppuccin theme settings together, set wallpaper using
wpapderd, change console to kitty and install yazi
This commit is contained in:
2026-03-18 11:25:55 +01:00
parent 35806b21a2
commit e0fb822650
29 changed files with 429 additions and 195 deletions

View File

@@ -1,4 +1,4 @@
{ pkgs, ... }: { inputs, pkgs, ... }:
{ {
# Importing necessary setup for Steam & Printing & Flutter. # Importing necessary setup for Steam & Printing & Flutter.
@@ -83,6 +83,7 @@
"networkmanager" "networkmanager"
"audio" "audio"
"video" "video"
"render"
"adbusers" "adbusers"
]; ];
hashedPassword = "$6$pdAJt1f0v7Zb13Ri$1WpKrErAp5JCb7eXs7EeeWYRMBLu5/WKDdMyGzJyYQDijG2NiywUXpAkl/8p1noxOOqYbb.MTw7JmTzhWGsT21"; hashedPassword = "$6$pdAJt1f0v7Zb13Ri$1WpKrErAp5JCb7eXs7EeeWYRMBLu5/WKDdMyGzJyYQDijG2NiywUXpAkl/8p1noxOOqYbb.MTw7JmTzhWGsT21";
@@ -96,8 +97,9 @@
accent = "pink"; accent = "pink";
font = "Fira Code"; font = "Fira Code";
fontSize = "9"; fontSize = "9";
# background = "${./wallpaper.png}"; background = "${inputs.images}/lockpaper.jpg";
loginBackground = true; loginBackground = true;
userIcon = true;
}) })
exiftool exiftool

13
flake.lock generated
View File

@@ -101,6 +101,18 @@
"type": "github" "type": "github"
} }
}, },
"images": {
"flake": false,
"locked": {
"path": "home/themes/images",
"type": "path"
},
"original": {
"path": "home/themes/images",
"type": "path"
},
"parent": []
},
"neovim-nightly-overlay": { "neovim-nightly-overlay": {
"inputs": { "inputs": {
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
@@ -266,6 +278,7 @@
"inputs": { "inputs": {
"catppuccin": "catppuccin", "catppuccin": "catppuccin",
"home-manager": "home-manager", "home-manager": "home-manager",
"images": "images",
"neovim-nightly-overlay": "neovim-nightly-overlay", "neovim-nightly-overlay": "neovim-nightly-overlay",
"nix-vscode-extensions": "nix-vscode-extensions", "nix-vscode-extensions": "nix-vscode-extensions",
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs_3",

View File

@@ -2,42 +2,49 @@
description = "My NixOS Flake"; description = "My NixOS Flake";
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; catppuccin.url = "github:catppuccin/nix";
home-manager = { home-manager = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nur = { images = {
url = "github:nix-community/NUR"; url = "path:home/themes/images";
flake = false;
}; };
nixvim = { # impermanence.url = "github:nix-community/impermanence";
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs"; neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay";
};
nix-vscode-extensions = { nix-vscode-extensions = {
url = "github:nix-community/nix-vscode-extensions"; url = "github:nix-community/nix-vscode-extensions";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
catppuccin.url = "github:catppuccin/nix"; nixvim = {
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
};
# impermanence.url = "github:nix-community/impermanence"; nur = {
url = "github:nix-community/NUR";
};
}; };
outputs = outputs =
{ {
nixpkgs,
home-manager,
nur,
nixvim,
catppuccin, catppuccin,
home-manager,
images,
# impermanence, # impermanence,
nix-vscode-extensions,
nixpkgs,
nixvim,
nur,
... ...
}@inputs: }@inputs:
{ {
@@ -45,6 +52,7 @@
nixosConfigurations = { nixosConfigurations = {
eliasLaptop = nixpkgs.lib.nixosSystem { eliasLaptop = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [ modules = [
./machines/configuration-laptop.nix ./machines/configuration-laptop.nix
./home/services/pipewire.nix ./home/services/pipewire.nix

View File

@@ -1,31 +0,0 @@
{ pkgs, ... }:
# let
# theme = builtins.fetchurl {
# url =
# "https://github.com/catppuccin/alacritty/raw/main/catppuccin-mocha.toml";
# sha256 = "1idjbm5jim9b36235hgwgp9ab81fmbij42y7h85l4l7cqcbyz74l";
# };
# in {
{
home.packages = with pkgs; [
fira-code
alacritty-theme
];
programs.alacritty = {
enable = true;
settings = {
# env = {
# "TERM" = "xterm-256color";
# import = "${theme}";
# };
font = {
size = 7;
normal.family = "Fira Code";
bold.family = "Fira Code";
italic.family = "Fira Code";
};
};
};
}

View File

@@ -1,18 +1,17 @@
{ {
imports = [ imports = [
./3dprint.nix ./3dprint.nix
./alacritty.nix
./anki.nix ./anki.nix
./calibre.nix ./calibre.nix
./digikam.nix ./digikam.nix
./dolphin.nix
./dunst.nix ./dunst.nix
./eww ./eww
./filebrowser.nix
./git.nix ./git.nix
./hyprlock.nix ./hyprlock.nix
./hyprpaper
./imv.nix ./imv.nix
./inkscape.nix ./inkscape.nix
./kitty.nix
./libreoffice.nix ./libreoffice.nix
./messenger.nix ./messenger.nix
./nextcloud.nix ./nextcloud.nix

View File

@@ -60,7 +60,6 @@
:class "${idle_inhibitor == 'start' ? 'idleOn' : 'idleOff' }" :class "${idle_inhibitor == 'start' ? 'idleOn' : 'idleOff' }"
:onclick "systemctl --user is-active hypridle.service && systemctl --user stop hypridle.service || systemctl --user start hypridle.service" :onclick "systemctl --user is-active hypridle.service && systemctl --user stop hypridle.service || systemctl --user start hypridle.service"
(label (label
:class "${idle_inhibitor == 'start' ? 'speakerOn' : 'speakerOff'}"
:text "${idle_inhibitor == 'start' ? '󰈈' : '󰛐' }")))) :text "${idle_inhibitor == 'start' ? '󰈈' : '󰛐' }"))))
;; ── Audio ─────────────────────────────────────────────────────────── ;; ── Audio ───────────────────────────────────────────────────────────

View File

@@ -18,7 +18,7 @@
// /-- Widgets --> // /-- Widgets -->
// /-- Idle Inhibtor --> // /-- Idle Inhibtor -->
.idleOn {color: $green;} .idleOn {color: $green;}
.idleOff {color: $green;} .idleOff {color: $red;}
// /-- Audio --> // /-- Audio -->
.micOn {color: $green;} .micOn {color: $green;}
.micOff {color: $red;} .micOff {color: $red;}

View File

@@ -8,6 +8,8 @@
kdePackages.baloo kdePackages.baloo
nautilus nautilus
udisks udisks
yazi
]; ];
xdg.configFile."menus/applications.menu".source = "${pkgs.kdePackages.plasma-workspace}/etc/xdg/menus/plasma-applications.menu"; xdg.configFile."menus/applications.menu".source =
"${pkgs.kdePackages.plasma-workspace}/etc/xdg/menus/plasma-applications.menu";
} }

View File

@@ -1,12 +0,0 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
swww
];
services.swww.enable = true;
xsession.initExtra = ''
swww-daemon
swww img "/etc/nixos/home/programs/swww/background_temp.jpeg" fill
'';
}

94
home/programs/kitty.nix Normal file
View File

@@ -0,0 +1,94 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
imagemagick
];
home.sessionVariables = {
TERMINAL = "${pkgs.kitty}/bin/kitty";
};
programs.kitty = {
enable = true;
font = {
size = 3;
name = "Fira Code";
package = pkgs.fira-code;
};
settings = {
clear_all_shortcuts = true;
enabled_layouts = "splits:slit_axis=horizontal,stack";
enable_audio_bell = false;
cursor_shape = "underline";
confirm_os_window_close = 0;
allow_remote_control = true;
listen_on = "unix:/tmp/kitty";
shell_integration = true;
tab_bar_min_tabs = 1;
tab_bar_style = "powerline";
};
actionAliases = {
kitty_scrollback_nvim = "kitten ${pkgs.vimPlugins.kitty-scrollback-nvim}/python/kitty_scrollback_nvim.py --nvim-args --noplugin -n";
};
keybindings = {
"ctrl+shift+c" = "copy_to_clipboard";
"ctrl+shift+v" = "paste_from_clipboard";
"ctrl+shift+h" = "kitty_scrollback_nvim";
"ctrl+shift+g" = "kitty_scrollback_nvim --config ksb_builtin_last_cmd_output";
"ctrl+shift+u" = "input_unicode_character";
# WINDOWS
"ctrl+shift+p>j" = "neighboring_window down";
"ctrl+shift+p>k" = "neighboring_window up";
"ctrl+shift+p>h" = "neighboring_window left";
"ctrl+shift+p>l" = "neighboring_window right";
"ctrl+shift+r>j" = "kitten relative_resize.py down 3";
"ctrl+shift+r>k" = "kitten relative_resize.py up 3";
"ctrl+shift+r>h" = "kitten relative_resize.py left 3";
"ctrl+shift+r>l" = "kitten relative_resize.py right 3";
"ctrl+shift+p>shift+h" = "move_window left";
"ctrl+shift+p>shift+l" = "move_window right";
"ctrl+shift+p>shift+j" = "move_window down";
"ctrl+shift+p>shift+k" = "move_window up";
"ctrl+shift+p>s" = "launch --location=hsplit";
"ctrl+shift+p>v" = "launch --location=vsplit";
"ctrl+shift+p>p" = "launch --location=hsplit --cwd=current --bias=35";
"ctrl+shift+p>r" = "layout_action rotate";
"ctrl+shift+p>f" = "toggle_layout stack";
"ctrl+shift+p>q" = "close_window";
# TABS
"ctrl+shift+t>l" = "next_tab";
"ctrl+shift+t>h" = "previous_tab";
"ctrl+shift+t>n" = "new_tab";
"ctrl+shift+t>q" = "close_tab";
"ctrl+shift+t>r" = "set_tab_title";
"ctrl+shift+t>s" = "select_tab";
"ctrl+shift+t>shift+l" = "move_tab_forward";
"ctrl+shift+t>shift+h" = "move_tab_backward";
};
extraConfig = ''
mouse_map ctrl+shift+right press ungrabbed combine : mouse_select_command_output : kitty_scrollback_nvim --config ksb_builtin_last_visited_cmd_output
# Unset the mapping to pass the keys to neovim
map --when-focus-on var:IS_NVIM ctrl+shift+p>j
map --when-focus-on var:IS_NVIM ctrl+shift+p>k
map --when-focus-on var:IS_NVIM ctrl+shift+p>h
map --when-focus-on var:IS_NVIM ctrl+shift+p>l
map --when-focus-on var:IS_NVIM ctrl+shift+r>j
map --when-focus-on var:IS_NVIM ctrl+shift+r>k
map --when-focus-on var:IS_NVIM ctrl+shift+r>h
map --when-focus-on var:IS_NVIM ctrl+shift+r>l
'';
shellIntegration.enableZshIntegration = true;
};
}

View File

@@ -39,49 +39,6 @@
syntax on syntax on
''; '';
# colorscheme = "catppuccin";
# colorschemes.catppuccin = {
# #lazyLoad.enable = true;
# enable = true;
# flavour = "mocha";
# settings = {
# integrations = {
# markdown = true;
# leap = true;
# dap = true;
# dap_ui = true;
# lsp_trouble = true;
# blink_cmp = true;
# gitsigns = true;
# diffview = true;
# treesitter = true;
# barbar = true;
# telescope = true;
# native_lsp = {
# enabled = true;
# virtual_text = {
# errors = [ "italic" ];
# hints = [ "italic" ];
# warnings = [ "italic" ];
# information = [ "italic" ];
# ok = [ "italic" ];
# };
# underlines = {
# errors = [ "underline" ];
# hints = [ "underline" ];
# warnings = [ "underline" ];
# information = [ "underline" ];
# ok = [ "underline" ];
# };
# inlay_hints = {
# background = true;
# };
# };
# lsp_saga = true;
# };
# };
# };
#
globals = { globals = {
mapleader = " "; mapleader = " ";
maplocalleader = ","; maplocalleader = ",";

View File

@@ -4,46 +4,45 @@
programs.nixvim.plugins = { programs.nixvim.plugins = {
lualine = { lualine = {
enable = true; enable = true;
settings = { # settings = {
theme = "catppuccin"; # sections = {
# sections = { # lualine_c = [
# lualine_c = [ # {
# { # __unkeyed-1 = {
# __unkeyed-1 = { # __raw = ''
# __raw = '' # function()
# function() # require("trouble").statusline({
# require("trouble").statusline({ # mode = "lsp_document_symbols",
# mode = "lsp_document_symbols", # groups = {},
# groups = {}, # title = false,
# title = false, # filter = { range = true },
# filter = { range = true }, # format = "{kind_icon}{symbol.name:Normal}",
# format = "{kind_icon}{symbol.name:Normal}", # -- The following line is needed to fix the background color
# -- The following line is needed to fix the background color # -- Set it to the lualine section you want to use
# -- Set it to the lualine section you want to use # hl_group = "lualine_c_normal",
# hl_group = "lualine_c_normal", # }
# } # ).get
# ).get # end
# end # '';
# ''; # };
# }; # cond = {
# cond = { # __raw = ''
# __raw = '' # require("trouble").statusline({
# require("trouble").statusline({ # mode = "lsp_document_symbols",
# mode = "lsp_document_symbols", # groups = {},
# groups = {}, # title = false,
# title = false, # filter = { range = true },
# filter = { range = true }, # format = "{kind_icon}{symbol.name:Normal}",
# format = "{kind_icon}{symbol.name:Normal}", # -- The following line is needed to fix the background color
# -- The following line is needed to fix the background color # -- Set it to the lualine section you want to use
# -- Set it to the lualine section you want to use # hl_group = "lualine_c_normal",
# hl_group = "lualine_c_normal", # }).has
# }).has # '';
# ''; # };
# }; # }
# } # ];
# ]; # };
# }; # };
};
}; };
}; };
} }

View File

@@ -8,11 +8,11 @@
{ {
home.packages = with pkgs; [ home.packages = with pkgs; [
wlr-randr wlr-randr
slurp
grim grim
wl-clipboard
rivercarro rivercarro
ristate ristate
slurp
wl-clipboard
]; ];
xdg.configFile."helperscripts" = { xdg.configFile."helperscripts" = {
recursive = true; recursive = true;
@@ -44,7 +44,7 @@
settings = { settings = {
spawn = [ spawn = [
"/home/${config.home.username}/.config/helperscripts/startEww.sh" "/home/${config.home.username}/.config/helperscripts/startEww.sh"
# "nextcloud" "nextcloud"
]; ];
spawn-tagmask = "${all_but_scratch_tag}"; spawn-tagmask = "${all_but_scratch_tag}";
keyboard-layout = "de"; keyboard-layout = "de";
@@ -68,7 +68,7 @@
}; };
map = { map = {
normal = { normal = {
"Super+Shift Return" = "spawn alacritty"; "Super+Shift Return" = "spawn kitty";
# Messages # Messages
"Control+Super W" = "spawn 'printf \"Hello from Wayland!\" | dunstify -'"; "Control+Super W" = "spawn 'printf \"Hello from Wayland!\" | dunstify -'";
# System # System

View File

@@ -11,9 +11,8 @@
programs.taskwarrior = { programs.taskwarrior = {
enable = true; enable = true;
colorTheme = ./catppuccin.theme;
package = pkgs.taskwarrior3; package = pkgs.taskwarrior3;
dataLocation = "~/Nextcloud/tasks"; dataLocation = "~/tasks"; # TODO: change to Nextcloud again
config = { config = {
uda.parentName = { uda.parentName = {
type = "string"; type = "string";

View File

@@ -3,10 +3,11 @@
{ {
programs.vscode = { programs.vscode = {
enable = true; enable = true;
profiles.default.extensions = with pkgs.vscode-extensions; [ package = pkgs.vscodium;
dracula-theme.theme-dracula profiles.default = {
vscodevim.vim enableUpdateCheck = false;
yzhang.markdown-all-in-one enableExtensionUpdateCheck = false;
]; extensions = with pkgs.vscode-extensions; [ vscodevim.vim ];
};
}; };
} }

View File

@@ -1,12 +1,5 @@
{ ... }: { ... }:
# let
# theme = builtins.fetchurl {
# url =
# "https://raw.githubusercontent.com/catppuccin/zathura/main/src/catppuccin-mocha";
# sha256 = "1zhx3bfz5s2wjrj87w0ryh15vgsqqfhg6dm48p63r5fmqwsak721";
# };
# in {
{ {
programs.zathura = { programs.zathura = {
enable = true; enable = true;

View File

@@ -1,28 +0,0 @@
{
...
}:
{
catppuccin = {
enable = true;
flavor = "mocha";
accent = "pink";
alacritty.enable = true;
anki.enable = true;
cursors.enable = true;
dunst.enable = true;
element-desktop.enable = true;
firefox.enable = true;
fzf.enable = true;
hyprlock.enable = true;
imv.enable = true;
lazygit.enable = true;
rofi.enable = true;
spotify-player.enable = true;
thunderbird.enable = true;
vscode.enable = true;
zathura.enable = true;
zsh-syntax-highlighting.enable = true;
};
}

View File

@@ -0,0 +1,9 @@
{ pkgs, ... }:
{
home.pointerCursor = {
package = pkgs.catppuccin-cursors.mochaPink;
name = "Catppuccin-Mocha-Pink-Cursors";
gtk.enable = true;
};
}

View File

@@ -0,0 +1,38 @@
{
inputs,
...
}:
{
imports = [
./cursor.nix
./gtk.nix
./hyprlock.nix
./nvim.nix
./taskwarrior.nix
];
catppuccin = {
enable = false;
flavor = "mocha";
accent = "pink";
anki.enable = true;
dunst.enable = true;
element-desktop.enable = true;
firefox.enable = true;
fzf.enable = true;
imv.enable = true;
kitty.enable = true;
lazygit.enable = true;
rofi.enable = true;
spotify-player.enable = true;
thunderbird.enable = true;
vscode.profiles.default.enable = true;
zathura.enable = true;
zsh-syntax-highlighting.enable = true;
};
# ── Icon for Lock & Loginscreen ───────────────────────────────────────
xdg.configFile.".face.icon".source = inputs.images + /face.icon;
}

View File

@@ -0,0 +1,27 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [ dconf ];
gtk = {
enable = true;
theme = {
name = "Catppuccin-Mocha-Compact-Pink-Dark";
package = pkgs.catppuccin-gtk.override {
accents = [ "pink" ];
size = "compact";
tweaks = [ "rimless" ];
variant = "mocha";
};
};
font = {
package = pkgs.fira-code;
name = "Fira Code";
};
iconTheme = {
package = pkgs.oranchelo-icon-theme;
name = "Oranchelo";
};
};
}

View File

@@ -0,0 +1,102 @@
{ inputs, ... }:
let
variables = {
accent = "rgb(f5c2e7)";
accentPango = "##f5c2e7";
base = "rgb(1e1e2e)";
text = "rgb(cdd6f4)";
textPango = "##cdd6f4";
surface0 = "rgb(313244)";
red = "rgb(f38ba8)";
yellow = "rgb(f9e2af)";
font = "Fira Code";
};
in
{
# ── Hyprlock ──────────────────────────────────────────────────────────
programs.hyprlock.settings = {
general = {
hide_cursor = true;
ignore_empty_input = true;
};
background = {
monitor = "";
path = "${inputs.images}/lockpaper.png";
blur_passes = 0;
color = variables.base;
};
label = [
# ── Time ──────────────────────────────────────────────────────────────
{
monitor = "";
text = "$TIME";
color = variables.text;
font_size = 90;
font_family = variables.font;
position = "-30, 0";
halign = "right";
valign = "top";
}
# ── Date ──────────────────────────────────────────────────────────────
{
monitor = "";
text = "cmd[update:43200000] date +'%A, %d %B %Y'";
color = variables.text;
font_size = 25;
font_family = variables.font;
position = "-30, -150";
halign = "right";
valign = "top";
}
# ── Fingerprint ───────────────────────────────────────────────────────
{
monitor = "";
text = "$FPRINTPROMPT"; # TODO: No output yet check again
color = variables.text;
font_size = 14;
font_family = variables.font;
position = "0, -107";
halign = "center";
valign = "center";
}
];
image = {
monitor = "";
path = "${inputs.images}/face.icon";
size = 100;
border_color = variables.accent;
position = "0, 75";
halign = "center";
valign = "center";
};
input-field = {
monitor = "";
size = "300, 60";
outline_thickness = 4;
dots_size = 0.2;
dots_spacing = 0.2;
dots_center = true;
outer_color = variables.accent;
inner_color = variables.surface0;
font_color = variables.text;
fade_on_empty = false;
placeholder_text = "<span foreground='${variables.textPango}'><i>󰌾 Logged in as </i><span foreground='${variables.accentPango}'>$USER</span></span>";
hide_input = false;
check_color = variables.accent;
fail_color = variables.red;
fail_text = "<i>$FAIL <b>($ATTEMPTS)</b></i>";
capslock_color = variables.yellow;
position = "0, -47";
halign = "center";
valign = "center";
};
};
}

View File

@@ -0,0 +1,48 @@
{ ... }:
{
programs.nixvim = {
colorscheme = "catppuccin";
colorschemes.catppuccin = {
#lazyLoad.enable = true;
enable = true;
flavour = "mocha";
accents = "pink";
settings = {
integrations = {
markdown = true;
leap = true;
dap = true;
dap_ui = true;
lsp_trouble = true;
blink_cmp = true;
gitsigns = true;
diffview = true;
treesitter = true;
barbar = true;
telescope = true;
native_lsp = {
enabled = true;
virtual_text = {
errors = [ "italic" ];
hints = [ "italic" ];
warnings = [ "italic" ];
information = [ "italic" ];
ok = [ "italic" ];
};
underlines = {
errors = [ "underline" ];
hints = [ "underline" ];
warnings = [ "underline" ];
information = [ "underline" ];
ok = [ "underline" ];
};
inlay_hints.background = true;
};
lsp_saga = true;
};
};
};
plugins.lualine.settings.theme = "catppuccin";
};
}

View File

@@ -0,0 +1,5 @@
{ ... }:
{
programs.taskwarrior.colorTheme = ./catppuccin-taskwarrior.theme;
}

View File

@@ -1,5 +1,6 @@
{ {
imports = [ imports = [
./catppuccin.nix ./catppuccin
./wallpaper.nix
]; ];
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

View File

Before

Width:  |  Height:  |  Size: 6.0 MiB

After

Width:  |  Height:  |  Size: 6.0 MiB

View File

@@ -0,0 +1,9 @@
{ inputs, ... }:
{
services.wpaperd = {
enable = true;
settings.any.path = "${inputs.images}/wallpaper.jpeg"; # TODO: change wallpaper / make automatic pull from some website? -> animals and fallback to something if no iternet
};
}