diff options
Diffstat (limited to '')
| -rw-r--r-- | modules/by-name/st/starship/module.nix | 157 | ||||
| -rw-r--r-- | modules/by-name/st/steam/module.nix | 20 |
2 files changed, 168 insertions, 9 deletions
diff --git a/modules/by-name/st/starship/module.nix b/modules/by-name/st/starship/module.nix new file mode 100644 index 00000000..9c0ef7ba --- /dev/null +++ b/modules/by-name/st/starship/module.nix @@ -0,0 +1,157 @@ +# nixos-config - My current NixOS configuration +# +# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de> +# SPDX-License-Identifier: GPL-3.0-or-later +# +# This file is part of my nixos-config. +# +# You should have received a copy of the License along with this program. +# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>. +{ + lib, + pkgs, + config, + libraries, + ... +}: let + cfg = config.soispha.programs.starship; +in { + options.soispha.programs.starship = { + enable = libraries.base.options.mkEnable "starship"; + + showBattery = lib.mkOption { + type = lib.types.bool; + default = false; + description = "Whether to show the current battery percentage in the prompt"; + }; + }; + + config.home-manager.users.soispha = lib.mkIf cfg.enable { + programs.starship = { + enable = true; + enableZshIntegration = true; + enableFishIntegration = true; + + settings = { + add_newline = false; + format = lib.concatStrings [ + "$directory" + "$username" + "\${custom.in_nixos_shell}" + "$cmd_duration" + "$status" + "$character" + ]; + + right_format = lib.concatStrings ( + [ + "$git_metrics" + "$git_branch" + "$git_status" + "$git_commit" + "$git_state" + "$time" + ] + ++ lib.optionals cfg.showBattery ["$battery"] + ); + + scan_timeout = 20; + + character = { + # success_symbol = "[❯](bold blue)"; + # a = "⬢"; + success_symbol = "[](bold blue)"; + error_symbol = "[](bold red)"; + }; + + status = { + disabled = false; + format = "([($common_meaning )($status)( $signal_name)]($style) )"; + }; + + time = { + disabled = false; + format = "[\\[$time\\]]($style)"; + }; + + username = { + format = "as [$user]($style) "; + }; + + git_branch = { + format = "[($symbol$branch(:$remote_branch) )]($style)"; + }; + git_status = { + disabled = true; + format = "([\\[$ahead_behind\\]]($style) )"; + ahead = "⇡$count"; + diverged = "⇕⇡$ahead_count⇣$behind_count"; + behind = "⇣$count"; + }; + git_metrics = { + disabled = true; + ignore_submodules = true; + }; + git_state = { + format = "[($state( $progress_current of $progress_total))]($style) "; + rebase = "[rebasing](bold magenta)"; + merge = "[merging](bold yellow)"; + revert = "[reverting](bold blue)"; + cherry_pick = "[picking](bold red)"; + bisect = "[bisecting](bold red)"; + am = "[applying](bold green)"; + am_or_rebase = "[applying/rebasing](bold yellow)"; + }; + git_commit = { + disabled = true; + tag_disabled = false; + tag_symbol = "v"; + format = "[(\\[$tag\\] )]($style)"; + }; + + directory = { + truncate_to_repo = true; + read_only = " "; + before_repo_root_style = "black bold dimmed"; + }; + + cmd_duration = { + min_time = 2000; # Milliseconds + style = "bold white"; + }; + + custom = { + in_nixos_shell = { + symbol = "VM "; + style = "bold white"; + when = ''test "$IN_NIXOS_SHELL" = true''; + shell = ["${lib.getExe pkgs.dash}"]; + description = "Show if a shell is run in a vm"; + }; + }; + + battery = { + # ' ' + # ' ' + # ' ' + # ' ' + # ' ' + display = [ + { + threshold = 10; + style = "bold red"; + } + { + threshold = 30; + style = "bold blue"; + } + { + threshold = 50; + style = "bold green"; + } + ]; + }; + }; + }; + }; +} diff --git a/modules/by-name/st/steam/module.nix b/modules/by-name/st/steam/module.nix index 87cdc709..f44aa0dd 100644 --- a/modules/by-name/st/steam/module.nix +++ b/modules/by-name/st/steam/module.nix @@ -19,15 +19,17 @@ in { }; config = lib.mkIf cfg.enable { - nixpkgs.config.allowUnfreePredicate = pkg: - builtins.elem (lib.getName pkg) [ - # NOTE: These are not really applied. Needs to be at - # <modules/by-name/ni/nixpkgs/config.nix> for some reason. <2025-04-25> - "steam" - "steam-unwrapped" - "steam-original" - "steam-run" - ]; + soispha.nixpkgs.unfreePackageNames = [ + "steam" + "steam-unwrapped" + "steam-original" + "steam-run" + ]; + + soispha.services.unison.pathsToIgnore = [ + # That is just to big to be synchronized (# TODO: Work around that <2024-08-31> ) + "~/.local/share/Steam" + ]; programs.steam = { enable = true; |
