aboutsummaryrefslogtreecommitdiff
path: root/fish/config.fish
diff options
context:
space:
mode:
authoreric.marin <maarin.eric@gmail.com>2024-12-19 16:30:33 +0100
committereric.marin <maarin.eric@gmail.com>2024-12-19 16:30:33 +0100
commit5530697b46d8eb849f211d9923c2e8817cd18759 (patch)
tree1ac1f0c698e7080a582bf1f4e78c12f60657a01a /fish/config.fish
parent000a7c2a4c4bda36f655f6489b5bac3211515a5d (diff)
downloaddotfiles-5530697b46d8eb849f211d9923c2e8817cd18759.tar.gz
dotfiles-5530697b46d8eb849f211d9923c2e8817cd18759.zip
fixed fish
Diffstat (limited to '')
-rw-r--r--fish/config.fish36
1 files changed, 36 insertions, 0 deletions
diff --git a/fish/config.fish b/fish/config.fish
new file mode 100644
index 0000000..3711bc3
--- /dev/null
+++ b/fish/config.fish
@@ -0,0 +1,36 @@
+#!/bin/fish
+
+function fish_prompt
+ printf '%s%s%s $ ' \ (set_color $fish_color_cwd) (prompt_pwd --full-length-dirs 5) (set_color normal)
+end
+
+function start_niri
+ # Make sure there's no already running session.
+ if systemctl --user -q is-active niri.service
+ echo 'A Niri session is already running.'
+ exit 1
+ end
+ # Reset failed state of all user units
+ systemctl --user reset-failed
+ # Import the login manager environment.
+ # systemctl --user import-environment
+ # DBus activation environment is independent from systemd. While most of
+ # dbus-activated services are already using `SystemdService` directive, some
+ # still don't and thus we should set the dbus environment with a separate
+ # command.
+ dbus-update-activation-environment --all
+ # Start niri and wait for it to terminate.
+ systemctl --user --wait start niri.service
+ # Force stop of graphical-session.target.
+ systemctl --user start --job-mode=replace-irreversibly niri-shutdown.target
+ # Unset environment that we've set.
+ systemctl --user unset-environment WAYLAND_DISPLAY XDG_SESSION_TYPE XDG_CURRENT_DESKTOP NIRI_SOCKET
+end
+
+fish_add_path -p ~/.cargo/bin ~/.ghcup/bin
+set -U fish_greeting
+
+if status is-login
+ start_niri
+ kill $fish_pid
+end