{"id":25493729,"url":"https://github.com/niksingh710/utils","last_synced_at":"2025-06-14T14:35:26.661Z","repository":{"id":276653168,"uuid":"929747353","full_name":"niksingh710/utils","owner":"niksingh710","description":"General utils for Linux system with Nix","archived":false,"fork":false,"pushed_at":"2025-05-23T05:27:14.000Z","size":80,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-23T06:49:33.027Z","etag":null,"topics":["bash","flake","nix","nixos","script","stylix","telegram","walogram"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/niksingh710.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-09T09:53:18.000Z","updated_at":"2025-05-23T05:27:17.000Z","dependencies_parsed_at":"2025-02-09T17:24:32.173Z","dependency_job_id":"3823ac47-023c-4981-9077-420b08ff89a6","html_url":"https://github.com/niksingh710/utils","commit_stats":null,"previous_names":["niksingh710/utils"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/niksingh710/utils","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niksingh710%2Futils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niksingh710%2Futils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niksingh710%2Futils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niksingh710%2Futils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/niksingh710","download_url":"https://codeload.github.com/niksingh710/utils/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niksingh710%2Futils/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259831827,"owners_count":22918601,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash","flake","nix","nixos","script","stylix","telegram","walogram"],"created_at":"2025-02-18T23:17:14.801Z","updated_at":"2025-06-14T14:35:26.576Z","avatar_url":"https://github.com/niksingh710.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 Nix Scripts Flake\n\nI realized that keeping all my scripts inside Nix `''` text objects made the code cluttered. So, I created this flake to manage my scripts more efficiently! 🎯\n\n## 📦 Features\n- **Easily Manageable**: Each script is stored as a separate file for clarity.\n- **Hyprland Utilities**: Scripts to tweak Hyprland behavior dynamically.\n- **Image Annotation**: Quick clipboard-based image annotation with Swappy.\n- **Window Management**: Move, focus, and toggle windows seamlessly.\n- **Volume \u0026 Brightness Controls**: Manage system volume and brightness with ease.\n- **Quick Terminal for Hyprland**: Spawn a floating terminal instantly, like Yakuake.\n\n## 📜 Installation\n```sh\ninputs.utils.url = \"github:niksingh710/utils\";\n\n# In hyprland keymaps\n\",XF86AudioRaiseVolume,exec,${inputs.utils.packages.${pkgs.system}.volume} up\"\n\",XF86AudioLowerVolume,exec,${inputs.utils.packages.${pkgs.system}.volume} down\"\n\n```\nOr run scripts directly:\n```sh\nnix run github:niksingh710/utils#fast\nnix run github:niksingh710/utils#zoom -- in\nnix run github:niksingh710/utils#fullscreen\n```\n\n## 🛠 Available Scripts\n\n| Script Name | Description |\n|------------|-------------|\n| [hypr/fast](./src/hypr/fast) | Toggles animations and rounding in Hyprland for a snappier experience. |\n| [img-annotate](./src/img-annotate) | Opens Swappy to edit the image currently in clipboard. |\n| [hypr/focus](./src/hypr/focus) | Handles focus between tiled and floating windows (like tabbed browsing). |\n| [hypr/move](./src/hypr/move) | Moves tiled and floating windows; uses `HYPR_MOVE_VAL` to adjust movement. |\n| [hypr/fullscreen](./src/hypr/fullscreen) | Toggles maximized and fullscreen states (`tiled/floating → maximized → fullscreen → tiled/floating`). |\n| [hypr/zoom](./src/hypr/zoom) | Manages zoom levels (`in`, `out`, `reset`). |\n| [hypr/toggle-group](./src/hypr/toggle-group) | Toggles a window into a Hyprland group; enables `Group` submap if already grouped. |\n| [hypr/lid-down](./src/hypr/lid-down) | Handles laptop lid-down state. |\n| [volume](./src/volume) | Supports `up`, `down`, `mute`, and `mic-mute` for volume control. |\n| [brightness](./src/brightness) | Adjusts screen brightness using `brightnessctl`. |\n| [cat](./src/cat) | Replaces cat command to use `bat` without paging and `-p` flag enables paging |\n| [myip](./src/myip) | Shows local/global ip with flags `[-g,-l]`. |\n| [hypr/quick-term](./src/hypr/quick-term) | Spawns a floating terminal in Hyprland, similar to Yakuake. |\n| [hypr/monitor](./src/hypr/monitor) | Assigns 1-9 workspace to primary monitor and 10/0 to secondary (need help check comment in script) |\n| [hypr/clients/run-focus](./src/hypr/clients) | Lists all opened clients in rofi and focus on them if also drun then, for colors you can override the theme e.g below.|\n| [hypr/clients/get-client](./src/hypr/clients) | Lists all opened clients in rofi and brings them to the current workspace (ignores special workspace)|\n| [rofi/menus/audio-sink](./src/rofi/menus) | Lists Speakers and present a rofi menu to switch default |\n| [rofi/menus/audio-source](./src/rofi/menus) | Lists Microphones and present a rofi menu to switch default |\n| [rofi/menus/rofimoji](./src/rofi/menus) | Emoji picker using rofi |\n| [rofi/menus/network](./src/rofi/menus) | Quick network manager using rofi |\n| [rofi/menus/bluetooth](./src/rofi/menus) | Quick bluetooth manager using rofi |\n| [rofi/powermenu](./src/rofi/powermenu) | Rofi power manu isolatedly packed so that it will run from anywhere without needing the theme to be passed.|\n| [waybar/recorder](./src/waybar/) | Screen Recording utility utilising wf-screenrec. Sends `RTMIN+4` Signal to waybar |\n| [walogram](./src/walogram/) | Walogram to generate telegram theme from stylix/color palette |\n| [center-align](https://github.com/niksingh710/center-align) | Logs the output in mid of terminal `echo hi \\| center-align` |\n| [bstat](https://github.com/niksingh710/basic-battery-stat) | Shows the battery status of system and mobile device if kdeconnect is connected |\n| [audio-channel](./) | `fzf/rofi/dmenu` picker options to select default mic/output audio channel (will add as i complete my ndots) |\n\n## 📖 Usage\nFor usage details, check out my **ndots** repository:\n🔗 [ndots (Upcoming Refactor)](https://github.com/niksingh710/ndots)\n\n### 🔧 Recommended Hyprland Config for Quick-Term\nTo quickly spawn a floating terminal in Hyprland, add the following keybind:\n```hyprlang\n\"CTRL,grave,exec,${inputs.utils.packages.${pkgs.system}.quick-term}\"\n```\nAnd apply these `windowrulev2` settings:\n```hyprlang\n\"float, class:^(foot-quick)$\"\n\"size 100% 40%, class:^(foot-quick)$\"\n\"move 0% 60%, class:^(foot-quick)$\"\n\"dimaround, class:^(foot-quick)$\"\n\"noborder, class:^(foot-quick)$\"\n\"rounding 0, class:^(foot-quick)$\"\n\"noshadow, class:^(foot-quick)$\"\n\"noanim,class:^(foot-quick)$\"\n\"pin,class:^(foot-quick)$\"\n\"stayfocused,class:^(foot-quick)$\"\n```\n\n#### Walogram\n```sh\nnix run github:niksingh710/utils#walogram\n```\n\nGenerated theme is at `~/.cache/stylix-telegram-theme/stylix.tdesktop-theme`\n\n\u003cdetails\u003e\n\u003csummary\u003e📸 Screenshots\u003c/summary\u003e\n\n![image](https://github.com/user-attachments/assets/22afed68-5ce7-4d1e-8866-3ad46f613a85)\n\n\u003c/details\u003e\n\nTo use it with stylix you can use the following snippet\n\n```nix\n{ pkgs, lib, inputs, config, ... }:\nlet\n  walogram = inputs.utils.packages.${pkgs.system}.walogram.override {\n    image = \"${config.stylix.image}\";\n    colors = (with config.lib.stylix.colors;\n      ''\n        color0=\"#${base00}\"\n        color1=\"#${base01}\"\n        color2=\"#${base02}\"\n        color3=\"#${base03}\"\n        color4=\"#${base04}\"\n        color5=\"#${base05}\"\n        color6=\"#${base06}\"\n        color7=\"#${base07}\"\n        color8=\"#${base08}\"\n        color9=\"#${base09}\"\n        color10=\"#${base0A}\"\n        color11=\"#${base0B}\"\n        color12=\"#${base0C}\"\n        color13=\"#${base0D}\"\n        color14=\"#${base0E}\"\n        color15=\"#${base0F}\"\n      '');\n  };\nin\n{\n  home.packages = [ pkgs.materialgram ];\n  home.activation.tg-theme = lib.hm.dag.entryAfter [ \"\" ]\n    ''\n      run ${lib.getExe walogram}\n    '';\n}\n```\n\n#### Rofi\n##### Power Menu\n```sh\nnix run github:niksingh710/utils#powermenu-rofi\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e📸 Screenshots\u003c/summary\u003e\n\n![Image](https://github.com/user-attachments/assets/f7b40d4b-acc3-43c7-b67b-80b659e57432)\n\n\u003c/details\u003e\n\n##### Emoji, Network, Bluetooth, Audio\n```sh\nnix run github:niksingh710/utils#menus\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e📸 Screenshots\u003c/summary\u003e\n\n![Image](https://github.com/user-attachments/assets/d73e211b-15be-44a0-82b9-db32be4fef30)\n\n\u003c/details\u003e\n\n#### Clients\n##### run-focus and get-client\n\n```sh\nnix shell -p github:niksingh710/utils#clients -c \"run-focus\"\n```\n\nThis will make theming easy with stylix or other modules.\n\n```nix\nself.packages.clients.override ({\n    rofi-theme-str = ''\n        * {\n            background: red;\n        }\n    '';\n})\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e📸 Screenshots\u003c/summary\u003e\n\n| ![Image](https://github.com/user-attachments/assets/0a08444a-9532-44dc-b01b-bfc39d98d0eb) | ![Image](https://github.com/user-attachments/assets/71bdb445-6475-4283-8ba4-a5cd82b184d3) |\n|-|-|\n\n\u003c/details\u003e\n\n## 📊 Stats \u0026 Contributions\n\n💡 Contributions, feedback, and ideas are welcome! 🎉 Feel free to open issues or PRs.\n\n---\n📝 **Made with ❤️ by [niksingh710](https://github.com/niksingh710)**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fniksingh710%2Futils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fniksingh710%2Futils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fniksingh710%2Futils/lists"}