···11# make me own it allllll
22* @isabelroses
33-44-# give comfysage all the things she wants
55-/home/robin/* @comfysage
66-/systems/cottage/* @comfysage
77-/systems/wisp/* @comfysage
···44| --------- | --------- | ------- | ----- | ------------- |
55| amaterasu | isabel | Desktop | NixOS | A powerful desktop dual booting windows 11 |
66| athena | isabel | Hybrid | NixOS | My oldest laptop, altogh this flake still supports it, its barely in use |
77-| bmo | robin | Laptop | NixOS | Robin's laptop |
87| aphrodite | isabel | Sever | NixOS | The host of most tgirl.cloud services |
98| lilith | n/a | Iso | NixOS | An iso image of my NixOS configuration, used to install NixOS on new systems |
109| minerva | isabel | Server | NixOS | This is the orginal server, hosting most of my personal services |
1110| skadi | isabel | Server | NixOS | Oracle free server, mostly used for the pds and aarch64 builds |
1211| tatsumaki | isabel | Laptop | macOS | A macbook air, given to me by uni, almost exclusively used at uni |
1312| valkyrie | isabel | WSL2 | NixOS | This is my WSL2 instance, installed on amaterasu |
1414-| wisp | robin | WSL2 | NixOS | Robin's WSL2 instance, installed on her desktop |
151316141715### 🧩 Modules
···11-{
22- lib,
33- pkgs,
44- config,
55- ...
66-}:
77-let
88- inherit (lib)
99- getExe
1010- optionalString
1111- mapAttrs
1212- ;
1313-1414- buildColors =
1515- opts:
1616- builtins.concatStringsSep "\n" (
1717- builtins.attrValues (mapAttrs (name: value: "set fish_color_${name} ${value}") opts)
1818- );
1919-in
2020-{
2121- programs.fish = {
2222- plugins = [ ];
2323-2424- functions = {
2525- bj = "nohup $argv </dev/null &>/dev/null &";
2626- "." = ''
2727- set -l input $argv[1]
2828- if echo $input | grep -q '^[1-9][0-9]*$'
2929- set -l levels $input
3030- for i in (seq $levels)
3131- cd ..
3232- end
3333- else
3434- echo "Invalid input format. Please use '<number>' to go back a specific number of directories."
3535- end
3636- '';
3737- };
3838-3939- loginShellInit = optionalString pkgs.stdenv.hostPlatform.isDarwin ''
4040- 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
4141- '';
4242-4343- shellInit = ''
4444- # themeing
4545- set fish_greeting
4646- export "MICRO_TRUECOLOR=1"
4747- set -g theme_display_date no
4848- set -g theme_nerd_fonts yes
4949- set -g theme_newline_cursor yes
5050-5151- set SHELL ${getExe config.programs.fish.package}
5252- ''
5353- + (buildColors {
5454- # default color
5555- normal = "brwhite";
5656-5757- # commands like echo
5858- command = "yellow";
5959-6060- # keywords like if - this falls back on the command color if unset
6161- keyword = "red";
6262-6363- # quoted text like "abc"
6464- quote = "green";
6565-6666- # IO redirections like >/dev/null
6767- redirection = "magenta";
6868-6969- # process separators like ; and &
7070- end = "brwhite";
7171-7272- # syntax errors
7373- error = "red";
7474-7575- # ordinary command parameters
7676- param = "teal";
7777-7878- # parameters that are filenames (if the file exists)
7979- valid_path = "brred";
8080-8181- # options starting with “-”, up to the first “--” parameter
8282- option = "teal";
8383-8484- # comments like ‘# important’
8585- comment = "brwhite";
8686-8787- # selected text in vi visual mode
8888- # selection = "";
8989-9090- # parameter expansion operators like * and ~
9191- operator = "brwhite";
9292-9393- # character escapes like \n and \x70
9494- escape = "teal";
9595-9696- # autosuggestions (the proposed rest of a command)
9797- autosuggestion = "brblack";
9898-9999- # the current working directory in the default prompt
100100- cwd = "yellow";
101101-102102- # the current working directory in the default prompt for the root user
103103- cwd_root = "blue";
104104-105105- # the username in the default prompt
106106- user = "green";
107107-108108- # the hostname in the default prompt
109109- host = "magenta";
110110-111111- # the hostname in the default prompt for remote sessions (like ssh)
112112- host_remote = "teal";
113113-114114- # the last command’s nonzero exit code in the default prompt
115115- status = "red";
116116-117117- # the ‘^C’ indicator on a canceled command
118118- cancel = "brblack";
119119-120120- # history search matches and selected pager items (background only)
121121- search_match = "brred";
122122-123123- # the current position in the history
124124- history_current = "brred";
125125- });
126126- };
127127-}
-16
home/robin/cli/shell/shellAlias.nix
···11-{
22- # This configuration creates the shell aliases across: bash, zsh and fish
33- home.shellAliases = {
44- mkdir = "mkdir -pv"; # always create pearent directory
55- df = "df -h"; # human readblity
66- reboot = "systemctl reboot";
77- sysctl = "sudo systemctl";
88- jctl = "journalctl -p 3 -xb"; # get error messages from journalctl
99- lg = "lazygit";
1010-1111- zzzpl = "cd ~/.local/share/zzz ; git pull ; git push ; cd -";
1212- zzzbk = "cd ~/.local/share/zzz ; git add . ; git commit -m 'chore: sync changes' ; git push ; cd -";
1313-1414- vi = "$EDITOR";
1515- };
1616-}
···11-{
22- lib,
33- config,
44- ...
55-}:
66-let
77- inherit (lib) mkIf;
88-99- inherit (config.garden.programs) defaults;
1010-in
1111-{
1212- config = mkIf config.garden.profiles.workstation.enable {
1313- programs = {
1414- bat.enable = lib.mkDefault true;
1515-1616- zk = {
1717- enable = true;
1818- settings = {
1919- note = {
2020- # The default title used for new note, if no `--title` flag is provided.
2121- default-title = "untitled";
2222-2323- # The charset used for random IDs. You can use:
2424- # * letters: only letters from a to z.
2525- # * numbers: 0 to 9
2626- # * alphanum: letters + numbers
2727- # * hex: hexadecimal, from a to f and 0 to 9
2828- # * custom string: will use any character from the provided value
2929- id-charset = "hex";
3030-3131- # Length of the generated IDs.
3232- id-length = 8;
3333- };
3434-3535- tool = {
3636- inherit (defaults) editor pager;
3737-3838- # Command used to preview a note during interactive fzf mode.
3939- # Set it to an empty string "" to disable preview.
4040- fzf-preview = "bat -p --color always {-1}";
4141- };
4242-4343- alias = {
4444- list = "zk list --quiet -f oneline $@";
4545- ls = "zk list $@";
4646- wc = "zk list --sort word-count $@";
4747-4848- search = "zk list -i $@";
4949-5050- # Edit the last modified note.
5151- editlast = "zk edit --limit 1 --sort modified- $@";
5252-5353- # Edit the notes selected interactively among the notes created the last two weeks.
5454- # This alias doesn't take any argument, so we don't use $@.
5555- recent = "zk edit --sort created- --created-after 'last two weeks' --interactive";
5656-5757- # Print paths separated with colons for the notes found with the given
5858- # arguments. This can be useful to expand a complex search query into a flag
5959- # taking only paths. For example:
6060- # zk list --link-to "`zk path -m potato`"
6161- path = "zk list --quiet --format {{path}} --delimiter , $@";
6262-6363- # Returns the Git history for the notes found with the given arguments.
6464- # Note the use of a pipe and the location of $@.
6565- hist = "zk list --format path --delimiter0 --quiet $@ | xargs -t -0 git log --patch --";
6666-6767- tags = "zk tag list $@";
6868- };
6969- };
7070- };
7171- };
7272- };
7373-}
···11-{ config, ... }:
22-let
33- inherit (config.garden.style) fonts;
44-in
55-{
66- services.dunst = {
77- enable = config.garden.profiles.graphical.enable && !config.programs.quickshell.enable;
88- settings = {
99- global = {
1010- follow = "mouse";
1111- width = "(240, 340)";
1212- height = "160";
1313- origin = "top-right";
1414- offset = "4x4";
1515- scale = 0;
1616- notification_limit = 3;
1717-1818- indicate_hidden = "yes";
1919-2020- # Turn on the progess bar. It appears when a progress hint is passed with
2121- # for example dunstify -h int:value:12
2222- progress_bar = true;
2323-2424- # Set the progress bar height. This includes the frame, so make sure
2525- # it's at least twice as big as the frame width.
2626- progress_bar_height = 10;
2727-2828- # Set the frame width of the progress bar
2929- progress_bar_frame_width = 1;
3030-3131- # Set the minimum width for the progress bar
3232- progress_bar_min_width = 150;
3333-3434- # Set the maximum width for the progress bar
3535- progress_bar_max_width = 300;
3636-3737- transparency = 0; # X11 only
3838-3939- # Draw a line of "separator_height" pixel height between two
4040- # notifications.
4141- # Set to 0 to disable.
4242- separator_height = 2;
4343-4444- # Define a color for the separator.
4545- # possible values are:
4646- # * auto: dunst tries to find a color fitting to the background;
4747- # * foreground: use the same color as the foreground;
4848- # * frame: use the same color as the frame;
4949- # * anything else will be interpreted as a X color.
5050- separator_color = "frame";
5151-5252- # Padding between text and separator.
5353- padding = 8;
5454-5555- # Horizontal padding.
5656- horizontal_padding = 12;
5757-5858- # Padding between text and icon.
5959- text_icon_padding = 17;
6060-6161- # Defines width in pixels of frame around the notification window.
6262- # Set to 0 to disable.
6363- frame_width = 3;
6464-6565- # Sort messages by urgency.
6666- sort = "no";
6767-6868- # Don't remove messages, if the user is idle (no mouse or keyboard input)
6969- # for longer than idle_threshold seconds.
7070- # Set to 0 to disable.
7171- # A client can set the 'transient' hint to bypass this. See the rules
7272- # section for how to disable this if necessary
7373- idle_threshold = 120;
7474-7575- font = fonts.name;
7676-7777- line_height = "1.2";
7878-7979- # Possible values are:
8080- # full: Allow a small subset of html markup in notifications:
8181- # <b>bold</b>
8282- # <i>italic</i>
8383- # <s>strikethrough</s>
8484- # <u>underline</u>
8585- #
8686- # For a complete reference see
8787- # <https://docs.gtk.org/Pango/pango_markup.html>.
8888- #
8989- # strip: This setting is provided for compatibility with some broken
9090- # clients that send markup even though it's not enabled on the
9191- # server. Dunst will try to strip the markup but the parsing is
9292- # simplistic so using this option outside of matching rules for
9393- # specific applications *IS GREATLY DISCOURAGED*.
9494- #
9595- # no: Disable markup parsing, incoming notifications will be treated as
9696- # plain text. Dunst will not advertise that it has the body-markup
9797- # capability if this is set as a global setting.
9898- #
9999- # It's important to note that markup inside the format option will be parsed
100100- # regardless of what this is set to.
101101- markup = "full";
102102-103103- # The format of the message. Possible variables are:
104104- # %a appname
105105- # %s summary
106106- # %b body
107107- # %i iconname (including its path)
108108- # %I iconname (without its path)
109109- # %p progress value if set ([ 0%] to [100%]) or nothing
110110- # %n progress value if set without any extra characters
111111- # %% Literal %
112112- # Markup is allowed
113113- format = "<b>%s</b>\n%b";
114114-115115- # Alignment of message text.
116116- # Possible values are "left", "center" and "right".
117117- alignment = "left";
118118-119119- # Vertical alignment of message text and icon.
120120- # Possible values are "top", "center" and "bottom".
121121- vertical_alignment = "center";
122122-123123- # Show age of message if message is older than show_age_threshold
124124- # seconds.
125125- # Set to -1 to disable.
126126- show_age_threshold = 60;
127127-128128- # Specify where to make an ellipsis in long lines.
129129- # Possible values are "start", "middle" and "end".
130130- ellipsize = "middle";
131131-132132- # Ignore newlines '\n' in notifications.
133133- ignore_newline = "no";
134134-135135- # Stack together notifications with the same content
136136- stack_duplicates = true;
137137-138138- # Hide the count of stacked notifications with the same content
139139- hide_duplicate_count = false;
140140-141141- # Display indicators for URLs (U) and actions (A).
142142- show_indicators = "yes";
143143-144144- ### Icons ###
145145-146146- # Align icons left/right/top/off
147147- icon_position = "left";
148148-149149- # Scale small icons up to this size, set to 0 to disable. Helpful
150150- # for e.g. small files or high-dpi screens. In case of conflict,
151151- # max_icon_size takes precedence over this.
152152- min_icon_size = 0;
153153-154154- # Scale larger icons down to this size, set to 0 to disable
155155- max_icon_size = 32;
156156-157157- ### History ###
158158-159159- # Should a notification popped up from history be sticky or timeout
160160- # as if it would normally do.
161161- sticky_history = "yes";
162162-163163- # Maximum amount of notifications kept in history
164164- history_length = 0;
165165-166166- ### Misc/Advanced ###
167167-168168- # dmenu path.
169169- dmenu = "dmenu -p dunst:";
170170-171171- # Browser for opening urls in context menu.
172172- browser = "xdg-open";
173173-174174- # Always run rule-defined scripts, even if the notification is suppressed
175175- always_run_script = true;
176176-177177- # Define the title of the windows spawned by dunst
178178- title = "dunst";
179179-180180- # Define the class of the windows spawned by dunst
181181- class = "dunst";
182182-183183- # Define the corner radius of the notification window
184184- # in pixel size. If the radius is 0, you have no rounded
185185- # corners.
186186- # The radius will be automatically lowered if it exceeds half of the
187187- # notification height to avoid clipping text and/or icons.
188188- corner_radius = 4;
189189-190190- # Ignore the dbus closeNotification message.
191191- # Useful to enforce the timeout set by dunst configuration. Without this
192192- # parameter, an application may close the notification sent before the
193193- # user defined timeout.
194194- ignore_dbusclose = false;
195195-196196- ### Wayland ###
197197- # These settings are Wayland-specific. They have no effect when using X11
198198-199199- # Uncomment this if you want to let notications appear under fullscreen
200200- # applications (default: overlay)
201201- # layer = top
202202-203203- # Set this to true to use X11 output on Wayland.
204204- force_xwayland = false;
205205-206206- ### Legacy
207207-208208- # Use the Xinerama extension instead of RandR for multi-monitor support.
209209- # This setting is provided for compatibility with older nVidia drivers that
210210- # do not support RandR and using it on systems that support RandR is highly
211211- # discouraged.
212212- #
213213- # By enabling this setting dunst will not be able to detect when a monitor
214214- # is connected or disconnected which might break follow mode if the screen
215215- # layout changes.
216216- force_xinerama = false;
217217-218218- ### mouse
219219-220220- # Defines list of actions for each mouse event
221221- # Possible values are:
222222- # * none: Don't do anything.
223223- # * do_action: Invoke the action determined by the action_name rule. If there is no
224224- # such action, open the context menu.
225225- # * open_url: If the notification has exactly one url, open it. If there are multiple
226226- # ones, open the context menu.
227227- # * close_current: Close current notification.
228228- # * close_all: Close all notifications.
229229- # * context: Open context menu for the notification.
230230- # * context_all: Open context menu for all notifications.
231231- # These values can be strung together for each mouse event, and
232232- # will be executed in sequence.
233233- mouse_left_click = "close_current";
234234- mouse_middle_click = "do_action, close_current";
235235- mouse_right_click = "close_all";
236236-237237- # default timeout
238238- timeout = 5;
239239- };
240240-241241- urgency_low = {
242242- timeout = 4;
243243- };
244244-245245- urgency_normal = {
246246- timeout = 5;
247247- };
248248-249249- urgency_critical = {
250250- timeout = 10;
251251- };
252252- };
253253- };
254254-}