From e6ec079071fe1bc0b89bb881480acaf87d3907b4 Mon Sep 17 00:00:00 2001 From: m3tm3re Date: Fri, 1 May 2026 11:08:37 +0200 Subject: [PATCH] chore: remove legacy features folder --- home/features/cli/default.nix | 115 ---------- home/features/cli/fish.nix | 77 ------- home/features/cli/fzf.nix | 40 ---- home/features/cli/nitch.nix | 15 -- home/features/cli/nushell.nix | 88 -------- home/features/cli/secrets.nix | 24 --- home/features/cli/starship.nix | 18 -- home/features/cli/television.nix | 64 ------ home/features/cli/zellij.nix | 16 -- home/features/coding/default.nix | 58 ----- home/features/coding/opencode.nix | 109 ---------- home/features/desktop/coding.nix | 153 ------------- home/features/desktop/default.nix | 135 ------------ home/features/desktop/fonts.nix | 24 --- home/features/desktop/gnome.nix | 0 home/features/desktop/hyprland.nix | 319 ---------------------------- home/features/desktop/knowledge.nix | 19 -- home/features/desktop/media.nix | 54 ----- home/features/desktop/office.nix | 21 -- home/features/desktop/rofi.nix | 202 ------------------ home/features/desktop/theme.nix | 24 --- home/features/desktop/wayland.nix | 30 --- home/features/desktop/webapps.nix | 55 ----- 23 files changed, 1660 deletions(-) delete mode 100644 home/features/cli/default.nix delete mode 100644 home/features/cli/fish.nix delete mode 100644 home/features/cli/fzf.nix delete mode 100644 home/features/cli/nitch.nix delete mode 100644 home/features/cli/nushell.nix delete mode 100644 home/features/cli/secrets.nix delete mode 100644 home/features/cli/starship.nix delete mode 100644 home/features/cli/television.nix delete mode 100644 home/features/cli/zellij.nix delete mode 100644 home/features/coding/default.nix delete mode 100644 home/features/coding/opencode.nix delete mode 100644 home/features/desktop/coding.nix delete mode 100644 home/features/desktop/default.nix delete mode 100644 home/features/desktop/fonts.nix delete mode 100644 home/features/desktop/gnome.nix delete mode 100644 home/features/desktop/hyprland.nix delete mode 100644 home/features/desktop/knowledge.nix delete mode 100644 home/features/desktop/media.nix delete mode 100644 home/features/desktop/office.nix delete mode 100644 home/features/desktop/rofi.nix delete mode 100644 home/features/desktop/theme.nix delete mode 100644 home/features/desktop/wayland.nix delete mode 100644 home/features/desktop/webapps.nix diff --git a/home/features/cli/default.nix b/home/features/cli/default.nix deleted file mode 100644 index c9fde53..0000000 --- a/home/features/cli/default.nix +++ /dev/null @@ -1,115 +0,0 @@ -{pkgs, ...}: { - imports = [ - ./fish.nix - ./fzf.nix - ./nitch.nix - ./nushell.nix - ./secrets.nix - ./starship.nix - ./television.nix - ./zellij.nix - ]; - - cli.stt-ptt = { - enable = true; - whisperPackage = pkgs.whisper-cpp-vulkan; - model = "ggml-large-v3-turbo"; - notifyTimeout = 2000; - }; - - programs.carapace = { - enable = true; - enableFishIntegration = true; - enableNushellIntegration = true; - enableBashIntegration = true; - }; - - programs.nix-index = { - enable = true; - enableBashIntegration = true; - enableNushellIntegration = true; - }; - - programs.zoxide = { - enable = true; - enableFishIntegration = true; - enableNushellIntegration = true; - }; - - programs.neovim = { - enable = true; - defaultEditor = true; - viAlias = true; - vimAlias = true; - vimdiffAlias = true; - withNodeJs = true; - withPython3 = true; - }; - - programs.bat = {enable = true;}; - - programs.direnv = { - enable = true; - enableNushellIntegration = true; - nix-direnv.enable = - true; - }; - - programs.eza = { - enable = true; - enableFishIntegration = true; - enableBashIntegration = true; - extraOptions = ["-l" "--icons" "--git" "-a"]; - }; - - programs.lf = { - enable = true; - settings = { - preview = true; - drawbox = true; - hidden = true; - icons = true; - theme = "Dracula"; - previewer = "bat"; - }; - }; - - home.packages = with pkgs; [ - agenix-cli - alejandra - basecamp - bc - claude-code - comma - coreutils - devenv - fd - gcc - go - btop - httpie - jq - just - lazygit - llm - lf - nix-index - nushellPlugins.skim - progress - ripgrep - # rocmPackages.rocm-smi - # rocmPackages.rocminfo - # rocmPackages.rocm-runtime - tldr - pomodoro-timer - trash-cli - unimatrix - unzip - vulkan-tools - wttrbar - wireguard-tools - yazi - zellij-ps - zip - ]; -} diff --git a/home/features/cli/fish.nix b/home/features/cli/fish.nix deleted file mode 100644 index 962e3fa..0000000 --- a/home/features/cli/fish.nix +++ /dev/null @@ -1,77 +0,0 @@ -{ - config, - lib, - ... -}: -with lib; let - cfg = config.features.cli.fish; -in { - options.features.cli.fish.enable = mkEnableOption "enable fish shell"; - - config = mkIf cfg.enable { - programs.fish = { - enable = true; - loginShellInit = '' - set -x NIX_PATH nixpkgs=channel:nixos-unstable - set -x NIX_LOG info - set -x WEBKIT_DISABLE_COMPOSITING_MODE 1 - set -x TERMINAL ghostty - set -x EDITOR nvim - set -x VISUAL zeditor - set -x XDG_DATA_HOME $HOME/.local/share - set -x FZF_CTRL_R_OPTS " - --preview='bat --color=always -n {}' - --preview-window up:3:hidden:wrap - --bind 'ctrl-/:toggle-preview' - --bind 'ctrl-y:execute-silent(echo -n {2..} | wl-copy)+abort' - --color header:bold - --header 'Press CTRL-Y to copy command into clipboard'" - set -x FZF_DEFAULT_COMMAND fd --type f --exclude .git --follow --hidden - set -x FZF_CTRL_T_COMMAND "$FZF_DEFAULT_COMMAND" - set -x FLAKE $HOME/p/nixos/nixos-config - source /run/agenix/${config.home.username}-secrets - - if test (tty) = "/dev/tty1" - exec uwsm start -S -F /run/current-system/sw/bin/Hyprland - end - if test (tty) = "/dev/tty2" - exec gamescope -O HDMI-A-1 -W 1920 -H 1080 --adaptive-sync --hdr-enabled --rt --steam -- steam -pipewire-dmabuf -tenfoot - end - ''; - shellAbbrs = { - ".." = "cd .."; - "..." = "cd ../.."; - b = "yazi"; - ls = "eza"; - l = "eza -l --icons --git -a"; - lt = "eza --tree --level=2 --long --icons --git"; - grep = "rg"; - ps = "procs"; - just = "just --unstable"; - fs = "du -ah . | sort -hr | head -n 10"; - - n = "nix"; - nd = "nix develop -c $SHELL"; - ns = "nix shell"; - nsn = "nix shell nixpkgs#"; - nb = "nix build"; - nbn = "nix build nixpkgs#"; - nf = "nix flake"; - - nr = "sudo nixos-rebuild --flake ."; - nrs = "sudo nixos-rebuild switch --flake .#(uname -n)"; - snr = "sudo nixos-rebuild --flake ."; - snrs = "sudo nixos-rebuild --flake . switch"; - hm = "home-manager --flake ."; - hms = "home-manager --flake . switch"; - hmr = "cd ~/projects/nix-configurations; nix flake lock --update-input dotfiles; home-manager --flake .#(whoami)@(hostname) switch"; - - tsu = "sudo tailscale up"; - tsd = "sudo tailscale down"; - - vi = "nvim"; - vim = "nvim"; - }; - }; - }; -} diff --git a/home/features/cli/fzf.nix b/home/features/cli/fzf.nix deleted file mode 100644 index 6219f4d..0000000 --- a/home/features/cli/fzf.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ - config, - lib, - ... -}: -with lib; let - cfg = config.features.cli.fzf; -in { - options.features.cli.fzf.enable = mkEnableOption "enable fuzzy finder"; - - config = mkIf cfg.enable { - programs.fzf = { - enable = true; - enableFishIntegration = true; - colors = { - "fg" = "#f8f8f2"; - "bg" = "#282a36"; - "hl" = "#bd93f9"; - "fg+" = "#f8f8f2"; - "bg+" = "#44475a"; - "hl+" = "#bd93f9"; - "info" = "#ffb86c"; - "prompt" = "#50fa7b"; - "pointer" = "#ff79c6"; - "marker" = "#ff79c6"; - "spinner" = "#ffb86c"; - "header" = "#6272a4"; - }; - defaultOptions = [ - "--preview='bat --color=always -n {}'" - "--bind 'ctrl-/:toggle-preview'" - "--header 'Press CTRL-Y to copy command into clipboard'" - "--bind 'ctrl-/:toggle-preview'" - "--bind 'ctrl-y:execute-silent(echo -n {2..} | wl-copy)+abort'" - ]; - defaultCommand = "fd --type f --exclude .git --follow --hidden"; - changeDirWidgetCommand = "fd --type d --exclude .git --follow --hidden"; - }; - }; -} diff --git a/home/features/cli/nitch.nix b/home/features/cli/nitch.nix deleted file mode 100644 index 1177299..0000000 --- a/home/features/cli/nitch.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: -with lib; let - cfg = config.features.cli.nitch; -in { - options.features.cli.nitch.enable = mkEnableOption "enable nitch"; - - config = mkIf cfg.enable { - home.packages = with pkgs; [nitch]; - }; -} diff --git a/home/features/cli/nushell.nix b/home/features/cli/nushell.nix deleted file mode 100644 index 4235fdc..0000000 --- a/home/features/cli/nushell.nix +++ /dev/null @@ -1,88 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: -with lib; let - cfg = config.features.cli.nushell; -in { - options.features.cli.nushell.enable = mkEnableOption "enable nushell"; - - config = mkIf cfg.enable { - programs.nushell = { - enable = true; - envFile.text = '' - $env.config.show_banner = false - $env.NIX_PATH = "nixpkgs=channel:nixos-unstable" - $env.NIX_LOG = "iunfo" - $env.WEBKIT_DISABLE_COMPOSITING_MODE = "1" - $env.TERMINAL = "ghostty" - $env.EDITOR = "nvim" - $env.VISUAL = "zeditor" - $env.FZF_DEFAULT_COMMAND = "fd --type f --exclude .git --follow --hidden" - $env.FZF_DEFAULT_OPTS = "--preview='bat --color=always -n {}' --bind 'ctrl-/:toggle-preview' --header 'Press CTRL-Y to copy command into clipboard' --bind 'ctrl-/:toggle-preview' --bind 'ctrl-y:execute-silent(echo -n {2..} | wl-copy)+abort' --color bg:#282a36,bg+:#44475a,fg:#f8f8f2,fg+:#f8f8f2,header:#6272a4,hl:#bd93f9,hl+:#bd93f9,info:#ffb86c,marker:#ff79c6,pointer:#ff79c6,prompt:#50fa7b,spinner:#ffb86c" - $env.XDG_DATA_HOME = $"($env.HOME)/.local/share" - $env.FZF_DEFAULT_COMMAND = "fd --type f --exclude .git --follow --hidden" - $env.SSH_AUTH_SOCK = "/run/user/1000/gnupg/S.gpg-agent.ssh" - $env.PATH = ($env.PATH | split row (char esep) | append "/home/sascha.koenig/.cache/.bun/bin" | uniq) - $env.FLAKE = $"($env.HOME)/p/NIX/nixos-config" - - # Load kestractl-env from agenix - if ("/run/agenix/kestractl-env" | path exists) { - open /run/agenix/kestractl-env - | lines - | where {($in | str trim | str length) > 0} - | parse "{key}={value}" - | update value {str trim -c '"'} - | transpose -r -d - | load-env - } - ''; - - # if (tty) == "/dev/tty1" { - # exec uwsm start -S -F /run/current-system/sw/bin/Hyprland - # } - # if (tty) == "/dev/tty2" { - # exec gamescope -O HDMI-A-1 -W 1920 -H 1080 --adaptive-sync --hdr-enabled --rt --steam -- steam -pipewire-dmabuf -tenfoot - # } - configFile.text = '' - - alias .. = cd .. - alias ... = cd ... - alias h = cd $env.HOME - alias b = yazi - alias lt = eza --tree --level=2 --long --icons --git - alias grep = rg - alias just = just --unstable - - alias n = nix - alias nd = nix develop -c $nu.current-shell - alias ns = nix shell - alias nsn = nix shell nixpkgs# - alias nb = nix build - alias nbn = nix build nixpkgs# - alias nf = nix flake - - alias nr = sudo nixos-rebuild --flake . - alias nrs = sudo nixos-rebuild switch --flake .#(sys host | get hostname) - alias snr = sudo nixos-rebuild --flake . - alias snrs = sudo nixos-rebuild --flake . switch - alias hm = home-manager --flake . - alias hms = home-manager --flake . switch - alias hmr = do { cd ~/projects/nix-configurations; nix flake lock --update-input dotfiles; home-manager --flake .#(whoami)@(hostname) switch } - - alias tsu = sudo tailscale up - alias tsd = sudo tailscale down - - alias vi = nvim - alias vim = nvim - - if (which tv | is-not-empty) { - mkdir ($nu.data-dir | path join "vendor/autoload") - tv init nu | save -f ($nu.data-dir | path join "vendor/autoload/tv.nu") - } - ''; - }; - }; -} diff --git a/home/features/cli/secrets.nix b/home/features/cli/secrets.nix deleted file mode 100644 index a4a7578..0000000 --- a/home/features/cli/secrets.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: -with lib; let - cfg = config.features.cli.secrets; -in { - options.features.cli.secrets.enable = mkEnableOption "enable secrets"; - - config = mkIf cfg.enable { - programs.password-store = { - enable = true; - settings = { - PASSWORD_STORE_DIR = "$XDG_DATA_HOME/password-store"; - }; - package = - pkgs.pass-wayland.withExtensions - (exts: [exts.pass-otp exts.pass-import]); - }; - home.packages = with pkgs; [pinentry-gnome3]; - }; -} diff --git a/home/features/cli/starship.nix b/home/features/cli/starship.nix deleted file mode 100644 index 4a44694..0000000 --- a/home/features/cli/starship.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - config, - lib, - ... -}: -with lib; let - cfg = config.features.cli.starship; -in { - options.features.cli.starship.enable = mkEnableOption "enable starship prompt"; - - config = mkIf cfg.enable { - programs.starship = { - enable = true; - enableFishIntegration = true; - enableNushellIntegration = true; - }; - }; -} diff --git a/home/features/cli/television.nix b/home/features/cli/television.nix deleted file mode 100644 index bc1b036..0000000 --- a/home/features/cli/television.nix +++ /dev/null @@ -1,64 +0,0 @@ -{ - config, - lib, - ... -}: -with lib; let - cfg = config.features.cli.television; -in { - options.features.cli.television.enable = mkEnableOption "enable nitch"; - - config = mkIf cfg.enable { - programs.television = { - enable = true; - channels = { - tldr = { - metadata = { - description = "Browse TLDR pages"; - name = "tldr"; - requirements = [ - "tldr" - ]; - }; - preview = { - command = "tldr '{}'"; - }; - source = { - command = "tldr --list"; - }; - }; - git-diff = { - metadata = { - description = "A channel to select files from git diff commands"; - name = "git-diff"; - requirements = [ - "git" - ]; - }; - preview = { - command = "git diff HEAD --color=always -- '{}'"; - }; - source = { - command = "git diff --name-only HEAD"; - }; - }; - git-log = { - metadata = { - description = "A channel to select from git log entries"; - name = "git-log"; - requirements = [ - "git" - ]; - }; - preview = { - command = "git show -p --stat --pretty=fuller --color=always '{0}'"; - }; - source = { - command = "git log --oneline --date=short --pretty=\"format:%h %s %an %cd\" \"$@\""; - output = "{split: :0}"; - }; - }; - }; - }; - }; -} diff --git a/home/features/cli/zellij.nix b/home/features/cli/zellij.nix deleted file mode 100644 index 903ee04..0000000 --- a/home/features/cli/zellij.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ - config, - lib, - ... -}: -with lib; let - cfg = config.features.cli.zellij; -in { - options.features.cli.zellij.enable = mkEnableOption "enable tmux"; - - config = mkIf cfg.enable { - programs.zellij = { - enable = true; - }; - }; -} diff --git a/home/features/coding/default.nix b/home/features/coding/default.nix deleted file mode 100644 index 08ffc7b..0000000 --- a/home/features/coding/default.nix +++ /dev/null @@ -1,58 +0,0 @@ -{pkgs, ...}: { - imports = [ - ./opencode.nix - ]; - programs.mcp = { - enable = true; - servers = { - Ref = { - command = "sh"; - args = ["-c" "REF_API_KEY=$(cat /run/agenix/ref-key) exec bunx ref-tools-mcp@latest"]; - }; - Exa = { - command = "sh"; - args = ["-c" "EXA_API_KEY=$(cat /run/agenix/exa-key) exec bunx exa-mcp-server@latest tools=web_search_exa"]; - }; - Outline = { - url = "https://wiki.az-gruppe.com/mcp"; - }; - ContextMode = { - command = "sh"; - args = ["-c" "exec bunx context-mode@latest"]; - }; - }; - }; - home.packages = with pkgs; [ - agenix-cli - alejandra - bc - bun - devpod - kestractl - kitty - #devpod-desktop - (python3.withPackages (ps: - with ps; [ - pip - uv - # Scientific packages - numba - numpy - torch - srt - ])) - pyrefly - nixd - nix-update - sidecar - td - opencode-desktop - openspec - (qmd.override { - vulkanSupport = true; - cudaSupport = false; - }) - tailwindcss - tailwindcss-language-server - ]; -} diff --git a/home/features/coding/opencode.nix b/home/features/coding/opencode.nix deleted file mode 100644 index caa08af..0000000 --- a/home/features/coding/opencode.nix +++ /dev/null @@ -1,109 +0,0 @@ -# AZ-Gruppe work machine opencode overrides. -# The shared base module lives in m3ta-nixpkgs: -# modules/home-manager/coding/opencode.nix (coding.opencode options) -# Only work-specific provider config and model assignments live here. -{inputs, ...}: { - coding.opencode = { - enable = true; - agentsInput = inputs.agents; - - externalSkills = [ - { - src = inputs.skills-anthropic; - selectSkills = ["pdf" "docx" "frontend-design"]; - } - {src = inputs.skills-vercel;} - ]; - - # AZ-Gruppe LiteLLM endpoint + available models - extraSettings = { - provider = { - litellm = { - npm = "@ai-sdk/openai-compatible"; - name = "LiteLLM (AZ-Gruppe)"; - options.baseURL = "https://llm.az-gruppe.com/v1"; - models = { - "gpt-5.2" = { - name = "GPT-5.2"; - limit = { - context = 400000; - output = 128000; - }; - }; - "gpt-5.3-codex" = { - name = "GPT-5.3 Codex"; - limit = { - context = 400000; - output = 128000; - }; - }; - "claude-haiku-4-5" = { - name = "Claude Haiku 4.5"; - options = { - thinking = { - type = "enabled"; - budget_tokens = 16000; - }; - }; - limit = { - context = 200000; - output = 64000; - }; - }; - "claude-sonnet-4-6" = { - name = "Claude Sonnet 4.6"; - options = { - thinking = { - type = "enabled"; - budget_tokens = 16000; - }; - }; - limit = { - context = 200000; - output = 64000; - }; - }; - "claude-opus-4-6" = { - name = "Claude Opus 4.6"; - options = { - thinking = { - type = "enabled"; - budget_tokens = 16000; - }; - }; - limit = { - context = 200000; - output = 128000; - }; - }; - }; - }; - }; - }; - - # Model assignments for oh-my-opencode — all via AZ LiteLLM - ohMyOpencodeSettings = { - agents = { - sisyphus.model = "litellm/claude-opus-4-6"; - oracle.model = "litellm/claude-sonnet-4-6"; - librarian.model = "litellm/claude-sonnet-4-6"; - explore.model = "litellm/claude-haiku-4-5"; - multimodal-looker.model = "litellm/gpt-5.3-codex"; - prometheus.model = "litellm/claude-opus-4-6"; - metis.model = "litellm/claude-opus-4-6"; - momus.model = "litellm/claude-opus-4-6"; - atlas.model = "litellm/claude-sonnet-4-6"; - }; - categories = { - visual-engineering.model = "zai-coding-plan/glm-5"; - ultrabrain.model = "litellm/claude-opus-4-6"; - deep.model = "litellm/claude-sonnet-4-6"; - artistry.model = "zai-coding-plan/glm-5.1"; - quick.model = "litellm/claude-haiku-4-5"; - unspecified-low.model = "litellm/claude-sonnet-4-6"; - unspecified-high.model = "litellm/claude-opus-4-6"; - writing.model = "zai-coding-plan/glm-5.1"; - }; - }; - }; -} diff --git a/home/features/desktop/coding.nix b/home/features/desktop/coding.nix deleted file mode 100644 index 3084c5d..0000000 --- a/home/features/desktop/coding.nix +++ /dev/null @@ -1,153 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: -with lib; let - cfg = config.features.desktop.coding; -in { - options.features.desktop.coding.enable = - mkEnableOption "install coding related stuff"; - - config = mkIf cfg.enable { - home.packages = with pkgs; [ - nur.repos.charmbracelet.crush - bruno - bun - filezilla - insomnia - nodejs - ]; - - programs.zed-editor = { - enable = true; - userSettings = { - agent_servers = { - your_agent = { - command = "path_to_executable"; - args = []; - env = {}; - }; - }; - auto_update = false; - buffer_font_family = "FiraCode Nerd Font"; - buffer_font_size = 16; - context_servers = { - browsermcp = { - source = "custom"; - enabled = true; - command = "npx"; - args = ["@browsermcp/mcp@latest"]; - }; - some-context-server = { - source = "custom"; - command = "some-command"; - args = ["arg-1" "arg-2"]; - env = {}; - settings = {}; - }; - }; - features = { - copilot = false; - edit_prediction_provider = "zed"; - inline_prediction_provider = "zed"; - }; - format_on_save = "on"; - language_models = { - openai_compatible = { - AZ = { - api_url = "https://llm.az-gruppe.com"; - available_models = [ - { - name = "claude-4-5-sonnet"; - display_name = null; - max_tokens = 200000; - max_output_tokens = 32000; - max_completion_tokens = 200000; - capabilities = { - tools = true; - images = false; - parallel_tool_calls = false; - prompt_cache_key = false; - }; - } - ]; - }; - }; - anthropic = { - api_url = "https://api.anthropic.com"; - }; - ollama = { - api_url = "http://localhost:11434"; - }; - openai = { - api_url = "https://api.openai.com/v1"; - }; - }; - languages = { - Nix = { - formatter = { - external = { - arguments = ["-q" "-"]; - command = "alejandra"; - }; - }; - language_servers = ["nixd"]; - }; - Python = { - formatter = { - external = { - arguments = ["-"]; - command = "black"; - }; - }; - language_servers = ["pyrefly"]; - }; - }; - load_direnv = "shell_hook"; - lsp = { - pyrefly = { - command = { - args = ["--lsp"]; - env = {}; - path = "pyrefly"; - }; - settings = {}; - }; - rust_analyzer = { - binary = { - path_lookup = true; - }; - }; - }; - show_edit_predictions = true; - ssh_connections = [ - { - args = ["-i" "~/.ssh/sascha.koenig"]; - host = "152.53.186.119"; - port = 2022; - nickname = "AZ-CLD-1"; - "projects" = [ - { - paths = ["/home/sascha.koenig/AZ-NIX"]; - } - ]; - } - ]; - telemetry = { - metrics = false; - }; - theme = "Dracula"; - ui_font_size = 16; - vim_mode = true; - agent = { - default_model = { - model = "Claude 3.7 Sonnet"; - provider = "anthropic"; - }; - }; - }; - }; - }; -} diff --git a/home/features/desktop/default.nix b/home/features/desktop/default.nix deleted file mode 100644 index acd70e5..0000000 --- a/home/features/desktop/default.nix +++ /dev/null @@ -1,135 +0,0 @@ -{pkgs, ...}: { - imports = [ - ./coding.nix - ./fonts.nix - ./hyprland.nix - ./knowledge.nix - ./media.nix - ./office.nix - ./rofi.nix - ./theme.nix - ./wayland.nix - ./webapps.nix - ]; - - xdg = { - enable = true; - configFile."mimeapps.list".force = true; - mimeApps = { - enable = true; - associations.added = { - "application/zip" = ["org.gnome.FileRoller.desktop"]; - "application/csv" = ["calc.desktop"]; - "application/pdf" = ["okularApplication_pdf.desktop"]; - }; - defaultApplications = { - "application/zip" = ["org.gnome.FileRoller.desktop"]; - "application/csv" = ["calc.desktop"]; - "application/pdf" = ["okularApplication_pdf.desktop"]; - "application/md" = ["nvim.desktop"]; - "application/text" = ["nvim.desktop"]; - "x-scheme-handler/http" = ["vivaldi-stable.desktop"]; - "x-scheme-handler/https" = ["vivaldi-stable.desktop"]; - "text/html" = ["vivaldi-stable.desktop"]; - "application/xhtml+xml" = ["vivaldi-stable.desktop"]; - }; - }; - userDirs = { - enable = true; - createDirectories = true; - }; - }; - - home.sessionVariables = { - WEBKIT_DISABLE_COMPOSITING_MODE = "1"; - NIXOS_OZONE_WL = "1"; - TERMINAL = "ghostty"; - QT_QPA_PLATFORM = "wayland"; - XDG_CURRENT_DESKTOP = "Hyprland"; - XDG_SESSION_TYPE = "wayland"; - XDG_SESSION_DESKTOP = "Hyprland"; - }; - home.sessionPath = ["\${XDG_BIN_HOME}" "\${HOME}/.cargo/bin" "$HOME/.npm-global/bin" "$HOME/.cache/.bun/bin"]; - - fonts.fontconfig.enable = true; - - programs.ghostty = { - enable = true; - settings = { - font-family = "Fira Code"; - theme = "Dracula"; - copy-on-select = "clipboard"; - }; - }; - - home.pointerCursor = { - gtk.enable = true; - package = pkgs.bibata-cursors; - name = "Bibata-Modern-Ice"; - size = 20; - }; - services = { - cliphist = { - enable = true; - }; - remmina = { - enable = true; - systemdService = { - enable = true; - }; - }; - }; - - home.packages = with pkgs; [ - appimage-run - # blueberry - bemoji - brave - # brightnessctl - # clipman - distrobox - # eww - # firefox-devedition - file-roller - kdotool - ksnip - hyprpaper-random - hyprpanel - launch-webapp - lmstudio - rustdesk - seahorse - sushi - # glib - # google-chrome - # gsettings-desktop-schemas - # graphviz - # ksnip - nwg-look - # pamixer - # pavucontrol - # libsForQt5.qtstyleplugins - # stable.nyxt - # pcmanfm - rose-pine-hyprcursor - # qt5ct - # qt6.qtwayland - #rustdesk - # socat - # unrar - # unzip - # usbutils - # v4l-utils - slack - telegram-desktop - vivaldi - vivaldi-ffmpeg-codecs - warp-terminal - # wl-clipboard - # wlogout - # wtype - # xdg-utils - # ydotool - # zip - ]; -} diff --git a/home/features/desktop/fonts.nix b/home/features/desktop/fonts.nix deleted file mode 100644 index cb69db2..0000000 --- a/home/features/desktop/fonts.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: -with lib; let - cfg = config.features.desktop.fonts; -in { - options.features.desktop.fonts.enable = - mkEnableOption "install additional fonts for desktop apps"; - - config = mkIf cfg.enable { - home.packages = with pkgs; [ - fira-code - fira-code-symbols - nerd-fonts.fira-code - nerd-fonts.jetbrains-mono - font-manager - font-awesome_5 - noto-fonts - ]; - }; -} diff --git a/home/features/desktop/gnome.nix b/home/features/desktop/gnome.nix deleted file mode 100644 index e69de29..0000000 diff --git a/home/features/desktop/hyprland.nix b/home/features/desktop/hyprland.nix deleted file mode 100644 index d1da50a..0000000 --- a/home/features/desktop/hyprland.nix +++ /dev/null @@ -1,319 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: -with lib; let - cfg = config.features.desktop.hyprland; -in { - options.features.desktop.hyprland.enable = - mkEnableOption "Hyprland related stuff"; - - config = mkIf cfg.enable { - wayland.windowManager.hyprland = { - settings = { - xwayland = { - force_zero_scaling = true; - }; - - exec-once = [ - "hyprpanel" - "while ! hyprpaper-random; do sleep 0.5; done" - "wl-paste --type text --watch cliphist store" # Stores only text data - "wl-paste --type image --watch cliphist store" # Stores only image data "wl-paste -p -t text --watch clipman store -P --histpath=\"~/.local/share/clipman-primary.json\"" - ]; - - env = [ - "XCURSOR_SIZE,32" - "HYPRCURSOR_THEME,Bibata-Modern-Ice" - "WLR_NO_HARDWARE_CURSORS,1" - "GTK_THEME,Dracula" - "XDG_CURRENT_DESKTOP,Hyprland" - "XDG_SESSION_TYPE,wayland" - "XDG_SESSION_DESKTOP,Hyprland" - "NIXOS_OZONE_WL,1" - ]; - - ecosystem = { - no_update_news = true; - no_donation_nag = true; - }; - - input = { - numlock_by_default = true; - touchdevice = { - enabled = true; - }; - kb_layout = "de,us"; - kb_variant = ""; - kb_model = ""; - kb_rules = ""; - kb_options = "ctrl:nocaps"; - follow_mouse = 1; - }; - - general = { - gaps_in = 5; - gaps_out = 5; - border_size = 1; - "col.active_border" = "rgba(9742b5ee) rgba(9742b5ee) 45deg"; - "col.inactive_border" = "rgba(44475aaa)"; - "col.nogroup_border" = "rgba(282a36dd)"; - "col.nogroup_border_active" = "rgb(bd93f9) rgb(44475a) 90deg"; - layout = "dwindle"; - }; - - decoration = { - shadow = { - enabled = true; - range = 60; - render_power = 3; - color = "rgba(${config.colorScheme.palette.base00}66)"; - offset = "1 2"; - scale = 0.97; - }; - rounding = 8; - blur = { - enabled = true; - size = 3; - passes = 3; - }; - active_opacity = 0.9; - inactive_opacity = 0.5; - }; - - animations = { - enabled = true; - bezier = "myBezier, 0.05, 0.9, 0.1, 1.05"; - animation = [ - "windows, 1, 7, myBezier" - "windowsOut, 1, 7, default, popin 80%" - "border, 1, 10, default" - "borderangle, 1, 8, default" - "fade, 1, 7, default" - "workspaces, 1, 6, default" - ]; - }; - - dwindle = { - pseudotile = true; - preserve_split = true; - }; - - master = { - new_status = "master"; - }; - - device = [ - { - name = "epic-mouse-v1"; - sensitivity = -0.5; - } - { - name = "zsa-technology-labs-moonlander-mark-i"; - kb_layout = "us"; - } - { - name = "keychron-keychron-k7"; - kb_layout = "us"; - } - ]; - windowrule = [ - # Floating dialogs - "match:class file_progress, float on" - "match:class confirm, float on" - "match:class dialog, float on" - "match:class download, float on" - "match:class notification, float on" - "match:class error, float on" - "match:class splash, float on" - "match:class confirmreset, float on" - "match:title Open File, float on" - "match:title branchdialog, float on" - "match:class pavucontrol-qt, float on" - "match:class pavucontrol, float on" - # wlogout - "match:class wlogout, fullscreen on" - "match:title wlogout, float on" - "match:title wlogout, fullscreen on" - # mpv - "match:class mpv, float on" - "match:class mpv, idle_inhibit focus" - "match:class mpv, opacity 1.0 override" - # Media/Volume/PiP - "match:title ^(Media viewer)$, float on" - "match:title ^(Volume Control)$, float on" - "match:title ^(Picture-in-Picture)$, float on" - # Pomodoro timer - "match:title ^(floating-pomodoro)$, float on" - "match:title ^(floating-pomodoro)$, size 250 50" - "match:title ^(floating-pomodoro)$, move 12 (monitor_h-150)" - "match:title ^(floating-pomodoro)$, pin on" - "match:initial_title .*streamlabs.com.*, no_blur on" - "border_color rgb(ffffff), match:xwayland 1" - ]; - - "$mainMod" = "SUPER"; - "$terminal" = "uwsm app -- ghostty"; - - bind = [ - "$mainMod, return, exec, nu -c zellij-ps" - # "$mainMod, t, exec, warp-terminal" - "$mainMod, t, exec, $terminal -e nu -c 'nitch; exec nu'" - "$mainMod SHIFT, t, exec, launch-timer" - "$mainMod SHIFT, e, exec, $terminal -e zellij_nvim" - "$mainMod, o, exec, hyprctl dispatch setprop activewindow opaque toggle" - #"$mainMod, r, exec, hyprctl dispatch focuswindow \"initialtitle:.*alert-box.*\" && hyprctl dispatch moveactive exact 4300 102 && hyprctl dispatch focuswindow \"initialtitle:.*chat-box.*\" && hyprctl dispatch moveactive exact 4300 512" - "$mainMod, R, exec, stt-ptt start" - "$mainMod, b, exec, thunar" - "$mainMod SHIFT, B, exec, vivaldi" - "$mainMod, Escape, exec, wlogout -p layer-shell" - "$mainMod, Space, togglefloating" - "$mainMod, q, killactive" - "$mainMod, M, exec, $terminal -e btop" - "$mainMod, N, exec, $terminal -e nvim" - "$mainMod, Z, exec, uwsm app -- zeditor" - "$mainMod, F, fullscreen" - "$mainMod SHIFT, V, togglefloating" - "$mainMod, D, exec, rofi -show" - "$mainMod, C, exec, bash -c 'FILE=/tmp/screenshot_$(date +%s).png; grim -g \"$(slurp)\" \"$FILE\" && ksnip \"$FILE\"'" - "$mainMod, V, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy" - "$mainMod SHIFT, S, exec, bemoji" - "$mainMod, P, exec, rofi-pass" - "$mainMod SHIFT, P, pseudo" - "$mainMod, J, togglesplit" - "$mainMod, h, movefocus, l" - "$mainMod, l, movefocus, r" - "$mainMod, k, movefocus, u" - "$mainMod, j, movefocus, d" - "$mainMod, 1, workspace, 1" - "$mainMod, 2, workspace, 2" - "$mainMod, 3, workspace, 3" - "$mainMod, 4, workspace, 4" - "$mainMod, 5, workspace, 5" - "$mainMod, 6, workspace, 6" - "$mainMod, 7, workspace, 7" - "$mainMod, 8, workspace, 8" - "$mainMod, 9, workspace, 9" - "$mainMod, 0, workspace, 10" - "$mainMod SHIFT, 1, movetoworkspace, 1" - "$mainMod SHIFT, 2, movetoworkspace, 2" - "$mainMod SHIFT, 3, movetoworkspace, 3" - "$mainMod SHIFT, 4, movetoworkspace, 4" - "$mainMod SHIFT, 5, movetoworkspace, 5" - "$mainMod SHIFT, 6, movetoworkspace, 6" - "$mainMod SHIFT, 7, movetoworkspace, 7" - "$mainMod SHIFT, 8, movetoworkspace, 8" - "$mainMod SHIFT, 9, movetoworkspace, 9" - "$mainMod SHIFT, 0, movetoworkspace, 10" - "$mainMod, mouse_down, workspace, e+1" - "$mainMod, mouse_up, workspace, e-1" - ]; - bindr = [ - "$mainMod, R, exec, stt-ptt stop" - ]; - bindm = [ - "$mainMod, mouse:272, movewindow" - "$mainMod, mouse:273, resizewindow" - ]; - }; - }; - - services.hypridle = { - enable = true; - settings = { - general = { - before_sleep_cmd = "hyprlock"; - after_sleep_cmd = "hyprctl dispatch dpms on"; - inhibit_sleep = 3; - }; - - listener = [ - { - timeout = 300; # 5 min - on-timeout = "hyprlock"; - } - { - timeout = 420; # 5.5 min - on-timeout = "hyprctl dispatch dpms off"; - on-resume = "hyprctl dispatch dpms on"; - } - ]; - }; - }; - - services.hyprpaper.enable = true; - - programs.hyprlock = { - enable = true; - settings = { - "$font" = "FiraCode Nerd Font"; - "$base" = "rgb(${config.colorScheme.palette.base00})"; - "$text" = "rgb(${config.colorScheme.palette.base05})"; - "$textAlpha" = "${config.colorScheme.palette.base05}"; - "$accentAlpha" = "${config.colorScheme.palette.base0D}"; - "$red" = "rgb(${config.colorScheme.palette.base08})"; - "$yellow" = "rgb(${config.colorScheme.palette.base0A})"; - - general = { - hide_cursor = true; - }; - - background = { - monitor = ""; - path = "${config.home.homeDirectory}/.config/hypr/wallpapers/wallhaven-lmmo8r_2560x1600.png"; - blur_passes = 0; - color = "rgb(${config.colorScheme.palette.base00})"; - }; - - label = [ - { - monitor = ""; - text = "$TIME"; - color = "$text"; - font_size = 90; - font_family = "$font"; - position = "30, 0"; - halign = "left"; - valign = "top"; - } - { - monitor = ""; - text = ''cmd[update:43200000] echo "$(date +"%A, %d %B %Y")"''; - color = "$text"; - font_size = 25; - font_family = "$font"; - position = "30, -150"; - halign = "left"; - valign = "top"; - } - ]; - - input-field = [ - { - monitor = ""; - size = "300, 60"; - outline_thickness = 4; - dots_size = 0.2; - dots_spacing = 0.2; - dots_center = true; - outer_color = "rgb(${config.colorScheme.palette.base0D})"; - inner_color = "rgb(${config.colorScheme.palette.base00})"; - font_color = "rgb(${config.colorScheme.palette.base05})"; - fade_on_empty = false; - placeholder_text = ''󰌾 Logged in as $USER''; - hide_input = false; - check_color = "rgb(${config.colorScheme.palette.base0D})"; - fail_color = "rgb(${config.colorScheme.palette.base08})"; - fail_text = ''$FAIL ($ATTEMPTS)''; - capslock_color = "rgb(${config.colorScheme.palette.base0A})"; - position = "0, -35"; - halign = "center"; - valign = "center"; - } - ]; - }; - }; - }; -} diff --git a/home/features/desktop/knowledge.nix b/home/features/desktop/knowledge.nix deleted file mode 100644 index dd4fed5..0000000 --- a/home/features/desktop/knowledge.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ - programs.obsidian = { - enable = true; - defaultSettings = { - app = { - safeMode = false; - }; - corePlugins = [ - "daily-notes" - "templates" - "tag-pane" - "outgoing-link" - "backlink" - "global-search" - "quick-switcher" - ]; - }; - }; -} diff --git a/home/features/desktop/media.nix b/home/features/desktop/media.nix deleted file mode 100644 index 562a25d..0000000 --- a/home/features/desktop/media.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: -with lib; let - cfg = config.features.desktop.media; -in { - options.features.desktop.media.enable = - mkEnableOption "enable media features"; - - config = mkIf cfg.enable { - home.packages = with pkgs; [ - # handbrake - # kdePackages.kdenlive - # makemkv - # mediainfo - amf - ffmpeg_6-full - gst_all_1.gstreamer - gst_all_1.gst-vaapi - handbrake - inkscape - kdePackages.kdenlive - krita - libation - #makemkv - pamixer - pavucontrol - qpwgraph - v4l-utils - # uxplay - # vlc - # webcord - # yt-dlp - unimatrix - ]; - - programs = { - mpv = { - enable = true; - bindings = { - WHEEL_UP = "seek 10"; - WHEEL_DOWN = "seek -10"; - }; - config = { - profile = "gpu-hq"; - ytdl-format = "bestvideo+bestaudio"; - }; - }; - }; - }; -} diff --git a/home/features/desktop/office.nix b/home/features/desktop/office.nix deleted file mode 100644 index 4ff9d12..0000000 --- a/home/features/desktop/office.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: -with lib; let - cfg = config.features.desktop.office; -in { - options.features.desktop.office.enable = - mkEnableOption "install office and paperwork stuff"; - - config = mkIf cfg.enable { - home.packages = with pkgs; [ - anytype - evince - libreoffice-fresh - xournalpp - ]; - }; -} diff --git a/home/features/desktop/rofi.nix b/home/features/desktop/rofi.nix deleted file mode 100644 index 00f3993..0000000 --- a/home/features/desktop/rofi.nix +++ /dev/null @@ -1,202 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: -with lib; let - cfg = config.features.desktop.rofi; -in { - options.features.desktop.rofi.enable = mkEnableOption "enable rofi"; - - config = mkIf cfg.enable { - programs.rofi = with pkgs; { - enable = true; - package = rofi.override { - plugins = [ - rofi-calc - rofi-emoji - stable.rofi-file-browser - ]; - }; - pass = { - enable = true; - package = rofi-pass-wayland; - }; - terminal = "\${pkgs.ghostty}/bin/ghostty"; - font = "Fira Code"; - extraConfig = { - show-icons = true; - disable-history = false; - modi = "drun,calc,emoji,filebrowser"; - kb-primary-paste = "Control+V,Shift+Insert"; - kb-secondary-paste = "Control+v,Insert"; - }; - theme = let - inherit (config.colorScheme) palette; - in - toString (pkgs.writeText "rofi-universal-theme.rasi" '' - * { - /* Universal theme colors from nix-colors */ - background: #${palette.base00}; - surface: #${palette.base01}; - overlay: #${palette.base02}; - muted: #${palette.base03}; - subtle: #${palette.base04}; - text: #${palette.base05}; - bright-text: #${palette.base06}; - highlight: #${palette.base07}; - accent1: #${palette.base08}; - accent2: #${palette.base09}; - accent3: #${palette.base0A}; - accent4: #${palette.base0B}; - accent5: #${palette.base0C}; - accent6: #${palette.base0D}; - accent7: #${palette.base0E}; - accent8: #${palette.base0F}; - - /* Global properties */ - background-color: @background; - text-color: @text; - font: "Fira Code 12"; - border: 0; - margin: 0; - padding: 0; - spacing: 0; - } - - window { - background-color: @background; - border: 1px; - border-color: @accent7; - border-radius: 6px; - width: 40%; - padding: 16px; - } - - inputbar { - children: [ prompt, entry ]; - spacing: 12px; - padding: 8px; - border-radius: 4px; - background-color: @surface; - } - - prompt { - text-color: @accent7; - background-color: transparent; - } - - entry { - placeholder: "Search..."; - placeholder-color: @subtle; - text-color: @text; - background-color: transparent; - cursor-color: @accent7; - } - - message { - background-color: @surface; - border-radius: 4px; - padding: 8px; - margin: 8px 0; - } - - textbox { - text-color: @text; - background-color: transparent; - } - - listview { - background-color: transparent; - margin: 8px 0 0; - lines: 10; - columns: 1; - fixed-height: true; - scrollbar: false; - } - - element { - background-color: transparent; - text-color: @text; - padding: 8px; - border-radius: 4px; - spacing: 8px; - } - - element normal.normal { - background-color: transparent; - text-color: @text; - } - - element selected.normal { - background-color: @accent7; - text-color: @background; - } - - element alternate.normal { - background-color: transparent; - text-color: @text; - } - - element-icon { - background-color: transparent; - size: 24px; - } - - element-text { - background-color: transparent; - text-color: inherit; - vertical-align: 0.5; - } - - mode-switcher { - spacing: 0; - background-color: @surface; - border-radius: 4px; - margin: 8px 0 0; - } - - button { - padding: 8px 16px; - background-color: transparent; - text-color: @text; - border-radius: 4px; - } - - button selected { - background-color: @accent7; - text-color: @background; - } - - /* Scrollbar */ - scrollbar { - width: 4px; - border: 0; - handle-color: @accent7; - handle-width: 4px; - padding: 0; - } - ''); - }; - cli.rofi-project-opener = { - enable = true; - projectDirs = { - AI = { - path = "~/p/AI"; - args = ""; - }; - NIX = { - path = "~/p/NIX"; - args = ""; - }; - CHAT = { - path = "~/p/CHAT"; - args = "--agent chiron"; - }; - }; - terminal = pkgs.ghostty; - terminalCommand = "opencode %a"; - }; - }; -} diff --git a/home/features/desktop/theme.nix b/home/features/desktop/theme.nix deleted file mode 100644 index 961df9a..0000000 --- a/home/features/desktop/theme.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ - config, - inputs, - pkgs, - ... -}: { - colorScheme = inputs.nix-colors.colorSchemes.dracula; - qt = { - enable = true; - platformTheme.name = "gtk"; - }; - gtk = { - enable = true; - theme = { - name = "Dracula"; - package = pkgs.dracula-theme; - }; - iconTheme = { - name = "Dracula"; - package = pkgs.dracula-icon-theme; - }; - gtk4.theme = config.gtk.theme; - }; -} diff --git a/home/features/desktop/wayland.nix b/home/features/desktop/wayland.nix deleted file mode 100644 index 17169fe..0000000 --- a/home/features/desktop/wayland.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: -with lib; let - cfg = config.features.desktop.wayland; -in { - options.features.desktop.wayland.enable = mkEnableOption "wayland extra tools and config"; - - config = mkIf cfg.enable { - home.packages = with pkgs; [ - grim - hyprcursor - hyprlock - nwg-displays - nwg-look - qt6.qtwayland - slurp - waypipe - wl-clipboard - wf-recorder - wl-mirror - wlogout - wtype - ydotool - ]; - }; -} diff --git a/home/features/desktop/webapps.nix b/home/features/desktop/webapps.nix deleted file mode 100644 index 57ed3fc..0000000 --- a/home/features/desktop/webapps.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ - pkgs, - lib, - ... -}: let - icons = { - teams = pkgs.fetchurl { - url = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/microsoft-teams.svg"; - sha256 = "sha256-Pr9QS8nnXJq97r4/G3c6JXi34zxHl0ps9gcyI8cN/s8="; - }; - outlook = pkgs.fetchurl { - url = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/microsoft-outlook.svg"; - sha256 = "sha256-3u8t5QNHFZvrAegxBiGicO4PjtMWhEaQSCv7MSSfLLc="; - }; - opencode = pkgs.fetchurl { - url = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/opencode-dark.svg"; - sha256 = "1lms4f8habamvdh2qqqz9psx4py9wx23mmlkkds44pvrbq3bkj3n"; - }; - }; -in { - xdg.desktopEntries = { - teams = { - name = "Microsoft Teams"; - exec = "launch-webapp https://teams.microsoft.com"; - comment = "Open Microsoft Teams as a Desktop App"; - categories = ["Application" "Network" "Chat"]; - terminal = false; - icon = icons.teams; - }; - outlook = { - name = "Microsoft Outlook"; - exec = "launch-webapp https://outlook.office.com/mail/"; - comment = "Open Microsoft Outlook as a Desktop App"; - categories = ["Application" "Network"]; - terminal = false; - icon = icons.outlook; - }; - basecamp = { - name = "Basecamp"; - exec = "launch-webapp https://3.basecamp.com/5996442/"; - comment = "Open Basecamp as a Desktop App"; - categories = ["Application" "Network"]; - terminal = false; - icon = "/home/sascha.koenig/.local/share/icons/basecamp-logo.png"; - }; - opencode = { - name = "Opencode"; - exec = "rofi-project-opener"; - comment = "Open Opencode Terminal App"; - categories = ["Application" "Development"]; - terminal = false; - icon = icons.opencode; - }; - }; -}