Skip to content

semi710/utils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

utils

Personal utility scripts packaged as a Nix flake. Extracted from ndots for reuse across machines.

Originally, these lived inline as Nix '' strings. Moving them to standalone scripts makes them easier to edit, test, and reuse.

Platforms

  • NixOS / Linux — Hyprland-focused utilities
  • macOS — Yabai window manager helpers, Aerospace helpers
  • Universal — Cross-platform where possible

Usage

As a flake input

{
  inputs.utils.url = "github:niksingh710/utils";

  # In your configuration
  home.packages = [ inputs.utils.packages.${pkgs.system}.focus ];
}

Running directly

nix run github:niksingh710/utils#fast
nix run github:niksingh710/utils#volume -- up
nix run github:niksingh710/utils#walogram

Scripts

Hyprland (Linux)

Script Description
focus Directional focus (tiled/floating aware)
move Directional move with HYPR_MOVE_VAL tuning
fullscreen Cycle: tiled → maximized → fullscreen → tiled
zoom Zoom in/out/reset
toggle-group Toggle window grouping
fast Disable animations/rounding for snappiness
lid-down Handle laptop lid close
quick-term Drop-down terminal (Yakuake-style)
monitor Auto-assign workspaces to monitors

Yabai (macOS)

Script Description
yabai-cycle-focus Directional window focus with cross-display fallback
yabai-cycle-move Swap/warp windows directionally
yabai-space-cycle Cycle spaces on current display
yabai-cycle-display Focus next/previous display
yabai-cycle-move-display Move window to next display and focus it
yabai-focus-window Fuzzy window picker (choose-gui)
yabai-get-window Pull window from any space to current
yabai-toggle-app Open → focus → hide cycle
yabai-warp-cursor Center cursor on focused window

Aerospace (macOS)

Script Description
aerospace-focus-choose Choose-gui window switcher
aerospace-focus-fzf fzf window switcher

System Controls

Script Description Platform
volume Volume up/down/mute/mic-mute Linux
brightness Screen brightness control Linux
icpu CPU info Linux

Rofi Menus (Linux)

Script Description
powermenu-rofi Shutdown/reboot/suspend menu
menus Audio sink/source, bluetooth, network, emoji
clients Window list — focus or pull

Theming & Misc

Script Description
walogram Generate Telegram theme from Stylix colors
cat bat wrapper with sane defaults
myip Local/global IP with -l/-g flags
img-annotate Clipboard → Swappy annotation
waybar-utils Screen recording widget

Integration Examples

Hyprland keymaps

",XF86AudioRaiseVolume,exec,${inputs.utils.packages.${pkgs.system}.volume} up"
",XF86AudioLowerVolume,exec,${inputs.utils.packages.${pkgs.system}.volume} down"
"$mod,h,exec,${inputs.utils.packages.${pkgs.system}.focus} l"
"$mod,j,exec,${inputs.utils.packages.${pkgs.system}.focus} d"

Yabai / skhd

# modules/darwin/yabai/skhd.nix
${mod} - h : ${lib.getExe pkgs.putils.yabai-cycle-focus} west
${mod} - j : ${lib.getExe pkgs.putils.yabai-cycle-focus} south

Stylix + Walogram

{ pkgs, lib, inputs, config, ... }:
let
  walogram = inputs.utils.packages.${pkgs.system}.walogram.override {
    image = config.stylix.image;
    colors = with config.lib.stylix.colors; ''
      color0="#${base00}"
      color1="#${base01}"
      ...
    '';
  };
in
{
  home.packages = [ pkgs.materialgram ];
  home.activation.tg-theme = lib.hm.dag.entryAfter [ "" ]
    ''run ${lib.getExe walogram}'';
}

Rofi theming

inputs.utils.packages.${pkgs.system}.clients.override {
  rofi-theme-str = ''
    * { background: #1e1e1e; }
  '';
}

Development

git clone https://github.com/niksingh710/utils
cd utils
nix develop  # enters shell with pre-commit hooks

Pre-commit runs nixfmt-rfc-style on all .nix files.


Related

About

General utils for Linux system with Nix

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors