summaryrefslogtreecommitdiff
path: root/dot_config/powershell/Microsoft.PowerShell_profile.ps1
blob: 6a006de7a53cc9d5b74d217fdadb454ee907bed1 (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
# Environment variables
$env:XDG_CONFIG_HOME=$(Join-Path "C:" $env:HOMEPATH "\.config")
$env:XDG_DATA_HOME=$(Join-Path "C:" $env:HOMEPATH "\.local\share")
$env:XDG_STATE_HOME=$(Join-Path "C:" $env:HOMEPATH "\.local\state")
$env:EDITOR="nvim"

# Use some cool icons
Import-Module -Name Terminal-Icons

# Git autocompletion for Powershell
Import-Module -Name posh-git

# Fuzzy find my project files (this is really slow, find better implementation later)
Set-PSReadlineKeyHandler -Key "Ctrl+f" -ScriptBlock {
        $codepath = $(Join-Path "C:" $env:HOMEPATH "\Repos\")
        $configpath = $(Join-Path "C:" $env:HOMEPATH "\.config\")
        $localsharepath = $(Join-Path "C:" $env:HOMEPATH "\.local\share\")
        $obsidianvaultpath = $(Join-Path "C:" $env:HOMEPATH "\Documents\Vaults\")
        Invoke-Expression "cd $(fd . $codepath $localsharepath $configpath $obsidianvaultpath -t d -d 1 | fzf)"

        # Next two lines sends an 'enter' key
        Add-Type -AssemblyName System.Windows.Forms
        [System.Windows.Forms.SendKeys]::SendWait("{ENTER}")
}

# Aliases
if (Get-Command -Name 'nvim' -CommandType 'Application' -ErrorAction SilentlyContinue) {
    if (Get-Command -Name 'poetry' -CommandType 'Application' -ErrorAction SilentlyContinue) {
        # Can't create an "alias" with CLI args
        function pn() { & poetry run nvim . }
        function prun() { & poetry run }
    }
}

# Load Starship prompt
Invoke-Expression (&starship init powershell)