summaryrefslogtreecommitdiffstats
path: root/docs/README.md
blob: 2e63684bd6f0d89e268b9bc60627a680aa802f65 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
---
home: true
heroImage: /logo.svg
heroText: null
tagline: The minimal, blazing-fast, and infinitely customizable prompt for any shell!
actionText: Get Started →
actionLink: ./guide/
features:
  - title: Compatibility First
    details: Works on the most common shells on the most common operating systems. Use it everywhere!
  - title: Rust-Powered
    details: Brings the best-in-class speed and safety of Rust, to make your prompt as quick and reliable as possible.
  - title: Customizable
    details: Every little detail is customizable to your liking, to make this prompt as minimal or feature-rich as you'd like it to be.
footer: ISC Licensed | Copyright © 2019-present Starship Contributors

# Used for the description meta tag, for SEO
metaTitle: "Starship: Cross-Shell Prompt"
description: Starship is the minimal, blazing fast, and extremely customizable prompt for any shell! Shows the information you need, while staying sleek and minimal. Quick installation available for Bash, Fish, ZSH, Ion, and PowerShell.
---

<div class="center">
  <video class="demo-video" muted autoplay loop playsinline>
    <source src="/demo.webm" type="video/webm">
    <source src="/demo.mp4" type="video/mp4">
  </video>
</div>

### Quick Install

1. Install the **starship** binary:

   #### Install Latest Version

   With Shell:

   ```sh
   curl -fsSL https://starship.rs/install.sh | bash
   ```

   #### Install via Package Manager

   With [Homebrew](https://brew.sh/):

   ```sh
   brew install starship
   ```

   With [Scoop](https://scoop.sh):

   ```powershell
   scoop install starship
   ```

1. Add the init script to your shell's config file:

   #### Bash

   Add the following to the end of `~/.bashrc`:

   ```sh
   # ~/.bashrc

   eval "$(starship init bash)"
   ```

   #### Fish

   Add the following to the end of `~/.config/fish/config.fish`:

   ```sh
   # ~/.config/fish/config.fish

   starship init fish | source
   ```

   #### Zsh

   Add the following to the end of `~/.zshrc`:

   ```sh
   # ~/.zshrc

   eval "$(starship init zsh)"
   ```

   #### Powershell

   Add the following to the end of `Microsoft.PowerShell_profile.ps1`. You can check the location of this file by querying the `$PROFILE` variable in PowerShell. Typically the path is `~\Documents\PowerShell\Microsoft.PowerShell_profile.ps1` or `~/.config/powershell/Microsoft.PowerShell_profile.ps1` on -Nix.

   ```sh
   Invoke-Expression (&starship init powershell)
   ```

   #### Ion

   Add the following to the end of `~/.config/ion/initrc`:

   ```sh
   # ~/.config/ion/initrc

   eval $(starship init ion)
   ```
   #### Elvish

   ::: warning
   Only elvish v0.15 or higher is supported.
   :::

   Add the following to the end of `~/.elvish/rc.elv`:

   ```sh
   # ~/.elvish/rc.elv

   eval (starship init elvish)
   ```

   #### Tcsh

   Add the following to the end of `~/.tcshrc`:

   ```sh
   # ~/.tcshrc

   eval `starship init tcsh`
   ```
"w"> band++) { struct ieee80211_supported_band *sband = wiphy->bands[band]; if (!sband) continue; for (i = 0; i < sband->n_channels; i++) { struct ieee80211_channel *chan = &sband->channels[i]; if (chan->flags & IEEE80211_CHAN_DISABLED) continue; if (!wiphy_freq_limits_valid_chan(wiphy, freq_limits, n_freq_limits, chan)) { pr_debug("Disabling freq %d MHz as it's out of OF limits\n", chan->center_freq); chan->flags |= IEEE80211_CHAN_DISABLED; } } } } void wiphy_read_of_freq_limits(struct wiphy *wiphy) { struct device *dev = wiphy_dev(wiphy); struct device_node *np; struct property *prop; struct ieee80211_freq_range *freq_limits; unsigned int n_freq_limits; const __be32 *p; int len, i; int err = 0; if (!dev) return; np = dev_of_node(dev); if (!np) return; prop = of_find_property(np, "ieee80211-freq-limit", &len); if (!prop) return; if (!len || len % sizeof(u32) || len / sizeof(u32) % 2) { dev_err(dev, "ieee80211-freq-limit wrong format"); return; } n_freq_limits = len / sizeof(u32) / 2; freq_limits = kcalloc(n_freq_limits, sizeof(*freq_limits), GFP_KERNEL); if (!freq_limits) { err = -ENOMEM; goto out_kfree; } p = NULL; for (i = 0; i < n_freq_limits; i++) { struct ieee80211_freq_range *limit = &freq_limits[i]; p = of_prop_next_u32(prop, p, &limit->start_freq_khz); if (!p) { err = -EINVAL; goto out_kfree; } p = of_prop_next_u32(prop, p, &limit->end_freq_khz); if (!p) { err = -EINVAL; goto out_kfree; } if (!limit->start_freq_khz || !limit->end_freq_khz || limit->start_freq_khz >= limit->end_freq_khz) { err = -EINVAL; goto out_kfree; } } wiphy_freq_limits_apply(wiphy, freq_limits, n_freq_limits); out_kfree: kfree(freq_limits); if (err) dev_err(dev, "Failed to get limits: %d\n", err); } EXPORT_SYMBOL(wiphy_read_of_freq_limits);