From 70bec368aeab0af5fbba5adeb594d76e46e028e2 Mon Sep 17 00:00:00 2001 From: isabel Date: Tue, 30 Sep 2025 08:38:18 +0000 Subject: [PATCH] refactor!: remove robin --- .github/CODEOWNERS | 5 ----- .sops.yaml | 6 ------ docs/src/design/layout.md | 2 -- home/robin/cli/atuin.nix | 17 ----------------- home/robin/cli/bat.nix | 14 -------------- home/robin/cli/default.nix | 20 -------------------- home/robin/cli/eza.nix | 20 -------------------- home/robin/cli/fd.nix | 12 ------------ home/robin/cli/fzf.nix | 42 ------------------------------------------ home/robin/cli/gh.nix | 13 ------------- home/robin/cli/git.nix | 175 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- home/robin/cli/goc.nix | 16 ---------------- home/robin/cli/jj.nix | 163 ------------------------------------------------------------------------------------------------------------------------------------------------------------------- home/robin/cli/nix-your-shell.nix | 6 ------ home/robin/cli/ripgrep.nix | 14 -------------- home/robin/cli/shell/bash.nix | 20 -------------------- home/robin/cli/shell/default.nix | 8 -------- home/robin/cli/shell/fish.nix | 127 ------------------------------------------------------------------------------------------------------------------------------- home/robin/cli/shell/shellAlias.nix | 16 ---------------- home/robin/cli/shell/zsh.nix | 47 ----------------------------------------------- home/robin/cli/starship.nix | 142 ---------------------------------------------------------------------------------------------------------------------------------------------- home/robin/cli/typst.nix | 16 ---------------- home/robin/cli/zk.nix | 73 ------------------------------------------------------------------------- home/robin/cli/zoxide.nix | 8 -------- home/robin/default.nix | 11 ----------- home/robin/gui/aseprite.nix | 18 ------------------ home/robin/gui/cava.nix | 36 ------------------------------------ home/robin/gui/chromium.nix | 7 ------- home/robin/gui/cosmic-files.nix | 23 ----------------------- home/robin/gui/default.nix | 20 -------------------- home/robin/gui/discord/default.nix | 30 ------------------------------ home/robin/gui/discord/moonlight.nix | 179 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- home/robin/gui/discord/settings.nix | 15 --------------- home/robin/gui/discord/vencord.json | 0 home/robin/gui/dunst.nix | 254 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- home/robin/gui/firefox.nix | 4 ---- home/robin/gui/ghostty.nix | 60 ------------------------------------------------------------ home/robin/gui/hyprland/config/animations.nix | 31 ------------------------------- home/robin/gui/hyprland/config/binds.nix | 130 ---------------------------------------------------------------------------------------------------------------------------------- home/robin/gui/hyprland/config/decorations.nix | 31 ------------------------------- home/robin/gui/hyprland/config/default.nix | 16 ---------------- home/robin/gui/hyprland/config/exec.nix | 22 ---------------------- home/robin/gui/hyprland/config/extra.nix | 93 --------------------------------------------------------------------------------------------- home/robin/gui/hyprland/config/general.nix | 14 -------------- home/robin/gui/hyprland/config/group.nix | 18 ------------------ home/robin/gui/hyprland/config/inputs.nix | 34 ---------------------------------- home/robin/gui/hyprland/config/layout.nix | 12 ------------ home/robin/gui/hyprland/config/misc.nix | 16 ---------------- home/robin/gui/hyprland/config/variables.nix | 40 ---------------------------------------- home/robin/gui/hyprland/config/windowrules.nix | 35 ----------------------------------- home/robin/gui/hyprland/default.nix | 49 ------------------------------------------------- home/robin/gui/obsidian.nix | 23 ----------------------- home/robin/gui/quickshell.nix | 25 ------------------------- home/robin/gui/satty.nix | 32 -------------------------------- home/robin/gui/spotify.nix | 20 -------------------- home/robin/gui/wezterm/cfg/bar.lua | 366 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ home/robin/gui/wezterm/cfg/keybinds.lua | 71 ----------------------------------------------------------------------- home/robin/gui/wezterm/cfg/palette.lua | 284 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- home/robin/gui/wezterm/cfg/utils.lua | 18 ------------------ home/robin/gui/wezterm/cfg/wezterm.lua | 138 ------------------------------------------------------------------------------------------------------------------------------------------ home/robin/gui/wezterm/default.nix | 13 ------------- home/robin/gui/zed.nix | 11 ----------- home/robin/gui/zen-browser.nix | 83 ----------------------------------------------------------------------------------- home/robin/packages.nix | 66 ------------------------------------------------------------------ home/robin/services/clipboard.nix | 22 ---------------------- home/robin/services/default.nix | 7 ------- home/robin/services/rnnoise.nix | 49 ------------------------------------------------- home/robin/services/tray.nix | 17 ----------------- home/robin/system/default.nix | 6 ------ home/robin/system/secrets.nix | 3 --- home/robin/system/ssh.nix | 45 --------------------------------------------- home/robin/themes/default.nix | 9 --------- home/robin/themes/evergarden.nix | 12 ------------ home/robin/themes/fonts.nix | 45 --------------------------------------------- home/robin/themes/global.nix | 14 -------------- home/robin/themes/gtk.nix | 84 ------------------------------------------------------------------------------------ home/robin/themes/qt.nix | 35 ----------------------------------- home/robin/tui/default.nix | 10 ---------- home/robin/tui/gh-dash.nix | 1 - home/robin/tui/hyfetch/default.nix | 41 ----------------------------------------- home/robin/tui/hyfetch/kitty.ascii | 4 ---- home/robin/tui/izrss.nix | 54 ------------------------------------------------------ home/robin/tui/lazygit.nix | 24 ------------------------ home/robin/tui/neovim.nix | 12 ------------ home/robin/tui/tmux.nix | 150 ------------------------------------------------------------------------------------------------------------------------------------------------------ home/robin/tui/yazi.nix | 217 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- modules/nixos/users/default.nix | 1 - modules/nixos/users/robin.nix | 11 ----------- secrets/robin.yaml | 0 systems/bmo/default.nix | 60 ------------------------------------------------------------ systems/bmo/hardware.nix | 22 ---------------------- systems/bmo/users.nix | 25 ------------------------- systems/default.nix | 10 ---------- systems/wisp/default.nix | 43 ------------------------------------------- systems/wisp/users.nix | 14 -------------- 95 file(s) changed, 0 insertion(s)(+), 4377 deletion(s)(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,7 +1,2 @@ # make me own it allllll * @isabelroses - -# give comfysage all the things she wants -/home/robin/* @comfysage -/systems/cottage/* @comfysage -/systems/wisp/* @comfysage diff --git a/.sops.yaml b/.sops.yaml --- a/.sops.yaml +++ b/.sops.yaml @@ -1,6 +1,5 @@ keys: - &isabel ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMQDiHbMSinj8twL9cTgPOfI6OMexrTZyHX27T8gnMj2 - - &robin age15sejxcynw44vgsee5znxvq7vtuust686wn4f3u0upp42zay6ugqqp5lvv8 - &minerva ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAomF8O3ZqZBpLRlAkS1+FwRllSMrREHtndw07trrfcA - &skadi ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKV3N2r1cX3kZMHxuJYaFsjWJRtik/2b/KZ5ru38IqAT @@ -12,11 +11,6 @@ - path_regex: secrets/isabel\.yaml key_groups: - age: - *isabel - - - path_regex: secrets/robin\.yaml - key_groups: - - age: - - *robin - path_regex: secrets/services/[^/]+\.(yaml|json|env|ini)$ key_groups: diff --git a/docs/src/design/layout.md b/docs/src/design/layout.md --- a/docs/src/design/layout.md +++ b/docs/src/design/layout.md @@ -4,14 +4,12 @@ | Name | Main User | Type | OS | Extra Details | | --------- | --------- | ------- | ----- | ------------- | | amaterasu | isabel | Desktop | NixOS | A powerful desktop dual booting windows 11 | | athena | isabel | Hybrid | NixOS | My oldest laptop, altogh this flake still supports it, its barely in use | -| bmo | robin | Laptop | NixOS | Robin's laptop | | aphrodite | isabel | Sever | NixOS | The host of most tgirl.cloud services | | lilith | n/a | Iso | NixOS | An iso image of my NixOS configuration, used to install NixOS on new systems | | minerva | isabel | Server | NixOS | This is the orginal server, hosting most of my personal services | | skadi | isabel | Server | NixOS | Oracle free server, mostly used for the pds and aarch64 builds | | tatsumaki | isabel | Laptop | macOS | A macbook air, given to me by uni, almost exclusively used at uni | | valkyrie | isabel | WSL2 | NixOS | This is my WSL2 instance, installed on amaterasu | -| wisp | robin | WSL2 | NixOS | Robin's WSL2 instance, installed on her desktop | ### 🧩 Modules diff --git a/home/robin/cli/atuin.nix b/home/robin/cli/atuin.nix deleted file mode 100644 --- a/home/robin/cli/atuin.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ config, ... }: -{ - programs.atuin = { - inherit (config.garden.profiles.workstation) enable; - - flags = [ "--disable-up-arrow" ]; - settings = { - dialect = "uk"; - show_preview = true; - inline_height = 30; - style = "compact"; - update_check = false; - sync_address = "https://atuin.isabelroses.com"; - sync_frequency = "5m"; - }; - }; -} diff --git a/home/robin/cli/bat.nix b/home/robin/cli/bat.nix deleted file mode 100644 --- a/home/robin/cli/bat.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ config, ... }: -let - inherit (config.garden.programs) defaults; -in -{ - programs.bat = { - inherit (config.garden.profiles.workstation) enable; - - config = { - inherit (defaults) pager; - style = "plain"; - }; - }; -} diff --git a/home/robin/cli/default.nix b/home/robin/cli/default.nix deleted file mode 100644 --- a/home/robin/cli/default.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ - imports = [ - ./shell - ./atuin.nix - ./bat.nix - ./eza.nix - ./fd.nix - ./fzf.nix - ./gh.nix - ./git.nix - ./goc.nix - ./jj.nix - ./nix-your-shell.nix - ./ripgrep.nix - ./starship.nix - ./typst.nix - ./zk.nix - ./zoxide.nix - ]; -} diff --git a/home/robin/cli/eza.nix b/home/robin/cli/eza.nix deleted file mode 100644 --- a/home/robin/cli/eza.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ config, ... }: -{ - programs.eza = { - inherit (config.garden.profiles.workstation) enable; - icons = "auto"; - - enableNushellIntegration = false; - - extraOptions = [ - "-l" - "-a" - "--group" - "--group-directories-first" - "--no-user" - "--no-time" - "--no-permissions" - "--octal-permissions" - ]; - }; -} diff --git a/home/robin/cli/fd.nix b/home/robin/cli/fd.nix deleted file mode 100644 --- a/home/robin/cli/fd.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ config, ... }: -{ - programs.fd = { - inherit (config.garden.profiles.workstation) enable; - - hidden = true; - ignores = [ - ".git/" - "*.bak" - ]; - }; -} diff --git a/home/robin/cli/fzf.nix b/home/robin/cli/fzf.nix deleted file mode 100644 --- a/home/robin/cli/fzf.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ - lib, - pkgs, - config, - ... -}: -let - inherit (lib) getExe mapAttrsToList; - - find = "${getExe pkgs.fd} --type=f --hidden --exclude=.git"; -in -{ - programs.fzf = { - inherit (config.garden.profiles.workstation) enable; - - defaultCommand = find; - defaultOptions = - (mapAttrsToList (n: v: "--${n}='${v}'") { - margin = "0"; - padding = "0"; - height = "14"; - layout = "reverse-list"; - info = "inline-right"; - preview-window = "border-rounded"; - prompt = "οƒš "; - pointer = "οƒš"; - marker = "β”‚"; - separator = "─"; - scrollbar = "β”‚"; - }) - ++ [ "--no-separator" ]; - - fileWidgetCommand = find; - fileWidgetOptions = [ "--preview 'head {}'" ]; - - changeDirWidgetCommand = "${getExe pkgs.fd} --type=d --hidden --exclude=.git"; - - changeDirWidgetOptions = [ - "--preview 'tree -C {} | head -200'" - ]; - }; -} diff --git a/home/robin/cli/gh.nix b/home/robin/cli/gh.nix deleted file mode 100644 --- a/home/robin/cli/gh.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ config, ... }: -{ - config = { - programs.gh = { - enable = config.programs.git.enable && config.garden.profiles.workstation.enable; - - settings = { - git_protocol = "ssh"; - prompt = "enabled"; - }; - }; - }; -} diff --git a/home/robin/cli/git.nix b/home/robin/cli/git.nix deleted file mode 100644 --- a/home/robin/cli/git.nix +++ /dev/null @@ -1,175 +0,0 @@ -{ - lib, - pkgs, - self, - config, - ... -}: -let - inherit (lib) mkIf mkMerge map; - inherit (self.lib) giturl; - inherit (lib.hm.dag) entryBefore; - - cfg = config.programs.git; -in -{ - config = mkIf cfg.enable (mkMerge [ - (mkIf config.garden.profiles.workstation.enable { - garden.packages = { - inherit (pkgs) - gist # manage github gists - # act # local github actions - littrally does not work - gitflow # Extend git with the Gitflow branching model - ; - }; - }) - - # `programs.git` will generate the config file: ~/.config/git/config - # to make git use this config file, `~/.gitconfig` should not exist! - (mkIf pkgs.stdenv.hostPlatform.isDarwin { - home.activation = { - removeExistingGitconfig = entryBefore [ "checkLinkTargets" ] '' - rm -f ~/.gitconfig - ''; - }; - }) - - { - programs.git = { - package = pkgs.gitMinimal; - userName = "robin"; - userEmail = "comfysage" + "@" + "isabelroses" + "." + "com"; - - signing = { - format = "ssh"; - signByDefault = true; - }; - - delta = { - enable = true; - - options = { - navigate = true; - side-by-side = true; - line-numbers = true; - }; - }; - - aliases = { - index = "status -s"; - graph = "log --oneline --graph"; - ahead = "!git log --oneline @{u}..HEAD | grep -cE '.*'"; - - changelog = "-c pager.show=false show --format=' - %C(yellow)%h%C(reset) %<(80,trunc)%s' -q @@{1}..@@{0}"; - amend = "commit --amend"; - - fpush = "push --force-with-lease"; - - # stash - spush = "stash push -a"; - spop = "stash pop -q"; - }; - - ignores = [ - # system residue - ".cache/" - ".DS_Store" - ".Trashes" - ".Trash-*" - "*.bak" - "*.swp" - "*.swo" - "*.elc" - ".~lock*" - - # build residue - "tmp/" - "target/" - "result" - "result-*" - "*.exe" - "*.exe~" - "*.dll" - "*.so" - "*.dylib" - - # ide residue - ".idea/" - ".vscode/" - - # dependencies - ".direnv/" - "node_modules" - "vendor" - ]; - - extraConfig = { - core.editor = config.garden.programs.defaults.editor; - - # Qol - color.ui = "auto"; - - diff = { - algorithm = "histogram"; # a much better diff - colorMoved = "plain"; # show moved lines in a different color - }; - - safe.directory = "*"; - # add some must-use flags - pull.rebase = true; - rebase = { - autoSquash = true; - autoStash = true; - }; - merge.ff = "only"; - push.autoSetupRemote = true; - - gpg.format = "ssh"; - user.signingkey = "~/.ssh/keys.github.id_ed25519"; - # personal preference - init.defaultBranch = "main"; - # prevent data corruption - transfer.fsckObjects = true; - fetch.fsckObjects = true; - receive.fsckObjects = true; - - url = mkMerge ( - map giturl [ - { - domain = "github.com"; - alias = "github"; - } - { - domain = "gitlab.com"; - alias = "gitlab"; - } - { - domain = "aur.archlinux.org"; - alias = "aur"; - user = "aur"; - } - { - domain = "git.sr.ht"; - alias = "srht"; - } - { - domain = "codeberg.org"; - alias = "codeberg"; - } - { - domain = "git.isabelroses.com"; - alias = "izzy"; - port = 2222; - } - { - domain = "git.auxolotl.org"; - alias = "aux"; - user = "forgejo"; - } - ] - ); - }; - }; - } - ]); -} diff --git a/home/robin/cli/goc.nix b/home/robin/cli/goc.nix deleted file mode 100644 --- a/home/robin/cli/goc.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ - lib, - pkgs, - config, - ... -}: -let - inherit (lib) mkIf; -in -{ - config = mkIf config.programs.git.enable { - garden.packages = { - inherit (pkgs) cocogitto; - }; - }; -} diff --git a/home/robin/cli/jj.nix b/home/robin/cli/jj.nix deleted file mode 100644 --- a/home/robin/cli/jj.nix +++ /dev/null @@ -1,163 +0,0 @@ -{ - inputs, - config, - ... -}: -{ - programs.jujutsu = { - enable = config.programs.git.enable && config.garden.profiles.workstation.enable; - - settings = { - user = { - name = config.programs.git.userName; - email = config.programs.git.userEmail; - }; - - signing = { - behavior = "own"; - backend = "ssh"; - key = "~/.ssh/keys.github.id_ed25519"; - }; - - aliases = { - # initialize an empty git repo - init = [ - "git" - "init" - "--colocate" - ]; - - # create named bookmark at HEAD - name = [ - "bookmark" - "create" - "-r" - "head" - ]; - # update bookmark to point to HEAD - update = [ - "bookmark" - "move" - "--to" - "head" - ]; - # pull up the nearest bookmarks to the last described commit - tug = [ - "bookmark" - "move" - "--from" - "curbranch" - "--to" - "latest" - ]; - - # push the nearest bookmark - push = [ - "git" - "push" - "-r" - "curbranch" - ]; - - # pull incoming changes onto working branch - pull = [ - "rebase" - "-d" - "trunk()" - "--skip-emptied" - ]; - }; - - "revset-aliases" = { - "head" = "git_head()"; - "latest" = "latest(curbranch:: ~ bases:: ~ empty())"; - - "bases" = "bookmarks() & empty()"; - "downstream(x,y)" = "(x::y) & y"; - "branches" = "downstream(trunk(), bookmarks() ~ empty())"; - "heads" = "heads(trunk()::)"; - "leafs" = "branches | heads"; - "curbranch" = "latest(branches::@- & branches)"; - "nextbranch" = "roots(@:: & branchesandheads)"; - }; - - ui = { - default-command = "status"; - diff-editor = "nvim-hunk"; - merge-editor = "nvim-hunk"; - }; - - templates = { - log = "custom_log_compact"; - }; - - template-aliases = { - # custom components - "format_short_signature(signature)" = "signature.email().local()"; - "format_timestamp(timestamp)" = "timestamp.local().format('%Y%m%d %I:%M %P')"; - "format_custom_commit_header(commit)" = '' - separate(" ", - format_short_change_id_with_hidden_and_divergent_info(commit), - format_short_commit_id(commit.commit_id()), - commit.bookmarks(), - commit.tags(), - commit.working_copies(), - if(commit.git_head(), label("git_head", "git_head()")), - label("separator", "|"), - if(commit.conflict(), label("conflict", "conflict")), - format_short_signature(commit.author()), - if(config("ui.show-cryptographic-signatures").as_boolean(), - format_short_cryptographic_signature(commit.signature())), - ) - ''; - - # custom templates - "custom_log_compact" = '' - if(root, - format_root_commit(self), - label(if(current_working_copy, "working_copy"), - concat( - format_custom_commit_header(self) ++ "\n", - separate(" ", - if(empty, label("empty", "(empty)")), - if(description, - description.first_line(), - label(if(empty, "empty"), description_placeholder), - ), - ) ++ "\n", - ), - ) - ) - ''; - }; - - merge-tools.nvim = { - edit-args = [ - "-d" - "$left" - "$right" - ]; - }; - merge-tools.nvim-hunk = { - program = "nvim"; - edit-args = [ - "-d" - "$left" - "$right" - "$output" - ]; - }; - - colors = - let - inherit (config.evergarden) variant; - palette = inputs.evergarden.lib.palette.${variant}; - in - { - "working_copy commit_id" = "#${palette.overlay1}"; - "working_copy empty" = "#${palette.overlay2}"; - "working_copy empty description placeholder" = "#${palette.overlay2}"; - }; - }; - }; -} diff --git a/home/robin/cli/nix-your-shell.nix b/home/robin/cli/nix-your-shell.nix deleted file mode 100644 --- a/home/robin/cli/nix-your-shell.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ config, ... }: -{ - programs.nix-your-shell = { - inherit (config.garden.profiles.workstation) enable; - }; -} diff --git a/home/robin/cli/ripgrep.nix b/home/robin/cli/ripgrep.nix deleted file mode 100644 --- a/home/robin/cli/ripgrep.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ config, ... }: -{ - programs.ripgrep = { - inherit (config.garden.profiles.workstation) enable; - - # https://github.com/BurntSushi/ripgrep/blob/master/GUIDE.md#configuration-file - arguments = [ - "--max-columns=150" - "--max-columns-preview" - "--glob=!.git/*" - "--smart-case" - ]; - }; -} diff --git a/home/robin/cli/shell/bash.nix b/home/robin/cli/shell/bash.nix deleted file mode 100644 --- a/home/robin/cli/shell/bash.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ config, ... }: -{ - programs.bash = { - enable = true; - enableCompletion = true; - - historyFile = "${config.xdg.stateHome}/bash/history"; - historyFileSize = 1000; - historySize = 100; - shellOptions = [ - "cdspell" - "checkjobs" - "checkwinsize" - "dirspell" - "globstar" - "histappend" - "no_empty_cmd_completion" - ]; - }; -} diff --git a/home/robin/cli/shell/default.nix b/home/robin/cli/shell/default.nix deleted file mode 100644 --- a/home/robin/cli/shell/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ - imports = [ - ./bash.nix # bash configurations - ./fish.nix # fish configurations - ./shellAlias.nix # shell alias - ./zsh.nix # zsh configurations - ]; -} diff --git a/home/robin/cli/shell/fish.nix b/home/robin/cli/shell/fish.nix deleted file mode 100644 --- a/home/robin/cli/shell/fish.nix +++ /dev/null @@ -1,127 +0,0 @@ -{ - lib, - pkgs, - config, - ... -}: -let - inherit (lib) - getExe - optionalString - mapAttrs - ; - - buildColors = - opts: - builtins.concatStringsSep "\n" ( - builtins.attrValues (mapAttrs (name: value: "set fish_color_${name} ${value}") opts) - ); -in -{ - programs.fish = { - plugins = [ ]; - - functions = { - bj = "nohup $argv /dev/null &"; - "." = '' - set -l input $argv[1] - if echo $input | grep -q '^[1-9][0-9]*$' - set -l levels $input - for i in (seq $levels) - cd .. - end - else - echo "Invalid input format. Please use '' to go back a specific number of directories." - end - ''; - }; - - loginShellInit = optionalString pkgs.stdenv.hostPlatform.isDarwin '' - fish_add_path --move --prepend --path $HOME/.nix-profile/bin /run/wrappers/bin /etc/profiles/per-user/$USER/bin /run/current-system/sw/bin /nix/var/nix/profiles/default/bin - ''; - - shellInit = '' - # themeing - set fish_greeting - export "MICRO_TRUECOLOR=1" - set -g theme_display_date no - set -g theme_nerd_fonts yes - set -g theme_newline_cursor yes - - set SHELL ${getExe config.programs.fish.package} - '' - + (buildColors { - # default color - normal = "brwhite"; - - # commands like echo - command = "yellow"; - - # keywords like if - this falls back on the command color if unset - keyword = "red"; - - # quoted text like "abc" - quote = "green"; - - # IO redirections like >/dev/null - redirection = "magenta"; - - # process separators like ; and & - end = "brwhite"; - - # syntax errors - error = "red"; - - # ordinary command parameters - param = "teal"; - - # parameters that are filenames (if the file exists) - valid_path = "brred"; - - # options starting with β€œ-”, up to the first β€œ--” parameter - option = "teal"; - - # comments like β€˜# important’ - comment = "brwhite"; - - # selected text in vi visual mode - # selection = ""; - - # parameter expansion operators like * and ~ - operator = "brwhite"; - - # character escapes like \n and \x70 - escape = "teal"; - - # autosuggestions (the proposed rest of a command) - autosuggestion = "brblack"; - - # the current working directory in the default prompt - cwd = "yellow"; - - # the current working directory in the default prompt for the root user - cwd_root = "blue"; - - # the username in the default prompt - user = "green"; - - # the hostname in the default prompt - host = "magenta"; - - # the hostname in the default prompt for remote sessions (like ssh) - host_remote = "teal"; - - # the last command’s nonzero exit code in the default prompt - status = "red"; - - # the β€˜^C’ indicator on a canceled command - cancel = "brblack"; - - # history search matches and selected pager items (background only) - search_match = "brred"; - - # the current position in the history - history_current = "brred"; - }); - }; -} diff --git a/home/robin/cli/shell/shellAlias.nix b/home/robin/cli/shell/shellAlias.nix deleted file mode 100644 --- a/home/robin/cli/shell/shellAlias.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ - # This configuration creates the shell aliases across: bash, zsh and fish - home.shellAliases = { - mkdir = "mkdir -pv"; # always create pearent directory - df = "df -h"; # human readblity - reboot = "systemctl reboot"; - sysctl = "sudo systemctl"; - jctl = "journalctl -p 3 -xb"; # get error messages from journalctl - lg = "lazygit"; - - zzzpl = "cd ~/.local/share/zzz ; git pull ; git push ; cd -"; - zzzbk = "cd ~/.local/share/zzz ; git add . ; git commit -m 'chore: sync changes' ; git push ; cd -"; - - vi = "$EDITOR"; - }; -} diff --git a/home/robin/cli/shell/zsh.nix b/home/robin/cli/shell/zsh.nix deleted file mode 100644 --- a/home/robin/cli/shell/zsh.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ lib, config, ... }: -let - inherit (lib) mkDefault mkOrder; -in -{ - programs.zsh = { - enable = mkDefault (config.garden.programs.defaults.shell == "zsh"); - autosuggestion.enable = true; - enableCompletion = true; - syntaxHighlighting.enable = true; - - dotDir = "${config.xdg.configHome}/zsh"; - - history = { - path = config.xdg.stateHome + "/zsh/history"; - }; - - initContent = mkOrder 1000 ( - '' - function title_precmd_hook() { - print -Pn "\e]0;$(pwd)\a" - } - precmd_functions+=title_precmd_hook - '' - + '' - cd-rotate(){ - () { - builtin emulate -L zsh - while (( $#dirstack )) && ! builtin pushd -q $1 &>/dev/null; do - builtin popd -q $1 - done - (( $#dirstack )) - } "$@" && builtin zle reset-prompt; - } - cd-back(){ cd-rotate -0; } - cd-forward(){ cd-rotate +1; } - builtin zle -N cd-back - builtin zle -N cd-forward - bindkey "^[[1;3D" cd-forward - bindkey "^[[1;3C" cd-back - '' - + '' - setopt autopushd - '' - ); - }; -} diff --git a/home/robin/cli/starship.nix b/home/robin/cli/starship.nix deleted file mode 100644 --- a/home/robin/cli/starship.nix +++ /dev/null @@ -1,142 +0,0 @@ -{ config, ... }: -let - ss = symbol: style: { - inherit symbol; - format = "[$symbol ](${style})"; - }; -in -{ - programs.starship = { - inherit (config.garden.profiles.workstation) enable; - - settings = { - add_newline = true; - format = "$all$character"; - - character = { - success_symbol = "[󰧟](green)"; - error_symbol = "[󰧟](red)"; - vimcmd_symbol = "[󰝦](bright-black)"; - vimcmd_replace_one_symbol = "[r](bright-black)"; - vimcmd_replace_symbol = "[R](bright-black)"; - vimcmd_visual_symbol = "[󰝦](purple)"; - }; - - username = { - style_user = "bright-white"; - style_root = "black"; - format = "[$user]($style) "; - show_always = true; - }; - - directory = { - truncation_length = 3; - truncation_symbol = "…/"; - home_symbol = "σ°‹ž "; - read_only_style = "197"; - read_only = " ο€£ "; - style = "cyan"; - format = "[$path]($style)[$read_only]($read_only_style) "; - truncate_to_repo = true; - before_repo_root_style = ""; - repo_root_style = "cyan"; - repo_root_format = "[\\[$repo_root\\]]($repo_root_style) [$path]($style)[$read_only]($read_only_style) "; - - substitutions = { - "σ°‹ž /Documents" = "σ°ˆ™ "; - "σ°‹ž /documents" = "σ°ˆ™ "; - - "σ°‹ž /Downloads" = "ο€™ "; - "σ°‹ž /downloads" = "ο€™ "; - - "σ°‹ž /media/music" = " "; - "σ°‹ž /media/pictures" = "ο€Ύ "; - "σ°‹ž /media/videos" = "ο€½ "; - "σ°‹ž /Music" = " "; - "σ°‹ž /Pictures" = "ο€Ύ "; - "σ°‹ž /Videos" = "ο€½ "; - - "σ°‹ž /dev" = "󱌒 "; - "σ°‹ž /Dev" = "󱌒 "; - - "σ°‹ž /skl" = "σ°‘΄ "; - "σ°‹ž /.config" = " "; - }; - }; - - os = { - style = "bold white"; - format = "[$symbol]($style)"; - - symbols = { - Arch = "οŒƒ"; - Artix = "οŒƒ"; - Debian = "οŒ†"; - # Kali = "σ° ₯"; - EndeavourOS = ""; - Fedora = ""; - NixOS = "οŒ“"; - openSUSE = "οŒ”"; - SUSE = "οŒ”"; - Ubuntu = ""; - Raspbian = "οŒ•"; - #elementary = "οŒ‰"; - #Coreos = "οŒ…"; - Gentoo = ""; - #mageia = "" - CentOS = "οŒ„"; - #sabayon = "οŒ—"; - #slackware = ""; - Mint = ""; - Alpine = "οŒ€"; - #aosc = ""; - #devuan = "οŒ‡"; - Manjaro = "οŒ’"; - #rhel = "οŒ–"; - Macos = "󰀡"; - Linux = "ο…Ό"; - Windows = ""; - }; - }; - - container = ss " 󰏖" "yellow dimmed"; - python = ss "" "yellow"; - nodejs = ss " " "yellow"; - lua = ss "σ°’± " "blue"; - rust = ss "" "red"; - java = ss "ξ‰– " "red"; - c = ss " " "blue"; - golang = ss "" "blue"; - docker_context = ss " " "blue"; - - nix_shell = ss "@devshell" "blue"; - - git_branch = { - symbol = "󰘬 "; - format = "[$symbol $branch]($style) "; - truncation_length = 4; - truncation_symbol = "…/"; - style = "purple"; - }; - git_status = { - format = "[$all_status$ahead_behind]($style) "; - style = "bold green"; - conflicted = "="; - up_to_date = "󰄬 "; - untracked = "? "; - ahead = "⇑\${count}"; - diverged = "⇕⇑\${ahead_count}⇣\${behind_count}"; - behind = "⇣\${count}"; - stashed = "󰏗 "; - modified = "M "; - staged = "[++\\($count\\)](green)"; - renamed = "ο“• "; - deleted = "ο€” "; - disabled = true; - }; - - battery.disabled = true; - cmd_duration.disabled = true; - }; - }; -} diff --git a/home/robin/cli/typst.nix b/home/robin/cli/typst.nix deleted file mode 100644 --- a/home/robin/cli/typst.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ - lib, - pkgs, - config, - ... -}: -let - inherit (lib) mkIf; -in -{ - config = mkIf config.garden.profiles.workstation.enable { - garden.packages = { - inherit (pkgs) typst; - }; - }; -} diff --git a/home/robin/cli/zk.nix b/home/robin/cli/zk.nix deleted file mode 100644 --- a/home/robin/cli/zk.nix +++ /dev/null @@ -1,73 +0,0 @@ -{ - lib, - config, - ... -}: -let - inherit (lib) mkIf; - - inherit (config.garden.programs) defaults; -in -{ - config = mkIf config.garden.profiles.workstation.enable { - programs = { - bat.enable = lib.mkDefault true; - - zk = { - enable = true; - settings = { - note = { - # The default title used for new note, if no `--title` flag is provided. - default-title = "untitled"; - - # The charset used for random IDs. You can use: - # * letters: only letters from a to z. - # * numbers: 0 to 9 - # * alphanum: letters + numbers - # * hex: hexadecimal, from a to f and 0 to 9 - # * custom string: will use any character from the provided value - id-charset = "hex"; - - # Length of the generated IDs. - id-length = 8; - }; - - tool = { - inherit (defaults) editor pager; - - # Command used to preview a note during interactive fzf mode. - # Set it to an empty string "" to disable preview. - fzf-preview = "bat -p --color always {-1}"; - }; - - alias = { - list = "zk list --quiet -f oneline $@"; - ls = "zk list $@"; - wc = "zk list --sort word-count $@"; - - search = "zk list -i $@"; - - # Edit the last modified note. - editlast = "zk edit --limit 1 --sort modified- $@"; - - # Edit the notes selected interactively among the notes created the last two weeks. - # This alias doesn't take any argument, so we don't use $@. - recent = "zk edit --sort created- --created-after 'last two weeks' --interactive"; - - # Print paths separated with colons for the notes found with the given - # arguments. This can be useful to expand a complex search query into a flag - # taking only paths. For example: - # zk list --link-to "`zk path -m potato`" - path = "zk list --quiet --format {{path}} --delimiter , $@"; - - # Returns the Git history for the notes found with the given arguments. - # Note the use of a pipe and the location of $@. - hist = "zk list --format path --delimiter0 --quiet $@ | xargs -t -0 git log --patch --"; - - tags = "zk tag list $@"; - }; - }; - }; - }; - }; -} diff --git a/home/robin/cli/zoxide.nix b/home/robin/cli/zoxide.nix deleted file mode 100644 --- a/home/robin/cli/zoxide.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ config, ... }: -{ - programs.zoxide = { - inherit (config.garden.profiles.workstation) enable; - - options = [ "--cmd cd" ]; - }; -} diff --git a/home/robin/default.nix b/home/robin/default.nix deleted file mode 100644 --- a/home/robin/default.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ - imports = [ - ./cli # command line interface app confurations - ./gui # graphical interface app confurations - ./system # important system environment config - ./services # system services, organized by display protocol - ./themes # Application themeing - ./tui # terminal interface app confurations - ./packages.nix # system packages - ]; -} diff --git a/home/robin/gui/aseprite.nix b/home/robin/gui/aseprite.nix deleted file mode 100644 --- a/home/robin/gui/aseprite.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - lib, - pkgs, - config, - ... -}: -let - inherit (lib) mkIf; -in -{ - config = - mkIf (config.garden.profiles.graphical.enable && config.garden.profiles.workstation.enable) - { - garden.packages = { - inherit (pkgs) aseprite; - }; - }; -} diff --git a/home/robin/gui/cava.nix b/home/robin/gui/cava.nix deleted file mode 100644 --- a/home/robin/gui/cava.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ - lib, - config, - inputs, - ... -}: -let - inherit (lib) mkIf; - inherit (config.evergarden) variant; - palette = inputs.evergarden.lib.palette.${variant}; -in -{ - config = mkIf config.garden.profiles.graphical.enable { - programs.cava = { - enable = true; - settings = { - - general = { - bar_width = 2; - bar_spacing = 0; - sensitivity = 80; - }; - color = { - gradient = 1; - gradient_count = 6; - gradient_color_1 = "'#${palette.skye}'"; - gradient_color_2 = "'#${palette.aqua}'"; - gradient_color_3 = "'#${palette.green}'"; - gradient_color_4 = "'#${palette.lime}'"; - gradient_color_5 = "'#${palette.yellow}'"; - gradient_color_6 = "'#${palette.orange}'"; - }; - }; - }; - }; -} diff --git a/home/robin/gui/chromium.nix b/home/robin/gui/chromium.nix deleted file mode 100644 --- a/home/robin/gui/chromium.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ - programs.chromium = { - extensions = [ - "pihphjfnfjmdbhakhjifipfdgbpenobg" # DocsAfterDark - ]; - }; -} diff --git a/home/robin/gui/cosmic-files.nix b/home/robin/gui/cosmic-files.nix deleted file mode 100644 --- a/home/robin/gui/cosmic-files.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ - lib, - pkgs, - config, - ... -}: -let - inherit (lib) mkIf; -in -{ - config = - mkIf - ( - config.garden.profiles.graphical.enable - && config.garden.profiles.workstation.enable - && config.garden.programs.defaults.fileManager == "cosmic-files" - ) - { - garden.packages = { - inherit (pkgs) cosmic-files; - }; - }; -} diff --git a/home/robin/gui/default.nix b/home/robin/gui/default.nix deleted file mode 100644 --- a/home/robin/gui/default.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ - imports = [ - ./aseprite.nix - ./hyprland - ./cava.nix - ./chromium.nix - ./cosmic-files.nix - ./discord - ./dunst.nix - ./firefox.nix - ./ghostty.nix - ./obsidian.nix - ./quickshell.nix - ./satty.nix - ./spotify.nix - ./wezterm - ./zed.nix - ./zen-browser.nix - ]; -} diff --git a/home/robin/gui/discord/default.nix b/home/robin/gui/discord/default.nix deleted file mode 100644 --- a/home/robin/gui/discord/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ - lib, - config, - osConfig, - ... -}: -let - inherit (lib) mkIf mkMerge; - - vencordSettings = "${flakePath}/home/${username}/gui/discord/vencord.json"; - - inherit (osConfig.garden.environment) flakePath; - inherit (config.home) username; -in -{ - config = mkIf config.programs.discord.enable (mkMerge [ - { - programs.discord = { - moonlight = { - enable = true; - settings = import ./moonlight.nix { inherit config; }; - }; - vencord = { - settings = vencordSettings; - }; - settings = import ./settings.nix; - }; - } - ]); -} diff --git a/home/robin/gui/discord/moonlight.nix b/home/robin/gui/discord/moonlight.nix deleted file mode 100644 --- a/home/robin/gui/discord/moonlight.nix +++ /dev/null @@ -1,179 +0,0 @@ -{ config }: -let - evcfg = config.evergarden; -in -{ - extensions = { - moonbase = true; - disableSentry = true; - noTrack = true; - noHideToken = true; - alwaysFocus = { - enabled = false; - }; - betterCodeblocks = { - enabled = true; - }; - betterEmbedsYT = { - enabled = true; - }; - callIdling = { - enabled = true; - }; - callTimer = { - enabled = true; - }; - clearUrls = { - enabled = true; - }; - cloneExpressions = { - enabled = true; - }; - moonlight-css = { - enabled = true; - config = { - cssPath = "/home/robin/.config/moonlight-mod/themes/"; - recurseDirectory = false; - fileSelector = ".*\\.theme\\.css"; - paths = [ - "/home/robin/.config/moonlight-mod/themes/" - "@dark https://everviolet.github.io/discord/themes/evergarden-${evcfg.variant}-${evcfg.accent}.theme.css" - "@light https://everviolet.github.io/discord/themes/evergarden-summer-aqua.theme.css" - ]; - themeAttributes = true; - }; - }; - decor = { - enabled = true; - }; - dmDates = { - enabled = true; - }; - dmFavorites = { - enabled = true; - }; - domOptimizer = { - enabled = true; - }; - freeScreenShare = { - enabled = true; - }; - freeMoji = { - enabled = true; - }; - imgTitle = { - enabled = true; - }; - inAppNotifications = { - enabled = true; - }; - markdown = { - enabled = true; - }; - memberCount = { - enabled = true; - }; - mentionAvatars = { - enabled = true; - }; - nativeFixes = { - enabled = true; - config = { - vulkan = true; - disableRendererBackgrounding = false; - linuxUpdater = true; - }; - }; - neatSettingsContext = { - enabled = true; - }; - nicknameTools = { - enabled = true; - config = { - usernameEqualsDisplayname = "Show Username"; - reply = "Show Both"; - }; - }; - noHelp = { - enabled = true; - }; - noJoinMessageWave = { - enabled = true; - }; - noNotificationSoundExceptDms = { - enabled = true; - }; - platformStyles = { - enabled = true; - config = { - style = "osx"; - }; - }; - pronouns = { - enabled = true; - }; - remind-me = { - enabled = true; - }; - textReplacer = { - enabled = true; - config = { - patterns = { - "://x.com/" = "://fixupx.com/"; - "://reddit.com/" = "://rxddit.com/"; - "://vm.tiktok.com/" = "://vm.vxtiktok.com/"; - "://bsky.app/" = "://fxbsky.app/"; - }; - }; - }; - staffTags = { - enabled = true; - config = { - style = "icon"; - }; - }; - spotifySpoof = { - enabled = true; - }; - showVoiceMemberCount = { - enabled = true; - }; - showReplySelf = { - enabled = true; - }; - showMediaOptions = { - enabled = true; - }; - showAllRoles = { - enabled = true; - }; - sendTimestamps = { - enabled = true; - }; - experiments = { - enabled = true; - config = { - devtools = true; - staffSettings = true; - }; - }; - unminifyReactErrors = { - enabled = true; - }; - ownerCrown = { - enabled = true; - }; - platformIcons = { - enabled = true; - config = { - self = false; - memberList = false; - }; - }; - uwuifier = true; - translateText = true; - }; - repositories = [ - "https://moonlight-mod.github.io/extensions-dist/repo.json" - ]; -} diff --git a/home/robin/gui/discord/settings.nix b/home/robin/gui/discord/settings.nix deleted file mode 100644 --- a/home/robin/gui/discord/settings.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - SKIP_HOST_UPDATE = true; - DANGEROUS_ENABLE_DEVTOOLS_ONLY_ENABLE_IF_YOU_KNOW_WHAT_YOUR_DOING = true; - MIN_WIDTH = 940; - MIN_HEIGHT = 500; - openasar = { - setup = true; - quickstart = true; - }; - chromiumSwitches = { - }; - IS_MAXIMIZED = true; - IS_MINIMIZED = false; - trayBalloonShown = true; -} diff --git a/home/robin/gui/discord/vencord.json b/home/robin/gui/discord/vencord.json deleted file mode 100644 --- a/home/robin/gui/discord/vencord.json +++ /dev/null diff --git a/home/robin/gui/dunst.nix b/home/robin/gui/dunst.nix deleted file mode 100644 --- a/home/robin/gui/dunst.nix +++ /dev/null @@ -1,254 +0,0 @@ -{ config, ... }: -let - inherit (config.garden.style) fonts; -in -{ - services.dunst = { - enable = config.garden.profiles.graphical.enable && !config.programs.quickshell.enable; - settings = { - global = { - follow = "mouse"; - width = "(240, 340)"; - height = "160"; - origin = "top-right"; - offset = "4x4"; - scale = 0; - notification_limit = 3; - - indicate_hidden = "yes"; - - # Turn on the progess bar. It appears when a progress hint is passed with - # for example dunstify -h int:value:12 - progress_bar = true; - - # Set the progress bar height. This includes the frame, so make sure - # it's at least twice as big as the frame width. - progress_bar_height = 10; - - # Set the frame width of the progress bar - progress_bar_frame_width = 1; - - # Set the minimum width for the progress bar - progress_bar_min_width = 150; - - # Set the maximum width for the progress bar - progress_bar_max_width = 300; - - transparency = 0; # X11 only - - # Draw a line of "separator_height" pixel height between two - # notifications. - # Set to 0 to disable. - separator_height = 2; - - # Define a color for the separator. - # possible values are: - # * auto: dunst tries to find a color fitting to the background; - # * foreground: use the same color as the foreground; - # * frame: use the same color as the frame; - # * anything else will be interpreted as a X color. - separator_color = "frame"; - - # Padding between text and separator. - padding = 8; - - # Horizontal padding. - horizontal_padding = 12; - - # Padding between text and icon. - text_icon_padding = 17; - - # Defines width in pixels of frame around the notification window. - # Set to 0 to disable. - frame_width = 3; - - # Sort messages by urgency. - sort = "no"; - - # Don't remove messages, if the user is idle (no mouse or keyboard input) - # for longer than idle_threshold seconds. - # Set to 0 to disable. - # A client can set the 'transient' hint to bypass this. See the rules - # section for how to disable this if necessary - idle_threshold = 120; - - font = fonts.name; - - line_height = "1.2"; - - # Possible values are: - # full: Allow a small subset of html markup in notifications: - # bold - # italic - # strikethrough - # underline - # - # For a complete reference see - # . - # - # strip: This setting is provided for compatibility with some broken - # clients that send markup even though it's not enabled on the - # server. Dunst will try to strip the markup but the parsing is - # simplistic so using this option outside of matching rules for - # specific applications *IS GREATLY DISCOURAGED*. - # - # no: Disable markup parsing, incoming notifications will be treated as - # plain text. Dunst will not advertise that it has the body-markup - # capability if this is set as a global setting. - # - # It's important to note that markup inside the format option will be parsed - # regardless of what this is set to. - markup = "full"; - - # The format of the message. Possible variables are: - # %a appname - # %s summary - # %b body - # %i iconname (including its path) - # %I iconname (without its path) - # %p progress value if set ([ 0%] to [100%]) or nothing - # %n progress value if set without any extra characters - # %% Literal % - # Markup is allowed - format = "%s\n%b"; - - # Alignment of message text. - # Possible values are "left", "center" and "right". - alignment = "left"; - - # Vertical alignment of message text and icon. - # Possible values are "top", "center" and "bottom". - vertical_alignment = "center"; - - # Show age of message if message is older than show_age_threshold - # seconds. - # Set to -1 to disable. - show_age_threshold = 60; - - # Specify where to make an ellipsis in long lines. - # Possible values are "start", "middle" and "end". - ellipsize = "middle"; - - # Ignore newlines '\n' in notifications. - ignore_newline = "no"; - - # Stack together notifications with the same content - stack_duplicates = true; - - # Hide the count of stacked notifications with the same content - hide_duplicate_count = false; - - # Display indicators for URLs (U) and actions (A). - show_indicators = "yes"; - - ### Icons ### - - # Align icons left/right/top/off - icon_position = "left"; - - # Scale small icons up to this size, set to 0 to disable. Helpful - # for e.g. small files or high-dpi screens. In case of conflict, - # max_icon_size takes precedence over this. - min_icon_size = 0; - - # Scale larger icons down to this size, set to 0 to disable - max_icon_size = 32; - - ### History ### - - # Should a notification popped up from history be sticky or timeout - # as if it would normally do. - sticky_history = "yes"; - - # Maximum amount of notifications kept in history - history_length = 0; - - ### Misc/Advanced ### - - # dmenu path. - dmenu = "dmenu -p dunst:"; - - # Browser for opening urls in context menu. - browser = "xdg-open"; - - # Always run rule-defined scripts, even if the notification is suppressed - always_run_script = true; - - # Define the title of the windows spawned by dunst - title = "dunst"; - - # Define the class of the windows spawned by dunst - class = "dunst"; - - # Define the corner radius of the notification window - # in pixel size. If the radius is 0, you have no rounded - # corners. - # The radius will be automatically lowered if it exceeds half of the - # notification height to avoid clipping text and/or icons. - corner_radius = 4; - - # Ignore the dbus closeNotification message. - # Useful to enforce the timeout set by dunst configuration. Without this - # parameter, an application may close the notification sent before the - # user defined timeout. - ignore_dbusclose = false; - - ### Wayland ### - # These settings are Wayland-specific. They have no effect when using X11 - - # Uncomment this if you want to let notications appear under fullscreen - # applications (default: overlay) - # layer = top - - # Set this to true to use X11 output on Wayland. - force_xwayland = false; - - ### Legacy - - # Use the Xinerama extension instead of RandR for multi-monitor support. - # This setting is provided for compatibility with older nVidia drivers that - # do not support RandR and using it on systems that support RandR is highly - # discouraged. - # - # By enabling this setting dunst will not be able to detect when a monitor - # is connected or disconnected which might break follow mode if the screen - # layout changes. - force_xinerama = false; - - ### mouse - - # Defines list of actions for each mouse event - # Possible values are: - # * none: Don't do anything. - # * do_action: Invoke the action determined by the action_name rule. If there is no - # such action, open the context menu. - # * open_url: If the notification has exactly one url, open it. If there are multiple - # ones, open the context menu. - # * close_current: Close current notification. - # * close_all: Close all notifications. - # * context: Open context menu for the notification. - # * context_all: Open context menu for all notifications. - # These values can be strung together for each mouse event, and - # will be executed in sequence. - mouse_left_click = "close_current"; - mouse_middle_click = "do_action, close_current"; - mouse_right_click = "close_all"; - - # default timeout - timeout = 5; - }; - - urgency_low = { - timeout = 4; - }; - - urgency_normal = { - timeout = 5; - }; - - urgency_critical = { - timeout = 10; - }; - }; - }; -} diff --git a/home/robin/gui/firefox.nix b/home/robin/gui/firefox.nix deleted file mode 100644 --- a/home/robin/gui/firefox.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ lib, config, ... }: -{ - programs.firefox.enable = lib.mkDefault (config.garden.programs.defaults.browser == "firefox"); -} diff --git a/home/robin/gui/ghostty.nix b/home/robin/gui/ghostty.nix deleted file mode 100644 --- a/home/robin/gui/ghostty.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ - lib, - pkgs, - config, - ... -}: -{ - programs.ghostty = { - enable = lib.mkDefault ( - config.garden.profiles.graphical.enable && config.garden.programs.defaults.terminal == "ghostty" - ); - - # FIXME: ghostty is broken on darwin - package = if pkgs.stdenv.hostPlatform.isLinux then pkgs.ghostty else null; - - settings = { - command = "/etc/profiles/per-user/robin/bin/zsh --login"; - - background-opacity = 0.92; - cursor-style = "bar"; - window-padding-x = "4"; - window-padding-y = "0"; - window-padding-balance = true; - window-decoration = toString pkgs.stdenv.hostPlatform.isDarwin; - gtk-titlebar = false; - - window-save-state = "always"; - - font-family = config.garden.style.fonts.name; - font-size = 13; - font-feature = builtins.concatStringsSep "," [ - "zero" - "cv01" # `@ $ & % Q => ->` without gap - - # consistent style - # "cv33" # italic `i` j with left bottom bar and horizen top bar, just like regular style - - # no tails - "cv34" # italic `k` without circle, just like regular style - "cv35" # italic `l` without tail, just like regular style - # "cv36" # italic `x` without tails, just like regular style - # "ss06" # Break connected strokes between italic letters (al, ul, il ...) - - # disable ligatures - "ss01" # Broken equals ligatures (==, ===, !=, !==, =/=) - "ss02" # Broken compare and equal ligatures (<=, >=) - "ss04" # Break multiple underscores (__, #__) - - "ss03" # Enable arbitrary tag (allow to use any case in all tags) - - "ss05" # Thin backslash in escape letters (\w, \n, \r ...) - - "ss07" # Relax the conditions for multiple greaters ligatures (>> or >>>) - # "ss08" # Enable double headed arrows and reverse arrows (>>=, -<<, ->>, >- ...) - ]; - - adjust-cell-height = "20%"; - }; - }; -} diff --git a/home/robin/gui/hyprland/config/animations.nix b/home/robin/gui/hyprland/config/animations.nix deleted file mode 100644 --- a/home/robin/gui/hyprland/config/animations.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ - wayland.windowManager.hyprland.settings.animations = { - enabled = true; - first_launch_animation = false; - - # β–ˆβ–„β–„β€ƒβ–ˆβ–€β–€β€ƒβ–€β–ˆβ€ƒβ–ˆβ€ƒβ–ˆβ–€β–€β€ƒβ–ˆβ–€β–ˆβ€ƒ β€ƒβ–ˆβ–€β–€β€ƒβ–ˆβ–‘β–ˆβ€ƒβ–ˆβ–€β–ˆβ€ƒβ–ˆβ–‘β–ˆβ€ƒβ–ˆβ–€β–€ - # β–ˆβ–„β–ˆβ€ƒβ–ˆβ–ˆβ–„β€ƒβ–ˆβ–„β€ƒβ–ˆβ€ƒβ–ˆβ–ˆβ–„β€ƒβ–ˆβ–€β–„β€ƒ β€ƒβ–ˆβ–„β–„β€ƒβ–ˆβ–„β–ˆβ€ƒβ–ˆβ–€β–„β€ƒβ–€β–„β–€β€ƒβ–ˆβ–ˆβ–„ - bezier = [ - "wind, 0.05, 0.9, 0.1, 1.05" - "winIn, 0.1, 1.1, 0.1, 1.1" - "winOut, 0.3, -0.3, 0, 1" - "liner, 1, 1, 1, 1" - "overshot, 0.05, 0.9, 0.1, 1.05" - "smoothOut, 0.36, 0, 0.66, -0.56" - "smoothIn, 0.25, 1, 0.5, 1" - ]; - # β–„β–€β–ˆβ€ƒβ–ˆβ–„β–‘β–ˆβ€ƒβ–ˆβ€ƒβ–ˆβ–€β–„β–€β–ˆβ€ƒβ–„β–€β–ˆβ€ƒβ–€β–ˆβ–€β€ƒβ–ˆβ€ƒβ–ˆβ–€β–ˆβ€ƒβ–ˆβ–„β–‘β–ˆ - # β–ˆβ–€β–ˆβ€ƒβ–ˆβ–‘β–€β–ˆβ€ƒβ–ˆβ€ƒβ–ˆβ–‘β–€β–‘β–ˆβ€ƒβ–ˆβ–€β–ˆβ€ƒβ–‘β–ˆβ–‘β€ƒβ–ˆβ€ƒβ–ˆβ–„β–ˆβ€ƒβ–ˆβ–‘β–€β–ˆ - animation = [ - "windows, 1, 5, overshot, popin" - "windowsOut, 1, 1, smoothOut, popin" - "windowsMove, 1, 4, default" - "border, 1, 10, default" - "borderangle, 1, 8, default" - "fade, 1, 10, smoothIn" - "fadeDim, 1, 10, smoothIn" - "workspaces, 1, 6, default" - "specialWorkspace, 1, 6, smoothIn, slidevert" - ]; - }; -} diff --git a/home/robin/gui/hyprland/config/binds.nix b/home/robin/gui/hyprland/config/binds.nix deleted file mode 100644 --- a/home/robin/gui/hyprland/config/binds.nix +++ /dev/null @@ -1,130 +0,0 @@ -{ - lib, - pkgs, - config, - ... -}: -let - inherit (lib.lists) optionals; - inherit (builtins) toString genList concatLists; - - inherit (config.garden.programs) defaults; - - mod = "SUPER"; - - evswitch = pkgs.writeShellApplication { - name = "ev-switch"; - runtimeInputs = [ - pkgs.just - pkgs.lutgen - pkgs.rhash - ]; - text = '' - exec ~/wallpapers/ev-switch.sh - ''; - }; -in -{ - wayland.windowManager.hyprland.settings = { - bind = [ - # launchers - "${mod}, B, exec, ${defaults.browser}" - "${mod}, E, exec, ${defaults.fileManager}" - "${mod}, C, exec, ${defaults.editor}" - "${mod}, Return, exec, ${defaults.terminal}" - "${mod}, L, exec, systemctl suspend" - "${mod}, O, exec, obsidian" - - "${mod} SHIFT, W, exec, haikei r $(dirname $(haikei current))" - "${mod} CTRL, W, exec, ${lib.getExe evswitch}" - - # window management - "${mod}, Q, killactive," - # "${mod} SHIFT, Q, exit," - "${mod}, F, fullscreen," - "${mod}, Z, fullscreen, 1" # toggle maximize - "${mod} SHIFT, F, fullscreenstate, -1 2" # toggle fullscreenstate in client - "${mod}, Space, togglefloating," - "${mod}, D, pseudo," # dwindle - "${mod}, J, togglesplit," # dwindle - - # grouping - "${mod}, g, togglegroup" - "${mod} ALT, tab, changegroupactive" - - "${mod}, Tab, cyclenext," - "${mod}, Tab, bringactivetotop," - - # special workspace stuff - "${mod}, grave, togglespecialworkspace" - "${mod}, grave, exec, $notifycmd 'Toggled Special Workspace'" - "${mod} SHIFT, grave, movetoworkspace, special" - - # screen shot - ", Print, exec, moonblast copysave output" - "${mod} SHIFT, S, exec, moonblast -f copysave area" - "ALT, Print, exec, moonblast copysave active" - - "${mod} CTRL, right, workspace, r+1" - "${mod} CTRL, left, workspace, r-1" - # scroll wheel binds - "${mod}, mouse_down, workspace, r+1" - "${mod}, mouse_up, workspace, r-1" - - # global mute - ",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" - ",XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle" - - # playerctl - ",XF86AudioPlay, exec, playercontrol toggle" - ",XF86AudioNext, exec, playercontrol next" - ",XF86AudioPrev, exec, playercontrol prev" - ] - ++ optionals (defaults.bar == "waybar") [ - "ALT, space, exec, pkill rofi || rofi -show drun" - "${mod} SHIFT, B, exec, pkill --signal SIGUSR2 waybar" # reload waybar - "${mod}, escape, exec, wlogout" - "${mod}, period, exec, killall rofi || rofi -show emoji -emoji-format '{emoji}' -modi emoji" - ] - ++ optionals (defaults.bar == "ags") [ - "${mod}, D, exec, ags -t launcher" - "${mod}, escape, exec, ags -t powermenu" - "${mod} SHIFT, R, exec, systemctl --user restart ags.service" - ] - ++ optionals (defaults.bar == "quickshell") [ - "ALT, space, exec, qs ipc call drawers toggle launcher" - "${mod} SHIFT, B, exec, pkill quickshell || quickshell &disown" - "${mod}, escape, exec, qs ipc call drawers toggle session" - ] - ++ (concatLists ( - genList ( - x: - let - ws = - let - c = (x + 1) / 10; - in - toString (x + 1 - (c * 10)); - in - [ - "${mod}, ${ws}, workspace, ${toString (x + 1)}" - "${mod} SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}" - ] - ) 10 - )); - - # mouse binds - bindm = [ - "${mod}, mouse:272, movewindow" - "${mod}, mouse:273, resizewindow" - ]; - - # hold to repeat action buttons - binde = [ - ", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+" - ", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" - ", XF86MonBrightnessUp, exec, brightnessctl set 5%+ -q" - ", XF86MonBrightnessDown, exec, brightnessctl set 5%- -q" - ]; - }; -} diff --git a/home/robin/gui/hyprland/config/decorations.nix b/home/robin/gui/hyprland/config/decorations.nix deleted file mode 100644 --- a/home/robin/gui/hyprland/config/decorations.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ - wayland.windowManager.hyprland.settings.decoration = { - rounding = 8; - rounding_power = 4; - - # 0.8 is nice if we opacity - active_opacity = 1.0; - inactive_opacity = 1.0; - fullscreen_opacity = 1.0; - - shadow = { - enabled = true; - color = "0x33000000"; - color_inactive = "0x33000000"; - }; - - blur = { - enabled = true; - passes = 2; - size = 8; - - brightness = 0.81; - contrast = 1.3; - noise = 1.17e-2; - ignore_opacity = true; - - xray = true; - special = true; - }; - }; -} diff --git a/home/robin/gui/hyprland/config/default.nix b/home/robin/gui/hyprland/config/default.nix deleted file mode 100644 --- a/home/robin/gui/hyprland/config/default.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ - imports = [ - ./animations.nix - ./binds.nix - ./decorations.nix - ./exec.nix - ./extra.nix - ./general.nix - ./group.nix - ./inputs.nix - ./layout.nix - ./misc.nix - ./variables.nix - ./windowrules.nix - ]; -} diff --git a/home/robin/gui/hyprland/config/exec.nix b/home/robin/gui/hyprland/config/exec.nix deleted file mode 100644 --- a/home/robin/gui/hyprland/config/exec.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ - lib, - config, - ... -}: -let - inherit (lib.lists) optionals; - - pointer = config.home.pointerCursor; - inherit (config.garden.programs) defaults; -in -{ - wayland.windowManager.hyprland.settings = { - exec-once = [ - "wl-paste --type text --watch cliphist store" # Stores only text data - "wl-paste --type image --watch cliphist store" # Stores only image data - "hyprctl setcursor ${pointer.name} ${toString pointer.size}" - "swww-daemon" - ] - ++ optionals (defaults.bar == "waybar") [ "waybar" ]; - }; -} diff --git a/home/robin/gui/hyprland/config/extra.nix b/home/robin/gui/hyprland/config/extra.nix deleted file mode 100644 --- a/home/robin/gui/hyprland/config/extra.nix +++ /dev/null @@ -1,93 +0,0 @@ -{ lib, osConfig, ... }: -let - inherit (lib.lists) imap0; - inherit (lib.strings) optionalString concatLines; - inherit (builtins) - genList - elemAt - length - ; - - inherit (osConfig.garden.device) monitors; -in -{ - wayland.windowManager.hyprland.extraConfig = - let - mapMonitors = concatLines ( - imap0 ( - i: monitor: - ''monitor=${monitor},${ - if monitor == "eDP-1" then "1920x1080@60" else "preferred" - },${toString (i * 1920)}x0,1'' - ) monitors - ); - - mapMonitorsToWs = concatLines ( - genList (x: '' - workspace = ${toString (x + 1)}, monitor:${ - if (x + 1) <= 5 then - "${elemAt monitors 0} ${if (x + 1) == 1 then ", default:true" else ""}" - else - "${elemAt monitors 1}" - } - '') 10 - ); - in - '' - ${mapMonitors} - ${optionalString (length monitors != 1) "${mapMonitorsToWs}"} - - # β–ˆβ–€β–€β€ƒβ–ˆβ–€β–ˆβ€ƒβ–ˆβ–€β–€β€ƒβ–ˆβ–‘β–ˆβ€ƒβ–ˆβ–€ - # β–ˆβ–€β–‘β€ƒβ–ˆβ–„β–ˆβ€ƒβ–ˆβ–„β–„β€ƒβ–ˆβ–„β–ˆβ€ƒβ–„β–ˆ - bind = SUPER, left, movefocus, l - bind = SUPER, right, movefocus, r - bind = SUPER, up, movefocus, u - bind = SUPER, down, movefocus, d - - # β–ˆβ–€β–„β–€β–ˆβ€ƒβ–ˆβ–€β–ˆβ€ƒβ–ˆβ–‘β–ˆβ€ƒβ–ˆβ–€β–€ - # β–ˆβ–‘β–€β–‘β–ˆβ€ƒβ–ˆβ–„β–ˆβ€ƒβ–€β–„β–€β€ƒβ–ˆβ–ˆβ–„ - - bind = SUPER SHIFT, left, movewindow, l - bind = SUPER SHIFT, right, movewindow, r - bind = SUPER SHIFT, up, movewindow, u - bind = SUPER SHIFT, down, movewindow, d - bind = SUPER SHIFT, h, movewindow, l - bind = SUPER SHIFT, j, movewindow, d - bind = SUPER SHIFT, k, movewindow, u - bind = SUPER SHIFT, l, movewindow, r - - # β–ˆβ–€β–„β–€β–ˆβ€ƒβ–ˆβ–€β–ˆβ€ƒβ–ˆβ–‘β–ˆβ€ƒβ–ˆβ–€β–€ - # β–ˆβ–‘β–€β–‘β–ˆβ€ƒβ–ˆβ–„β–ˆβ€ƒβ–€β–„β–€β€ƒβ–ˆβ–ˆβ–„ - bind=SUPER SHIFT, M, submap, move-monitor - submap=move-monitor - - bind = , left, movecurrentworkspacetomonitor, l - bind = , right, movecurrentworkspacetomonitor, r - bind = , up, movecurrentworkspacetomonitor, u - bind = , down, movecurrentworkspacetomonitor, d - bind = , h, movecurrentworkspacetomonitor, l - bind = , j, movecurrentworkspacetomonitor, d - bind = , k, movecurrentworkspacetomonitor, u - bind = , l, movecurrentworkspacetomonitor, r - - bind=,escape,submap,reset - submap=reset - - # β–ˆβ–€β–ˆβ€ƒβ–ˆβ–€β–€β€ƒβ–ˆβ–€β€ƒβ–ˆβ€ƒβ–€β–ˆβ€ƒβ–ˆβ–€β–€ - # β–ˆβ–€β–„β€ƒβ–ˆβ–ˆβ–„β€ƒβ–„β–ˆβ€ƒβ–ˆβ€ƒβ–ˆβ–„β€ƒβ–ˆβ–ˆβ–„ - bind=SUPER, R, submap, resize - submap=resize - - binde = , left, resizeactive, -20 0 - binde = , right, resizeactive, 20 0 - binde = , up, resizeactive, 0 -20 - binde = , down, resizeactive, 0 20 - binde = , h, resizeactive, -20 0 - binde = , j, resizeactive, 20 0 - binde = , i, resizeactive, 0 -20 - binde = , k, resizeactive, 0 20 - - bind=,escape,submap,reset - submap=reset - ''; -} diff --git a/home/robin/gui/hyprland/config/general.nix b/home/robin/gui/hyprland/config/general.nix deleted file mode 100644 --- a/home/robin/gui/hyprland/config/general.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ - wayland.windowManager.hyprland.settings.general = { - layout = "master"; - - gaps_in = 8; - gaps_out = 8; - gaps_workspaces = 0; - border_size = 6; - no_border_on_floating = false; - - "col.active_border" = "$skye"; - "col.inactive_border" = "$surface1"; - }; -} diff --git a/home/robin/gui/hyprland/config/group.nix b/home/robin/gui/hyprland/config/group.nix deleted file mode 100644 --- a/home/robin/gui/hyprland/config/group.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - wayland.windowManager.hyprland.settings.group = { - insert_after_current = true; - # focus on the window that has just been moved out of the group - focus_removed_window = true; - - "col.border_active" = "$cherry"; - "col.border_inactive" = "$surface1"; - - groupbar = { - gradients = false; - font_size = 12; - - render_titles = false; - scrolling = true; # change focused window with scroll - }; - }; -} diff --git a/home/robin/gui/hyprland/config/inputs.nix b/home/robin/gui/hyprland/config/inputs.nix deleted file mode 100644 --- a/home/robin/gui/hyprland/config/inputs.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ config, osConfig, ... }: -let - dev = osConfig.garden.device; -in -{ - wayland.windowManager.hyprland.settings = { - input = { - kb_layout = dev.keyboard; - follow_mouse = 0; - sensitivity = 1; - force_no_accel = 1; - numlock_by_default = true; # numlock enable - repeat_rate = 50; - repeat_delay = 250; - - # caps lock as an additional esc - # but shift + capslock is the regular capslock - kb_options = "caps:escape_shifted_capslock"; - - touchpad = { - tap-to-click = true; - natural_scroll = true; - disable_while_typing = false; # this is annoying - scroll_factor = 0.2; - }; - }; - - gestures.workspace_swipe = config.garden.profiles.laptop.enable; - - cursor = { - no_hardware_cursors = true; - }; - }; -} diff --git a/home/robin/gui/hyprland/config/layout.nix b/home/robin/gui/hyprland/config/layout.nix deleted file mode 100644 --- a/home/robin/gui/hyprland/config/layout.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ - wayland.windowManager.hyprland.settings = { - master = { - # new_is_master = true; - }; - - dwindle = { - pseudotile = true; - preserve_split = true; - }; - }; -} diff --git a/home/robin/gui/hyprland/config/misc.nix b/home/robin/gui/hyprland/config/misc.nix deleted file mode 100644 --- a/home/robin/gui/hyprland/config/misc.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ - wayland.windowManager.hyprland.settings.misc = { - disable_hyprland_logo = true; - disable_splash_rendering = true; - force_default_wallpaper = 0; - - # window swallowing - enable_swallow = true; # hide windows that spawn other windows - swallow_regex = "wezterm|foot|cosmic-files|nemo"; - - # dpms - mouse_move_enables_dpms = true; # enable dpms on mouse/touchpad action - key_press_enables_dpms = true; # enable dpms on keyboard action - disable_autoreload = true; # autoreload is unnecessary on nixos, because the config is readonly anyway - }; -} diff --git a/home/robin/gui/hyprland/config/variables.nix b/home/robin/gui/hyprland/config/variables.nix deleted file mode 100644 --- a/home/robin/gui/hyprland/config/variables.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ - config, - inputs, - ... -}: -let - inherit (config.evergarden) variant; - palette = inputs.evergarden.lib.palette.${variant}; -in -{ - wayland.windowManager.hyprland.settings = { - "$notifycmd" = - "notify-send -e -a hyprland -h string:x-canonical-private-synchronous:hypr-cfg -u low"; - - "$red" = "0xff${palette.red}"; - "$orange" = "0xff${palette.orange}"; - "$yellow" = "0xff${palette.yellow}"; - "$lime" = "0xff${palette.lime}"; - "$green" = "0xff${palette.green}"; - "$aqua" = "0xff${palette.aqua}"; - "$skye" = "0xff${palette.skye}"; - "$snow" = "0xff${palette.snow}"; - "$blue" = "0xff${palette.blue}"; - "$purple" = "0xff${palette.purple}"; - "$pink" = "0xff${palette.pink}"; - "$cherry" = "0xff${palette.cherry}"; - "$text" = "0xff${palette.text}"; - "$subtext1" = "0xff${palette.subtext1}"; - "$subtext0" = "0xff${palette.subtext0}"; - "$overlay2" = "0xff${palette.overlay2}"; - "$overlay1" = "0xff${palette.overlay1}"; - "$overlay0" = "0xff${palette.overlay0}"; - "$surface2" = "0xff${palette.surface2}"; - "$surface1" = "0xff${palette.surface1}"; - "$surface0" = "0xff${palette.surface0}"; - "$base" = "0xff${palette.base}"; - "$mantle" = "0xff${palette.mantle}"; - "$crust" = "0xff${palette.crust}"; - }; -} diff --git a/home/robin/gui/hyprland/config/windowrules.nix b/home/robin/gui/hyprland/config/windowrules.nix deleted file mode 100644 --- a/home/robin/gui/hyprland/config/windowrules.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ - wayland.windowManager.hyprland.settings = { - windowrule = [ - "tag bitwarden, title:( - Bitwarden)" - "tag terminal, class:^(com.mitchellh.ghostty)$" - - "float, tag:bitwarden" - "float, title:^(rofi)$" - "float, title:^(pwvucontrol)$" - "float, title:^(nm-connection-editor)$" - "float, title:^(blueberry.py)$" - "float, title:^(Color Picker)$" - "float, title:^(Network)$" - "float, title:^(com.github.Aylur.ags)$" - "float, title:^(xdg-desktop-portal)$" - "float, title:^(xdg-desktop-portal-gnome)$" - "float, title:^(transmission-gtk)$" - "size 800 600,tag:bitwarden" - - "norounding, tag:terminal" - ]; - - windowrulev2 = [ - "float, title:^(Picture-in-Picture)$" - "float, class:^(feh)$" - "float, class:^(download)$" - - "workspace 6, title:^(.*(Disc|WebC)ord.*)$" - - # throw sharing indicators away - "workspace special silent, title:^(Firefox β€” Sharing Indicator)$" - "workspace special silent, title:^(.*is sharing (your screen|a window)\.)$" - ]; - }; -} diff --git a/home/robin/gui/hyprland/default.nix b/home/robin/gui/hyprland/default.nix deleted file mode 100644 --- a/home/robin/gui/hyprland/default.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ - lib, - pkgs, - inputs', - config, - ... -}: -let - cfg = config.programs.hyprland; -in -{ - imports = [ ./config ]; - - options = { - programs.hyprland = { - enable = lib.mkEnableOption "Hyprland window manager"; - }; - }; - - config = lib.mkIf cfg.enable { - garden.packages = { - inherit (pkgs) swww hyprpicker hyprprop; - inherit (inputs'.tgirlpkgs.packages) - haikei - moonblast - hyprflare-playercontrol - hyprflare-wallselect - ; - }; - - home.sessionVariables = { - MOONBLAST_EDITOR = "satty --filename"; - }; - - wayland.windowManager.hyprland = { - enable = true; - xwayland.enable = true; - - systemd = { - enable = true; - variables = [ "--all" ]; - extraCommands = [ - "systemctl --user stop graphical-session.target" - "systemctl --user start hyprland-session.target" - ]; - }; - }; - }; -} diff --git a/home/robin/gui/obsidian.nix b/home/robin/gui/obsidian.nix deleted file mode 100644 --- a/home/robin/gui/obsidian.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ - lib, - pkgs, - config, - ... -}: -let - inherit (lib) attrValues mkIf; -in -{ - garden.packages = mkIf config.garden.profiles.workstation.enable { - obsidian = pkgs.symlinkJoin { - name = "obsidian-wrapped"; - paths = attrValues { - inherit (pkgs) - # for the pandoc plugin - pandoc - ; - }; - meta.mainProgram = pkgs.obsidian.meta.mainProgram; - }; - }; -} diff --git a/home/robin/gui/quickshell.nix b/home/robin/gui/quickshell.nix deleted file mode 100644 --- a/home/robin/gui/quickshell.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ lib, config, ... }: -let - inherit (lib) mkIf mkDefault; - cfg = config.programs.quickshell; -in -{ - config = - mkIf - (config.garden.profiles.graphical.enable && config.garden.programs.defaults.bar == "quickshell") - { - programs.quickshell = { - enable = mkDefault true; - systemd.enable = mkDefault true; - }; - - systemd.user.services.quickshell-lock = mkIf cfg.enable { - Unit = { - Description = "launch quickshell lock"; - Before = "lock.target"; - }; - Install.WantedBy = [ "lock.target" ]; - Service.ExecStart = "${lib.getExe cfg.package} ipc call lock lock"; - }; - }; -} diff --git a/home/robin/gui/satty.nix b/home/robin/gui/satty.nix deleted file mode 100644 --- a/home/robin/gui/satty.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ - lib, - pkgs, - config, - inputs, - ... -}: -let - inherit (lib) mkIf; - inherit (pkgs.stdenv.hostPlatform) isLinux; - - palette = inputs.evergarden.lib.util.mkPalette config.evergarden; -in -{ - # screenshot annotation tool - programs.satty = mkIf (config.garden.profiles.graphical.enable && isLinux) { - enable = true; - - settings = { - color-palette = { - palette = [ - "#${palette.red}" - "#${palette.orange}" - "#${palette.yellow}" - "#${palette.green}" - "#${palette.skye}" - "#${palette.pink}" - ]; - }; - }; - }; -} diff --git a/home/robin/gui/spotify.nix b/home/robin/gui/spotify.nix deleted file mode 100644 --- a/home/robin/gui/spotify.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ - lib, - inputs, - config, - ... -}: -let - inherit (lib) mkIf; - - inherit (config.garden.profiles.graphical) enable; -in -{ - imports = [ - inputs.spicetify-nix.homeManagerModules.default - ]; - - config.programs.spicetify = mkIf enable { - enable = true; - }; -} diff --git a/home/robin/gui/wezterm/cfg/bar.lua b/home/robin/gui/wezterm/cfg/bar.lua deleted file mode 100644 --- a/home/robin/gui/wezterm/cfg/bar.lua +++ /dev/null @@ -1,366 +0,0 @@ --- https://github.com/nekowinston/wezterm-bar -local wezterm = require("wezterm") - -local M = {} - --- default configuration -local config = { - position = "top", -- or "bottom" - max_width = 32, - dividers = "slant_right", -- "slant_right" or "slant_left", "arrows", "rounded", false - indicator = { - leader = { - enabled = true, - off = "οˆ„ ", - on = "οˆ… ", - }, - mode = { - enabled = true, - names = { - resize_mode = "RESIZE", - copy_mode = "VISUAL", - search_mode = "SEARCH", - }, - }, - }, - tabs = { - numerals = "arabic", -- or "roman" - pane_count = "superscript", -- or "subscript", false - brackets = { - active = { "", ":" }, - inactive = { "", ":" }, - }, - }, - clock = { - enabled = false, - format = "%I:%M %P", -- https://docs.rs/chrono/latest/chrono/format/strftime/index.html - }, -} - --- parsed config -local C = {} - -local function tableMerge(t1, t2) - for k, v in pairs(t2) do - if type(v) == "table" then - if type(t1[k] or false) == "table" then - tableMerge(t1[k] or {}, t2[k] or {}) - else - t1[k] = v - end - else - t1[k] = v - end - end - return t1 -end - -local dividers = { - slant_right = { - left = utf8.char(0xe0be), - right = utf8.char(0xe0bc), - }, - slant_left = { - left = utf8.char(0xe0bb), - right = utf8.char(0xe0b8), - }, - arrows = { - left = utf8.char(0xe0b2), - right = utf8.char(0xe0b0), - }, - rounded = { - left = utf8.char(0xe0b6), - right = utf8.char(0xe0b4), - }, -} - --- conforming to https://github.com/wez/wezterm/commit/e4ae8a844d8feaa43e1de34c5cc8b4f07ce525dd --- exporting an apply_to_config function, even though we don't change the users config -M.apply_to_config = function(c, opts) - -- make the opts arg optional - if not opts then - opts = {} - end - - -- combine user config with defaults - config = tableMerge(config, opts) - C.div = { - l = "", - r = "", - } - - if config.dividers then - C.div.l = dividers[config.dividers].left - C.div.r = dividers[config.dividers].right - end - - C.leader = { - enabled = config.indicator.leader.enabled and true, - off = config.indicator.leader.off, - on = config.indicator.leader.on, - } - - C.mode = { - enabled = config.indicator.mode.enabled, - names = config.indicator.mode.names, - } - - C.tabs = { - numerals = config.tabs.numerals, - pane_count_style = config.tabs.pane_count, - brackets = { - active = config.tabs.brackets.active, - inactive = config.tabs.brackets.inactive, - }, - } - - C.clock = { - enabled = config.clock.enabled, - format = config.clock.format, - } - - -- set the right-hand padding to 0 spaces, if the rounded style is active - C.p = (config.dividers == "rounded") and "" or " " - - -- set wezterm config options according to the parsed config - c.use_fancy_tab_bar = false - c.tab_bar_at_bottom = config.position == "bottom" - c.tab_max_width = config.max_width -end - --- superscript/subscript -local function numberStyle(number, script) - local scripts = { - superscript = { - "⁰", - "ΒΉ", - "Β²", - "Β³", - "⁴", - "⁡", - "⁢", - "⁷", - "⁸", - "⁹", - }, - subscript = { - "β‚€", - "₁", - "β‚‚", - "₃", - "β‚„", - "β‚…", - "₆", - "₇", - "β‚ˆ", - "₉", - }, - } - local numbers = scripts[script] - local number_string = tostring(number) - local result = "" - for i = 1, #number_string do - local char = number_string:sub(i, i) - local num = tonumber(char) - if num then - result = result .. numbers[num + 1] - else - result = result .. char - end - end - return result -end - -local roman_numerals = { - "β… ", - "β…‘", - "β…’", - "β…£", - "β…€", - "β…₯", - "β…¦", - "β…§", - "β…¨", - "β…©", - "β…ͺ", - "β…«", -} - -local get_rainbow = function(conf) - return { - conf.resolved_palette.ansi[2], - conf.resolved_palette.ansi[4], - conf.resolved_palette.ansi[3], - conf.resolved_palette.ansi[7], - conf.resolved_palette.ansi[5], - conf.resolved_palette.ansi[6], - } -end - --- custom tab bar -wezterm.on("format-tab-title", function(tab, tabs, _panes, conf, _hover, _max_width) - local colours = conf.resolved_palette.tab_bar - - local active_tab_index = 0 - for _, t in ipairs(tabs) do - if t.is_active == true then - active_tab_index = t.tab_index - end - end - - local rainbow = get_rainbow(conf) - - local i = tab.tab_index % 6 - local active_bg = rainbow[i + 1] - local active_fg = colours.background - local inactive_bg = colours.inactive_tab.bg_color - local inactive_fg = colours.inactive_tab.fg_color - local new_tab_bg = colours.new_tab.bg_color - - local s_bg, s_fg, e_bg, e_fg - - -- the last tab - if tab.tab_index == #tabs - 1 then - if tab.is_active then - s_bg = active_bg - s_fg = active_fg - e_bg = new_tab_bg - e_fg = active_bg - else - s_bg = inactive_bg - s_fg = inactive_fg - e_bg = new_tab_bg - e_fg = inactive_bg - end - elseif tab.tab_index == active_tab_index - 1 then - s_bg = inactive_bg - s_fg = inactive_fg - e_bg = rainbow[(i + 1) % 6 + 1] - e_fg = inactive_bg - elseif tab.is_active then - s_bg = active_bg - s_fg = active_fg - e_bg = inactive_bg - e_fg = active_bg - else - s_bg = inactive_bg - s_fg = inactive_fg - e_bg = inactive_bg - e_fg = inactive_bg - end - - local pane_count = "" - if C.tabs.pane_count_style then - local tabi = wezterm.mux.get_tab(tab.tab_id) - local muxpanes = tabi:panes() - local count = #muxpanes == 1 and "" or tostring(#muxpanes) - pane_count = numberStyle(count, C.tabs.pane_count_style) - end - - local index_i - if C.tabs.numerals == "roman" then - index_i = roman_numerals[tab.tab_index + 1] - else - index_i = tab.tab_index + 1 - end - - local index - if tab.is_active then - index = string.format("%s%s%s ", C.tabs.brackets.active[1], index_i, C.tabs.brackets.active[2]) - else - index = string.format("%s%s%s ", C.tabs.brackets.inactive[1], index_i, C.tabs.brackets.inactive[2]) - end - - -- start and end hardcoded numbers are the Powerline + " " padding - local fillerwidth = 2 + string.len(index) + string.len(pane_count) + 2 - - -- prefer renamed table titles to the default title - local tabtitle = tab.tab_title - if #tabtitle <= 0 then - tabtitle = tab.active_pane.title - end - - local width = conf.tab_max_width - fillerwidth - 1 - if (#tabtitle + fillerwidth) > conf.tab_max_width then - tabtitle = wezterm.truncate_right(tabtitle, width) .. "…" - end - - local title = string.format(" %s%s%s%s", index, tabtitle, pane_count, C.p) - - return { - { Background = { Color = s_bg } }, - { Foreground = { Color = s_fg } }, - { Text = title }, - { Background = { Color = e_bg } }, - { Foreground = { Color = e_fg } }, - { Text = C.div.r }, - } -end) - -wezterm.on("update-status", function(window, _pane) - local active_kt = window:active_key_table() ~= nil - local show = C.leader.enabled or (active_kt and C.mode.enabled) - if not show then - window:set_left_status("") - return - end - - local present, conf = pcall(window.effective_config, window) - if not present then - return - end - - local palette = conf.resolved_palette - local rainbow = get_rainbow(conf) - - local leader = "" - if C.leader.enabled then - local leader_text = C.leader.off - if window:leader_is_active() then - leader_text = C.leader.on - end - leader = wezterm.format({ - { Foreground = { Color = palette.background } }, - { Background = { Color = rainbow[1] } }, - { Text = " " .. leader_text .. C.p }, - }) - end - - local mode = "" - if C.mode.enabled then - local mode_text = "" - local active = window:active_key_table() - if C.mode.names[active] ~= nil then - mode_text = C.mode.names[active] .. "" - end - mode = wezterm.format({ - { Foreground = { Color = palette.background } }, - { Background = { Color = palette.ansi[5] } }, - { Attribute = { Intensity = "Bold" } }, - { Text = mode_text }, - "ResetAttributes", - }) - end - - local first_tab_active = window:mux_window():tabs_with_info()[1].is_active - local divider_bg = first_tab_active and rainbow[1] or palette.tab_bar.inactive_tab.bg_color - - local divider = wezterm.format({ - { Background = { Color = divider_bg } }, - { Foreground = { Color = rainbow[1] } }, - { Text = C.div.r }, - }) - - window:set_left_status(leader .. mode .. divider) - - if C.clock.enabled then - local time = wezterm.time.now():format(C.clock.format) - window:set_right_status(wezterm.format({ - { Background = { Color = palette.tab_bar.background } }, - { Foreground = { Color = palette.ansi[6] } }, - { Text = time }, - })) - end -end) - -return M diff --git a/home/robin/gui/wezterm/cfg/keybinds.lua b/home/robin/gui/wezterm/cfg/keybinds.lua deleted file mode 100644 --- a/home/robin/gui/wezterm/cfg/keybinds.lua +++ /dev/null @@ -1,71 +0,0 @@ -local wezterm = require("wezterm") -local act = wezterm.action - -local utils = require("utils") - -local M = {} - -local openUrl = act.QuickSelectArgs({ - label = "open url", - patterns = { "https?://\\S+" }, - action = wezterm.action_callback(function(window, pane) - local url = window:get_selection_text_for_pane(pane) - wezterm.open_with(url) - end), -}) - -local palettes = {} -for id, name in require("palette").get_palettes() do - palettes[#palettes + 1] = { label = name, id = id } -end - -local changePalette = act.InputSelector({ - title = "Change palette", - choices = { { label = "Evergarden Winter" } }, - fuzzy = true, - action = wezterm.action_callback(function(window, _, id, label) - if not label then - return - end - window:set_config_overrides({ color_scheme = label }) - end), -}) - -local getNewName = act.PromptInputLine({ - description = "Enter new name for tab", - action = wezterm.action_callback(function(window, pane, line) - if not line then - return - end - window:active_tab():set_title(line) - end), -}) - -local keys = {} -local map = function(key, mods, action) - if type(mods) == "string" then - table.insert(keys, { key = key, mods = mods, action = action }) - elseif type(mods) == "table" then - for _, mod in pairs(mods) do - table.insert(keys, { key = key, mods = mod, action = action }) - end - end -end - -map("Enter", "ALT", act.ToggleFullScreen) - -map("e", "CTRL|SHIFT", getNewName) -map("o", { "LEADER", "SUPER" }, openUrl) -map("t", "ALT", changePalette) - -M.apply = function(c) - c.leader = { - key = "m", - mods = "ALT", - timeout_milliseconds = 300, - } - c.keys = keys - -- c.disable_default_key_bindings = true -end - -return M diff --git a/home/robin/gui/wezterm/cfg/palette.lua b/home/robin/gui/wezterm/cfg/palette.lua deleted file mode 100644 --- a/home/robin/gui/wezterm/cfg/palette.lua +++ /dev/null @@ -1,284 +0,0 @@ -local wezterm = require("wezterm") - -local M = {} - -local colors = { - winter = { - red = "#F57F82", - orange = "#F7A182", - yellow = "#F5D098", - lime = "#DBE6AF", - green = "#CBE3B3", - aqua = "#B3E3CA", - skye = "#B3E6DB", - snow = "#AFD9E6", - blue = "#B2CAED", - purple = "#D2BDF3", - pink = "#F3C0E5", - cherry = "#F6CEE5", - text = "#F8F9E8", - subtext1 = "#ADC9BC", - subtext0 = "#96B4AA", - overlay2 = "#839E9A", - overlay1 = "#6F8788", - overlay0 = "#58686D", - surface2 = "#4A585C", - surface1 = "#374145", - surface0 = "#262F33", - base = "#1E2528", - mantle = "#191E21", - crust = "#171C1F", - }, - fall = { - red = "#F57F82", - orange = "#F7A182", - yellow = "#F5D098", - lime = "#DBE6AF", - green = "#CBE3B3", - aqua = "#B3E3CA", - skye = "#B3E6DB", - snow = "#AFD9E6", - blue = "#B2CAED", - purple = "#D2BDF3", - pink = "#F3C0E5", - cherry = "#F6CEE5", - text = "#F8F9E8", - subtext1 = "#ADC9BC", - subtext0 = "#96B4AA", - overlay2 = "#839E9A", - overlay1 = "#6F8788", - overlay0 = "#58686D", - surface2 = "#4A585C", - surface1 = "#374145", - surface0 = "#2B3337", - base = "#232A2E", - mantle = "#1C2225", - crust = "#171C1F", - }, - spring = { - red = "#F57F82", - orange = "#F7A182", - yellow = "#F5D098", - lime = "#DBE6AF", - green = "#CBE3B3", - aqua = "#B3E3CA", - skye = "#B3E6DB", - snow = "#AFD9E6", - blue = "#B2CAED", - purple = "#D2BDF3", - pink = "#F3C0E5", - cherry = "#F6CEE5", - text = "#F8F9E8", - subtext1 = "#ADC9BC", - subtext0 = "#96B4AA", - overlay2 = "#839E9A", - overlay1 = "#6F8788", - overlay0 = "#58686D", - surface2 = "#4A585C", - surface1 = "#3E4A4F", - surface0 = "#343E43", - base = "#2B3438", - mantle = "#232A2E", - crust = "#1C2225", - }, - summer = { - red = "#C0696B", - orange = "#C1866B", - yellow = "#BC9C6B", - lime = "#A7AF70", - green = "#91AC75", - aqua = "#7BAA92", - skye = "#79A39B", - snow = "#7FA0AA", - blue = "#8CA0BB", - purple = "#AB9AC6", - pink = "#CA9EBD", - cherry = "#CEABBF", - text = "#171C1F", - subtext1 = "#415055", - subtext0 = "#526469", - overlay2 = "#63787D", - overlay1 = "#758A90", - overlay0 = "#879DA4", - surface2 = "#9CB2B8", - surface1 = "#B4C6CC", - surface0 = "#CED9E0", - base = "#D7E1EB", - mantle = "#C8D5E1", - crust = "#BDCBDB", - }, -} - -local mappings = { - winter = "Evergarden Winter", - fall = "Evergarden Fall", - spring = "Evergarden Spring", - summer = "Evergarden Summer", -} - -function M.get_palettes() - return pairs(mappings) -end - -function M.select(palette, flavor, accent) - local c = palette[flavor] - -- shorthand to check for the Latte flavor - local isLight = palette == "latte" - - local cursor = c.pink - return { - foreground = c.text, - background = c.base, - - cursor_fg = isLight and c.base or c.crust, - cursor_bg = cursor, - cursor_border = cursor, - - selection_fg = c.text, - selection_bg = c.surface2, - - scrollbar_thumb = c.surface2, - - split = c.overlay0, - - ansi = { - c.base, - c.red, - c.green, - c.yellow, - c.blue, - c.pink, - c.aqua, - c.text, - }, - - brights = { - c.overlay1, - c.red, - c.green, - c.yellow, - c.blue, - c.pink, - c.aqua, - c.subtext0, - }, - - indexed = { [16] = c.peach, [17] = c.rosewater }, - - -- nightbuild only - compose_cursor = c.text, - - tab_bar = { - background = c.mantle, - active_tab = { - bg_color = c[accent], - fg_color = c.crust, - }, - inactive_tab = { - bg_color = c.surface0, - fg_color = c.overlay1, - }, - inactive_tab_hover = { - bg_color = c.surface1, - fg_color = c.overlay1, - }, - new_tab = { - bg_color = c.base, - fg_color = c.overlay2, - }, - new_tab_hover = { - bg_color = c.surface0, - fg_color = c.subtext0, - }, - -- fancy tab bar - inactive_tab_edge = c.surface0, - }, - - visual_bell = c.surface0, - } -end - -local function select_for_appearance(appearance, options) - if appearance:find("Dark") then - return options.dark - else - return options.light - end -end - -local function tableMerge(t1, t2) - for k, v in pairs(t2) do - if type(v) == "table" then - if type(t1[k] or false) == "table" then - tableMerge(t1[k] or {}, t2[k] or {}) - else - t1[k] = v - end - else - t1[k] = v - end - end - return t1 -end - -function M.apply_to_config(c, opts) - opts = opts or {} - - -- default options - local defaults = { - flavor = "fall", - accent = "green", - sync = false, - sync_flavors = { light = "summer", dark = "fall" }, - color_overrides = { - fall = {}, - }, - token_overrides = { - fall = {}, - }, - } - - local o = tableMerge(defaults, opts) - - -- insert all flavors - local color_schemes = {} - local palette = tableMerge(colors, o.color_overrides) - for flavor, name in pairs(mappings) do - local spec = M.select(palette, flavor, o.accent) - local overrides = o.token_overrides[flavor] or {} - color_schemes[name] = tableMerge(spec, overrides) - end - c.color_schemes = tableMerge(c.color_schemes or {}, color_schemes) - - if opts.sync then - c.color_scheme = select_for_appearance(wezterm.gui.get_appearance(), { - dark = mappings[o.sync_flavors.dark], - light = mappings[o.sync_flavors.light], - }) - c.command_palette_bg_color = select_for_appearance(wezterm.gui.get_appearance(), { - dark = colors[o.sync_flavors.dark].crust, - light = colors[o.sync_flavors.light].crust, - }) - c.command_palette_fg_color = select_for_appearance(wezterm.gui.get_appearance(), { - dark = colors[o.sync_flavors.dark].text, - light = colors[o.sync_flavors.light].text, - }) - else - c.color_scheme = mappings[o.flavor] - c.command_palette_bg_color = colors[o.flavor].crust - c.command_palette_fg_color = colors[o.flavor].text - end - - local window_frame = { - active_titlebar_bg = colors[o.flavor].crust, - active_titlebar_fg = colors[o.flavor].text, - inactive_titlebar_bg = colors[o.flavor].crust, - inactive_titlebar_fg = colors[o.flavor].text, - button_fg = colors[o.flavor].text, - button_bg = colors[o.flavor].base, - } - - c.window_frame = tableMerge(c.window_frame or {}, window_frame) -end - -return M diff --git a/home/robin/gui/wezterm/cfg/utils.lua b/home/robin/gui/wezterm/cfg/utils.lua deleted file mode 100644 --- a/home/robin/gui/wezterm/cfg/utils.lua +++ /dev/null @@ -1,18 +0,0 @@ -local wezterm = require("wezterm") -local M = {} - -M.is_windows = function() - return wezterm.target_triple:find("windows") ~= nil -end - ----@return boolean -M.is_linux = function() - return wezterm.target_triple:find("linux") ~= nil -end - ----@return boolean -M.is_darwin = function() - return wezterm.target_triple:find("darwin") ~= nil -end - -return M diff --git a/home/robin/gui/wezterm/cfg/wezterm.lua b/home/robin/gui/wezterm/cfg/wezterm.lua deleted file mode 100644 --- a/home/robin/gui/wezterm/cfg/wezterm.lua +++ /dev/null @@ -1,138 +0,0 @@ -local utils = require("utils") -local wezterm = require("wezterm") - -local c = {} -if wezterm.c_builder then - c = wezterm.config_builder() -end - -c.enable_wayland = true - --- theme -require("palette").apply_to_config(c, { - flavor = "winter", - accent = "skye", -}) -require("bar").apply_to_config(c, { - dividers = "rounded", -}) - -if utils.is_linux() then - c.window_background_opacity = 0.92 -elseif utils.is_darwin() then - c.window_background_opacity = 0.92 - c.macos_window_background_blur = 15 -elseif utils.is_windows() then - -- c.window_background_image = "" - -- c.window_background_image_hsb = { - -- brightness = 0.03, -- make the bg darker so we can see what we are doing - -- } - -- c.win32_system_backdrop = "Tabbed" - -- c.window_background_opacity = 0.95 - -- c.background = { - -- { - -- source = { - -- File = "D:\\pictures\\wallpapers\\frieren\\wallhaven-l87gvr.jpg", - -- }, - -- hsb = { - -- brightness = 0.05, - -- saturation = 1.02, - -- }, - -- } - -- } - c.window_background_opacity = 0.92 - c.win32_system_backdrop = "Mica" -end - --- load my keybinds -require("keybinds").apply(c) - --- default shell -if utils.is_linux() or utils.is_darwin() then - c.default_prog = { "/etc/profiles/per-user/robin/bin/zsh", "--login" } -elseif utils.is_windows() then - c.default_prog = { "wsl.exe" } - c.default_domain = "WSL:NixOS" - c.launch_menu = { - { - label = "PowerShell", - args = { "pwsh.exe", "-NoLogo" }, - domain = { DomainName = "local" }, - }, - { - label = "WSL", - args = { "wsl.exe" }, - domain = { DomainName = "WSL:NixOS" }, - }, - } -end - -if utils.is_linux() then - c.window_decorations = "TITLE | RESIZE" -else - c.window_decorations = "RESIZE" -end - -c.window_padding = { left = 0, right = 0, top = 0, bottom = 0 } - --- fonts -local font = wezterm.font_with_fallback({ - { - family = "Maple Mono", - harfbuzz_features = { - "zero", - "cv01", -- `@ $ & % Q => ->` without gap - - -- consistent style - -- "cv33", -- italic `i` j with left bottom bar and horizen top bar, just like regular style - - -- no tails - "cv34", -- italic `k` without circle, just like regular style - "cv35", -- italic `l` without tail, just like regular style - -- "cv36", -- italic `x` without tails, just like regular style - -- "ss06", -- Break connected strokes between italic letters (al, ul, il ...) - - -- disable ligatures - "ss01", -- Broken equals ligatures (==, ===, !=, !==, =/=) - "ss02", -- Broken compare and equal ligatures (<=, >=) - "ss04", -- Break multiple underscores (__, #__) - - "ss03", -- Enable arbitrary tag (allow to use any case in all tags) - - "ss05", -- Thin backslash in escape letters (\w, \n, \r ...) - - "ss07", -- Relax the conditions for multiple greaters ligatures (>> or >>>) - -- "ss08", -- Enable double headed arrows and reverse arrows (>>=, -<<, ->>, >- ...) - }, - }, - { family = "Symbols Nerd Font" }, -}) -c.font = font -c.font_size = 12 -c.allow_square_glyphs_to_overflow_width = "WhenFollowedBySpace" -c.freetype_load_target = "Light" -c.freetype_load_flags = "FORCE_AUTOHINT" -c.adjust_window_size_when_changing_font_size = false -c.window_frame = { - font = font, - font_size = c.font_size, -} -c.line_height = 1.1 - --- QOL -c.audible_bell = "Disabled" -c.default_cursor_style = "BlinkingBar" -c.window_close_confirmation = "NeverPrompt" --- c.prefer_to_spawn_tabs = true - -if utils.is_windows() then - c.front_end = "OpenGL" -else - c.front_end = "WebGpu" -end - --- this is nix so lets not do it --- enable this if i ever setup nix to statically link -c.check_for_updates = false - -return c diff --git a/home/robin/gui/wezterm/default.nix b/home/robin/gui/wezterm/default.nix deleted file mode 100644 --- a/home/robin/gui/wezterm/default.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ lib, config, ... }: -{ - config = { - programs.wezterm.enable = lib.mkDefault ( - config.garden.profiles.graphical.enable && config.garden.programs.defaults.terminal == "wezterm" - ); - - xdg.configFile."wezterm" = lib.mkIf config.programs.wezterm.enable { - source = ./cfg; - recursive = true; - }; - }; -} diff --git a/home/robin/gui/zed.nix b/home/robin/gui/zed.nix deleted file mode 100644 --- a/home/robin/gui/zed.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ lib, config, ... }: -let - inherit (lib) mkIf; -in -{ - programs.zed-editor = - mkIf (config.garden.profiles.graphical.enable && config.garden.profiles.workstation.enable) - { - enable = true; - }; -} diff --git a/home/robin/gui/zen-browser.nix b/home/robin/gui/zen-browser.nix deleted file mode 100644 --- a/home/robin/gui/zen-browser.nix +++ /dev/null @@ -1,83 +0,0 @@ -{ - lib, - pkgs, - config, - inputs, - inputs', - ... -}: -let - inherit (lib) mkIf; -in -{ - imports = [ - inputs.zen-browser.homeModules.beta - ]; - - config = - mkIf (config.garden.profiles.graphical.enable && config.garden.programs.defaults.browser == "zen") - { - programs.zen-browser = { - enable = true; - package = lib.mkForce ( - pkgs.wrapFirefox ( - (inputs'.zen-browser.packages.beta-unwrapped.override { - policies = lib.removeAttrs config.programs.zen-browser.policies [ "Preferences" ]; - }).overrideAttrs - (oa: { - installPhase = (oa.installPhase or "") + '' - mkdir -p $out/lib/zen-bin-${oa.version}/defaults/pref/ - chmod 777 $out/lib/zen-bin-${oa.version}/defaults/pref/ - cat > "$out/lib/zen-bin-${oa.version}/defaults/pref/config-prefs.js" << EOF - pref("general.config.obscure_value", 0); - pref("general.config.filename", "config.js"); - // Sandbox needs to be disabled in release and Beta versions - pref("general.config.sandbox_enabled", false); - EOF - cat > "$out/lib/zen-bin-${oa.version}/config.js" << EOF - // skip 1st line - try { - let cmanifest = Cc['@mozilla.org/file/directory_service;1'].getService(Ci.nsIProperties).get('UChrm', Ci.nsIFile); - cmanifest.append('utils'); - cmanifest.append('chrome.manifest'); - if(cmanifest.exists()){ - Components.manager.QueryInterface(Ci.nsIComponentRegistrar).autoRegister(cmanifest); - ChromeUtils.importESModule('chrome://userchromejs/content/boot.sys.mjs'); - } - } catch(ex) {}; - EOF - ''; - }) - ) { } - ); - - policies = { - DisableAppUpdate = true; - DisableFirefoxStudies = true; - DisablePocket = true; - DisableTelemetry = true; - DontCheckDefaultBrowser = true; - NoDefaultBookmarks = true; - OfferToSaveLogins = false; - Preferences = - let - locked = value: { - Value = value; - Status = "locked"; - }; - inherit (config.evergarden) variant accent; - palette = inputs.evergarden.lib.palette.${variant}; - in - builtins.mapAttrs (_: locked) { - "browser.tabs.warnOnClose" = false; - "media.videocontrols.picture-in-picture.video-toggle.enabled" = true; - "browser.tabs.groups.enabled" = true; - "zen.urlbar.behavior" = "float"; - "zen.theme.accent-color" = palette.${accent}; - }; - }; - }; - - programs.zen-browser.nativeMessagingHosts = [ pkgs.firefoxpwa ]; - }; -} diff --git a/home/robin/packages.nix b/home/robin/packages.nix deleted file mode 100644 --- a/home/robin/packages.nix +++ /dev/null @@ -1,66 +0,0 @@ -{ - lib, - pkgs, - config, - inputs', - ... -}: -let - inherit (lib) optionalAttrs mergeAttrsList; - inherit (pkgs.stdenv.hostPlatform) isLinux; - - cfg = config.garden.profiles; -in -{ - garden.packages = mergeAttrsList [ - (optionalAttrs cfg.workstation.enable { - inherit (pkgs) - unzip - rsync - just # cool build tool - wakatime-cli - nix-output-monitor # much nicer nix build output - # wishlist # fancy ssh - glow # fancy markdown - # fx # fancy jq - # gum # a nicer scripting - jq # json parser - yq # yaml parser - ; - - inherit (inputs'.tgirlpkgs.packages) zzz; # code snippets in the cli - }) - - (optionalAttrs cfg.graphical.enable { - inherit (pkgs) - # bitwarden-desktop # password manager - # jellyfin-media-player - # insomnia # rest client - # inkscape # vector graphics editor - # gimp # image editor - manga-tui # tui manga finder + reader - # bitwarden-cli # bitwarden, my chosen password manager - # vhs # programmatically make gifs - youtube-music - ; - }) - - (optionalAttrs (cfg.graphical.enable && isLinux) { - inherit (pkgs) - wl-gammactl - brightnessctl # brightness managed via cli - libnotify # needed for some notifications - grim - slurp - wl-clipboard - cliphist - pwvucontrol - feh - ; - }) - - (optionalAttrs cfg.workstation.enable { - inherit (pkgs) zig; - }) - ]; -} diff --git a/home/robin/services/clipboard.nix b/home/robin/services/clipboard.nix deleted file mode 100644 --- a/home/robin/services/clipboard.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ - lib, - self, - pkgs, - config, - ... -}: -let - inherit (lib) getExe mkIf; - inherit (self.lib) mkGraphicalService; -in -{ - config = mkIf config.garden.profiles.graphical.enable { - systemd.user.services.cliphist = mkGraphicalService { - Unit.Description = "Clipboard history service"; - Service = { - ExecStart = "${pkgs.wl-clipboard}/bin/wl-paste --watch ${getExe pkgs.cliphist} store"; - Restart = "always"; - }; - }; - }; -} diff --git a/home/robin/services/default.nix b/home/robin/services/default.nix deleted file mode 100644 --- a/home/robin/services/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ - imports = [ - ./clipboard.nix - ./rnnoise.nix - ./tray.nix - ]; -} diff --git a/home/robin/services/rnnoise.nix b/home/robin/services/rnnoise.nix deleted file mode 100644 --- a/home/robin/services/rnnoise.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ - lib, - pkgs, - config, - ... -}: -let - inherit (lib) mkIf; -in -{ - config = mkIf (config.garden.profiles.graphical.enable && pkgs.stdenv.hostPlatform.isLinux) { - xdg.configFile."pipewire/pipewire.conf.d/99-input-denoising.conf".text = builtins.toJSON { - "context.modules" = [ - { - "name" = "libpipewire-module-filter-chain"; - "args" = { - "node.description" = "Noise Canceling source"; - "media.name" = "Noise Canceling source"; - "filter.graph" = { - "nodes" = [ - { - "type" = "ladspa"; - "name" = "rnnoise"; - "plugin" = "${pkgs.rnnoise-plugin}/lib/ladspa/librnnoise_ladspa.so"; - "label" = "noise_suppressor_stereo"; - "control" = { - "VAD Threshold (%)" = 30.0; - }; - } - ]; - }; - "audio.position" = [ - "FL" - "FR" - ]; - "capture.props" = { - "node.name" = "effect_input.rnnoise"; - "node.passive" = true; - }; - "playback.props" = { - "node.name" = "effect_output.rnnoise"; - "media.class" = "Audio/Source"; - }; - }; - } - ]; - }; - }; -} diff --git a/home/robin/services/tray.nix b/home/robin/services/tray.nix deleted file mode 100644 --- a/home/robin/services/tray.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ - lib, - config, - ... -}: -let - inherit (lib) mkIf; -in -{ - config = mkIf config.garden.profiles.graphical.enable { - # https://github.com/nix-community/home-manager/issues/2064 - systemd.user.targets.tray.Unit = { - Description = "Home Manager System Tray"; - Requires = [ "graphical-session-pre.target" ]; - }; - }; -} diff --git a/home/robin/system/default.nix b/home/robin/system/default.nix deleted file mode 100644 --- a/home/robin/system/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - imports = [ - ./secrets.nix # secrets management - ./ssh.nix # ssh agent settings - ]; -} diff --git a/home/robin/system/secrets.nix b/home/robin/system/secrets.nix deleted file mode 100644 --- a/home/robin/system/secrets.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - sops.secrets = { }; -} diff --git a/home/robin/system/ssh.nix b/home/robin/system/ssh.nix deleted file mode 100644 --- a/home/robin/system/ssh.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ - programs.ssh = { - enable = true; - enableDefaultConfig = false; - - matchBlocks = { - "*" = { - forwardAgent = false; - addKeysToAgent = "no"; - compression = true; - serverAliveInterval = 0; - serverAliveCountMax = 3; - hashKnownHosts = true; - userKnownHostsFile = "~/.ssh/known_hosts"; - controlMaster = "no"; - controlPath = "~/.ssh/master-%r@%n:%p"; - controlPersist = "no"; - }; - - # git clients - "github.com" = { - user = "git"; - hostname = "github.com"; - identityFile = "~/.ssh/keys.github.id_ed25519"; - }; - - "gitlab.com" = { - user = "git"; - hostname = "gitlab.com"; - }; - - "git.isabelroses.com" = { - user = "git"; - hostname = "git.isabelroses.com"; - port = 2222; - identityFile = "~/.ssh/keys.gitisabel.id_ed25519"; - }; - - "amity" = { - hostname = "143.47.240.116"; - identityFile = "~/.ssh/keys.amity.id_rsa"; - }; - }; - }; -} diff --git a/home/robin/themes/default.nix b/home/robin/themes/default.nix deleted file mode 100644 --- a/home/robin/themes/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ - imports = [ - ./evergarden.nix - ./fonts.nix - ./global.nix - ./gtk.nix - ./qt.nix - ]; -} diff --git a/home/robin/themes/evergarden.nix b/home/robin/themes/evergarden.nix deleted file mode 100644 --- a/home/robin/themes/evergarden.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ inputs, ... }: -{ - imports = [ inputs.evergarden.homeManagerModules.default ]; - - config = { - evergarden = { - enable = true; - variant = "winter"; - accent = "pink"; - }; - }; -} diff --git a/home/robin/themes/fonts.nix b/home/robin/themes/fonts.nix deleted file mode 100644 --- a/home/robin/themes/fonts.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ pkgs, ... }: -let - inherit (pkgs) ibm-plex; - - fnts = [ - "Symbols Nerd Font" - # fallbacks - "Noto Sans Symbols" - "Noto Sans Symbols2" - ]; -in -{ - config = { - garden.packages = { - ibm-plex = ibm-plex.override { - families = [ - "serif" - "sans" - "sans-kr" - "sans-jp" - "mono" - "math" - ]; - }; - - inherit (pkgs.tex-gyre) schola; - inherit (pkgs) cozette; - }; - - fonts.fontconfig.defaultFonts = { - serif = [ - "TeX Gyre Schola" - "IBM Plex Serif" - ] - ++ fnts; - - sansSerif = [ - "IBM Plex Sans" - "IBM Plex Sans KR" - "IBM Plex Sans JP" - ] - ++ fnts; - }; - }; -} diff --git a/home/robin/themes/global.nix b/home/robin/themes/global.nix deleted file mode 100644 --- a/home/robin/themes/global.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ pkgs, config, ... }: -{ - # pointer / cursor theming - config.home.pointerCursor = { - enable = pkgs.stdenv.hostPlatform.isLinux && config.garden.profiles.graphical.enable; - name = "Capitaine Cursors"; - package = pkgs.capitaine-cursors-themed; - size = 24; - dotIcons.enable = false; - gtk.enable = true; - # this adds extra deps, so lets only enable it on wayland - x11.enable = false; - }; -} diff --git a/home/robin/themes/gtk.nix b/home/robin/themes/gtk.nix deleted file mode 100644 --- a/home/robin/themes/gtk.nix +++ /dev/null @@ -1,84 +0,0 @@ -{ - lib, - pkgs, - config, - ... -}: -let - inherit (lib) mkIf; - - schema = pkgs.gsettings-desktop-schemas; - - cfg = config.garden.style; -in -{ - config = mkIf (config.garden.profiles.graphical.enable && pkgs.stdenv.hostPlatform.isLinux) { - xdg.systemDirs.data = [ "${schema}/share/gsettings-schemas/${schema.name}" ]; - - garden.packages = { - inherit (pkgs) glib; # gsettings - }; - - home = { - # gtk applications should use xdg specified settings - sessionVariables.GTK_USE_PORTAL = "1"; - }; - - gtk = { - enable = true; - - font = { - inherit (cfg.fonts) name size; - }; - - gtk2 = { - configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc"; - extraConfig = '' - gtk-xft-antialias=1 - gtk-xft-hinting=1 - gtk-xft-hintstyle="hintslight" - gtk-xft-rgba="rgb" - ''; - }; - - gtk3.extraConfig = { - # make things look nice - gtk-application-prefer-dark-theme = true; - - gtk-decoration-layout = "appmenu:none"; - - gtk-xft-antialias = 1; - gtk-xft-hinting = 1; - gtk-xft-hintstyle = "hintslight"; - - # stop annoying sounds - gtk-enable-event-sounds = 0; - gtk-enable-input-feedback-sounds = 0; - gtk-error-bell = 0; - - # config that is not the same as gtk4 - gtk-toolbar-style = "GTK_TOOLBAR_BOTH"; - gtk-toolbar-icon-size = "GTK_ICON_SIZE_LARGE_TOOLBAR"; - - gtk-button-images = 1; - gtk-menu-images = 1; - }; - - gtk4.extraConfig = { - # make things look nice - gtk-application-prefer-dark-theme = true; - - gtk-decoration-layout = "appmenu:none"; - - gtk-xft-antialias = 1; - gtk-xft-hinting = 1; - gtk-xft-hintstyle = "hintslight"; - - # stop annoying sounds again - gtk-enable-event-sounds = 0; - gtk-enable-input-feedback-sounds = 0; - gtk-error-bell = 0; - }; - }; - }; -} diff --git a/home/robin/themes/qt.nix b/home/robin/themes/qt.nix deleted file mode 100644 --- a/home/robin/themes/qt.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ - lib, - pkgs, - config, - ... -}: -let - inherit (lib) mkIf; -in -{ - config = mkIf (config.garden.profiles.graphical.enable && pkgs.stdenv.hostPlatform.isLinux) { - qt = { - enable = true; - platformTheme.name = "kvantum"; - style.name = "kvantum"; - }; - - home.sessionVariables = { - # scaling - 1 means no scaling - QT_AUTO_SCREEN_SCALE_FACTOR = "1"; - - # use wayland as the default backend, fallback to xcb if wayland is not available - QT_QPA_PLATFORM = "wayland;xcb"; - - # disable window decorations everywhere - QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; - - # remain backwards compatible with qt5 - DISABLE_QT5_COMPAT = "0"; - - # tell calibre to use the dark theme - CALIBRE_USE_DARK_PALETTE = "1"; - }; - }; -} diff --git a/home/robin/tui/default.nix b/home/robin/tui/default.nix deleted file mode 100644 --- a/home/robin/tui/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ - imports = [ - ./hyfetch - ./izrss.nix - ./lazygit.nix - ./neovim.nix - ./tmux.nix - ./yazi.nix - ]; -} diff --git a/home/robin/tui/gh-dash.nix b/home/robin/tui/gh-dash.nix deleted file mode 100644 --- a/home/robin/tui/gh-dash.nix +++ /dev/null @@ -1,1 +0,0 @@ -{ programs.gh-dash.enable = true; } diff --git a/home/robin/tui/hyfetch/default.nix b/home/robin/tui/hyfetch/default.nix deleted file mode 100644 --- a/home/robin/tui/hyfetch/default.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ - lib, - pkgs, - config, - ... -}: -{ - config = lib.mkIf config.garden.profiles.workstation.enable { - garden.packages = { - chaifetch = pkgs.writeShellApplication { - name = "chaifetch"; - text = '' - hyfetch --ascii-file "${./kitty.ascii}" "$@" - ''; - runtimeInputs = [ - pkgs.hyfetch - pkgs.fastfetch - ]; - }; - }; - - xdg.configFile."hyfetch.json" = { - text = '' - { - "preset": "lesbian", - "mode": "rgb", - "auto_detect_light_dark": false, - "light_dark": "dark", - "lightness": 0.65, - "color_align": { - "mode": "horizontal" - }, - "backend": "fastfetch", - "args": null, - "distro": "nixos_small", - "pride_month_disable": false - } - ''; - }; - }; -} diff --git a/home/robin/tui/hyfetch/kitty.ascii b/home/robin/tui/hyfetch/kitty.ascii deleted file mode 100644 --- a/home/robin/tui/hyfetch/kitty.ascii +++ /dev/null @@ -1,4 +0,0 @@ - /l、 - (゚` q οΌ— - l ~ヽ - γ˜γ—f_,)γƒŽ diff --git a/home/robin/tui/izrss.nix b/home/robin/tui/izrss.nix deleted file mode 100644 --- a/home/robin/tui/izrss.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ config, ... }: -{ - programs.izrss = { - inherit (config.garden.profiles.workstation) enable; - - settings = { - reader.size = "full"; - - urls = [ - "https://isabelroses.com/feed.xml" - "https://robinroses.xyz/feed.xml" - "https://uncenter.dev/feed.xml" - "https://aprl.cat/rss.xml" - - # cool people - # keep-sorted start - "https://aly.codes/index.xml" - "https://antfu.me/feed.xml" - "https://cafkafk.dev/index.xml" - "https://fasterthanli.me/index.xml" - "https://jade.fyi/rss.xml" - "https://mitchellh.com/feed.xml" - "https://mrcjkb.dev/atom.xml" - # keep-sorted end - # cool orgs - # keep-sorted start - "https://100r.co/links/rss.xml" - "https://charm.sh/blog/rss.xml" - # keep-sorted end - - # keep-sorted start - "https://basil.cafe/feeds/posts.xml" - "https://blog.gitbutler.com/rss/" - "https://blog.ihatereality.space/atom.xml" - "https://blog.orhun.dev/rss.xml" - "https://boxesandarrows.com/feed/" - "https://browsercompany.substack.com/feed" - "https://dataswamp.org/~solene/rss-html.xml" - "https://dotfyle.com/this-week-in-neovim/rss.xml" - "https://feeds.feedburner.com/tom-preston-werner" - "https://github.blog/open-source/feed/" - "https://hypr.land/rss.xml" - "https://maia.crimew.gay/feed.xml" - "https://medium.com/feed/better-programming" - "https://namishh.me/rss.xml" - "https://nixpkgs.news/rss.xml" - "https://overreacted.io/rss.xml" - "https://sapphic.moe/rss.xml" - "https://xeiaso.net/blog.rss" - # keep-sorted end - ]; - }; - }; -} diff --git a/home/robin/tui/lazygit.nix b/home/robin/tui/lazygit.nix deleted file mode 100644 --- a/home/robin/tui/lazygit.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ config, ... }: -{ - config.programs.lazygit = { - inherit (config.garden.profiles.workstation) enable; - - settings = { - update.method = "never"; - - gui = { - nerdFontsVersion = 3; - authorColors = { - comfysage = "#b2c98f"; - robin = "#b2c98f"; - isabel = "#f5c2e7"; - }; - }; - - git.paging = { - colorArg = "always"; - pager = "delta --paging=never"; - }; - }; - }; -} diff --git a/home/robin/tui/neovim.nix b/home/robin/tui/neovim.nix deleted file mode 100644 --- a/home/robin/tui/neovim.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ inputs, config, ... }: -{ - imports = [ - inputs.ivy.homeModules.default - ]; - - programs.ivy = { - enable = true; - includePerLanguageTooling = config.garden.profiles.workstation.enable; - gui.enable = config.garden.profiles.graphical.enable; - }; -} diff --git a/home/robin/tui/tmux.nix b/home/robin/tui/tmux.nix deleted file mode 100644 --- a/home/robin/tui/tmux.nix +++ /dev/null @@ -1,150 +0,0 @@ -{ - lib, - pkgs, - config, - ... -}: -let - inherit (lib) mkIf mkAfter; - - inherit (config.garden.programs.defaults) shell; -in -{ - config = mkIf config.garden.profiles.workstation.enable { - programs.zsh = { - initContent = - mkAfter - # zsh - '' - function _fn_tmux_session() { - name="''${1:-$(basename $PWD)}" - tmux new-session -s ''${name} - } - function _fn_tmux_start() { - spath=''${1:-$PWD} - tmux new-session -s "$(basename $spath)" -c "$(realpath $spath)" - } - function _fn_tmux_attach() { - if [[ -n "$1" ]]; then - tmux attach -t "$1" - else - tmux attach - fi - } - - function _fn_tmux_fzf_sessions() { - name=$(tmux ls -F "#S" | fzf) - [[ -z "$name" ]] || _fn_tmux_attach "$name"; - } - function _fn_tmux_fzf_dev() { - dir="$(realpath ''${1:-''${XDG_DEV_DIR}})" - spath=$(fd --absolute-path --base-directory=$dir --no-ignore '^.git$' | awk -F '.git/' '{print $1}' | fzf) - [[ -z "$spath" ]] || _fn_tmux_start "$spath" - } - function _fn_tmux_zoxide() { - [[ -z "$1" ]] && return - _fn_tmux_start "$(zoxide query "$1")" - } - function _fn_tmux_zoxide_fzf() { - _fn_tmux_start "$(zoxide query -i)" - } - ''; - - shellAliases = { - tms = "_fn_tmux_session"; - tmsa = "_fn_tmux_start"; - tml = "tmux list-sessions"; - tma = "_fn_tmux_attach"; - tmat = "tmux attach -t"; - ts = "tmux split-window -c \"#{pane_current_path}\" -p 20 \"make test; read\""; - - tmla = "_fn_tmux_fzf_sessions"; - tmds = "_fn_tmux_fzf_dev"; - tmza = "_fn_tmux_zoxide"; - tmzs = "_fn_tmux_zoxide_fzf"; - }; - }; - - evergarden.tmux.extraConfig = '' - set -gq @window_left_separator "ξ‚Ί" - set -gq @window_right_separator "ξ‚Ό" - ''; - - programs.tmux = { - enable = true; - - prefix = "M-p"; - keyMode = "vi"; - reverseSplit = true; - mouse = true; - shell = "/run/current-system/sw/bin/${shell}"; - - plugins = [ - { - plugin = pkgs.tmuxPlugins.tmux-fzf; - extraConfig = '' - TMUX_FZF_LAUNCH_KEY="space" - ''; - } - ]; - - extraConfig = # tmux - '' - bind-key r source-file ~/.config/tmux/tmux.conf \; \ - display-message "source-file done" - - # vim esc key delay fix - - set -sg escape-time 1 - - bind-key a choose-window - - # better session switching - - bind -n M-. switch-client -p - bind -n M-, switch-client -n - - # better window switching - - bind -n S-Left previous-window - bind -n S-Right next-window - - bind-key '"' command-prompt -I "#{session_name}" "rename-session -- '%%'" - - bind-key w display-popup -E -w 80% -h 80% -d "#{pane_current_path}" - - bind-key e split-window -l 16 -c "#{pane_current_path}" - bind-key E split-window -c "#{pane_current_path}" -l 16 "make test; read" - - set -g status-style bg=default - - set -g set-titles on - set -g set-titles-string "#S :: #W β”‚ #{pane_title}" - - set-option -g status-position bottom - set-option -g status-justify left - - set-option -g status-style fg=default,bg=default - - # Left side of status bar - set-option -g status-left-length 100 - # set-option -g status-left "" - - # Window status - # set-option -g window-status-format "#[fg=#{@thm_overlay1},bg=#{@thm_surface0}] #I Β· #W " - # set-option -g window-status-current-format "#[fg=#{@thm_subtext1},bg=#{@thm_surface0}] #I Β· #W " - # set-option -g window-status-separator "" - - # Right side of status bar - set-option -g status-right-length 100 - # # set-option -g status-right "#[bg=default] %a, %d %b #[bg=default] %R " - # set-option -g status-right '#[fg=black,bg=cyan] #S #[fg=default,bg=default]#[fg=colour15]#{?#{!=:#{b:session_path},#{session_name}}, #{b:session_path} ,}#[fg=default]#[fg=magenta] #{s/\$//:#{session_id}} / #{server_sessions} #[fg=black,bg=magenta] %I:%M %P ' - # set-option -g status-right '#[fg=#{@thm_subtext1},bg=#{@thm_surface0}] #S#{?#{!=:#{b:session_path},#{session_name}}, Β· #{b:session_path},} #[fg=#{@thm_crust},bg=#{@thm_pink}] %I:%M %P ' - - # pane border - set-option -g pane-border-style bg=default,fg=colour8 - set-option -g pane-active-border-style bg=default,fg=colour8 - ''; - }; - }; -} diff --git a/home/robin/tui/yazi.nix b/home/robin/tui/yazi.nix deleted file mode 100644 --- a/home/robin/tui/yazi.nix +++ /dev/null @@ -1,217 +0,0 @@ -{ - lib, - config, - ... -}: -{ - programs.yazi = lib.mkIf config.garden.profiles.workstation.enable { - enable = true; - - settings = { - mgr = { - sorty_by = "extension"; - show_hidden = true; - show_symlink = true; - sort_sensitive = true; - }; - opener = { - edit = [ - { - run = ''$EDITOR "$@"''; - block = true; - for = "unix"; - } - ]; - open = [ - { - run = ''xdg-open "$@"''; - desc = "Open"; - for = "linux"; - } - { - run = ''open "$@"''; - desc = "Open"; - for = "macos"; - } - ]; - reveal = [ - { - run = ''open -R "$1"''; - desc = "Reveal"; - for = "macos"; - } - { - run = ''exiftool "$1"; echo "Press enter to exit"; read''; - block = true; - desc = "Show EXIF"; - for = "unix"; - } - ]; - extract = [ - { - run = ''unar "$1"''; - desc = "Extract here"; - for = "unix"; - } - ]; - play = [ - { - run = ''mpv "$@"''; - orphan = true; - for = "unix"; - } - { - run = ''mediainfo "$1"; echo "Press enter to exit"; read''; - block = true; - desc = "Show media info"; - for = "unix"; - } - ]; - }; - open = { - rules = [ - { - name = "*/"; - use = [ - "edit" - "open" - "reveal" - ]; - } - - { - mime = "text/*"; - use = [ - "edit" - "reveal" - ]; - } - { - mime = "image/*"; - use = [ - "open" - "reveal" - ]; - } - { - mime = "video/*"; - use = [ - "play" - "reveal" - ]; - } - { - mime = "audio/*"; - use = [ - "play" - "reveal" - ]; - } - { - mime = "inode/x-empty"; - use = [ - "edit" - "reveal" - ]; - } - - { - mime = "application/json"; - use = [ - "edit" - "reveal" - ]; - } - { - mime = "*/javascript"; - use = [ - "edit" - "reveal" - ]; - } - - { - mime = "application/zip"; - use = [ - "extract" - "reveal" - ]; - } - { - mime = "application/gzip"; - use = [ - "extract" - "reveal" - ]; - } - { - mime = "application/x-tar"; - use = [ - "extract" - "reveal" - ]; - } - { - mime = "application/x-bzip"; - use = [ - "extract" - "reveal" - ]; - } - { - mime = "application/x-bzip2"; - use = [ - "extract" - "reveal" - ]; - } - { - mime = "application/x-7z-compressed"; - use = [ - "extract" - "reveal" - ]; - } - { - mime = "application/x-rar"; - use = [ - "extract" - "reveal" - ]; - } - - { - mime = "*"; - use = [ - "open" - "reveal" - ]; - } - ]; - }; - }; - - theme = { - manager = { - tab_width = 1; - border_symbol = " "; - folder_offset = [ - 1 - 0 - 1 - 0 - ]; - preview_offset = [ - 1 - 1 - 1 - 1 - ]; - }; - status = { - separator_open = "ξ‚Ά"; - separator_close = "ξ‚΄"; - }; - }; - }; -} diff --git a/modules/nixos/users/default.nix b/modules/nixos/users/default.nix --- a/modules/nixos/users/default.nix +++ b/modules/nixos/users/default.nix @@ -2,7 +2,6 @@ { imports = [ # keep-sorted start ./isabel.nix - ./robin.nix ./root.nix # keep-sorted end ]; diff --git a/modules/nixos/users/robin.nix b/modules/nixos/users/robin.nix deleted file mode 100644 --- a/modules/nixos/users/robin.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ lib, config, ... }: -let - inherit (lib) elem mkIf; -in -{ - config = mkIf (elem "robin" config.garden.system.users) { - users.users.robin = { - hashedPassword = "$y$j9T$fjikoYmPQxjKqjobJ/vZC/$ULBf6ns9PS8EUHBeRbnd3QQbOSCtAe18JhK3UUy.nv2"; - }; - }; -} diff --git a/secrets/robin.yaml b/secrets/robin.yaml deleted file mode 100644 --- a/secrets/robin.yaml +++ /dev/null diff --git a/systems/bmo/default.nix b/systems/bmo/default.nix deleted file mode 100644 --- a/systems/bmo/default.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ - imports = [ - ./hardware.nix - ./users.nix - ]; - - time.timeZone = "Europe/Amsterdam"; - i18n.defaultLocale = "en_US.UTF-8"; - - catppuccin.enable = false; - - garden = { - profiles = { - laptop.enable = true; - graphical.enable = true; - workstation.enable = true; - }; - - device = { - cpu = "amd"; - gpu = null; - monitors = [ - "eDP-1" - "HDMI-A-1" - ]; - keyboard = "us"; - capabilities = { - tpm = true; - bluetooth = true; - }; - }; - - system = { - boot = { - loader = "systemd-boot"; - secureBoot = false; - enableKernelTweaks = true; - loadRecommendedModules = true; - - initrd = { - enableTweaks = true; - optimizeCompressor = true; - }; - }; - - bluetooth.enable = true; - printing.enable = true; - - security = { - fixWebcam = true; - auditd.enable = true; - }; - - networking = { - optimizeTcp = true; - wirelessBackend = "iwd"; - }; - }; - }; -} diff --git a/systems/bmo/hardware.nix b/systems/bmo/hardware.nix deleted file mode 100644 --- a/systems/bmo/hardware.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ - fileSystems = { - "/" = { - device = "/dev/disk/by-uuid/44796f51-4f0a-471b-827b-e7b5a8050110"; - fsType = "btrfs"; - }; - - "/boot" = { - device = "/dev/disk/by-uuid/8C3F-37AD"; - fsType = "vfat"; - options = [ - "fmask=0022" - "dmask=0022" - ]; - }; - - "/home/robin" = { - device = "/dev/disk/by-uuid/d462c985-8c0c-4be7-98ee-af05dc259ba6"; - fsType = "btrfs"; - }; - }; -} diff --git a/systems/bmo/users.nix b/systems/bmo/users.nix deleted file mode 100644 --- a/systems/bmo/users.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ - garden.system = { - users = [ "robin" ]; - }; - - home-manager.users.robin = { - programs = { - hyprland.enable = true; - - # programs - firefox.enable = true; - chromium.enable = true; - - discord.enable = true; - }; - - garden.programs.defaults = { - shell = "zsh"; - terminal = "ghostty"; - bar = "quickshell"; - browser = "zen"; - screenLocker = null; - }; - }; -} diff --git a/systems/default.nix b/systems/default.nix --- a/systems/default.nix +++ b/systems/default.nix @@ -22,7 +22,6 @@ # class = "nixos"; # modules = [ ]; # specialArgs = { }; hosts = { - # isabel's hosts # keep-sorted start block=yes newline_separated=yes amaterasu = { }; @@ -46,15 +45,6 @@ class = "darwin"; }; valkyrie = { - class = "wsl"; - }; - # keep-sorted end - - # robin's hosts - # keep-sorted start block=yes newline_separated=yes - bmo = { }; - - wisp = { class = "wsl"; }; # keep-sorted end diff --git a/systems/wisp/default.nix b/systems/wisp/default.nix deleted file mode 100644 --- a/systems/wisp/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ - imports = [ ./users.nix ]; - - garden = { - profiles = { - workstation.enable = true; - headless.enable = true; - }; - - device = { - cpu = null; - gpu = null; - monitors = [ ]; - capabilities = { - tpm = true; - bluetooth = true; - }; - keyboard = "us"; - }; - - system = { - boot = { - loader = "none"; - secureBoot = false; - enableKernelTweaks = true; - loadRecommendedModules = true; - - initrd = { - enableTweaks = true; - optimizeCompressor = true; - }; - }; - - bluetooth.enable = false; - - security = { - auditd.enable = true; - }; - }; - - environment.flakePath = "/mnt/d/dev/dotfiles"; - }; -} diff --git a/systems/wisp/users.nix b/systems/wisp/users.nix deleted file mode 100644 --- a/systems/wisp/users.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ - garden.system = { - mainUser = "robin"; - users = [ "robin" ]; - }; - - home-manager.users.robin = { - garden.programs.defaults.shell = "zsh"; - - programs = { - zsh.enable = true; - }; - }; -} -- tangled.sh