-
Notifications
You must be signed in to change notification settings - Fork 0
feat(matic): hyprland + keyd hotkeys #749
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
50 commits
Select commit
Hold shift + click to select a range
32caab0
chore: update
shunkakinoki 98990d9
chore: update
shunkakinoki 8a70a45
feat(matic): add hyprland keyd agenix
shunkakinoki 7e5d92f
chore: update
shunkakinoki eda6868
feat: enhance Hyprland configuration with new components and styles
shunkakinoki 74a9b5d
feat(matic): add SSH and GPG key configurations for agenix deployment
shunkakinoki 210b92e
feat(matic): update secrets.nix to reflect synchronization from galac…
shunkakinoki 9112ab7
feat(matic): update GPG and SSH key files for synchronization
shunkakinoki 03b6ef5
feat(hyprland): update window rule syntax and remove workspace swipe …
shunkakinoki 5bd8414
feat(hyprland): update gesture settings and refine window rules syntax
shunkakinoki 518d507
feat(hyprland): refine window animation settings for improved perform…
shunkakinoki 4c364db
feat(hyprland): update window rule for wofi to focus on activation
shunkakinoki 92ea474
feat(hyprland): change key binding for killing active window from Q to W
shunkakinoki 8bc9e03
feat(hyprland): update workspace format to display workspace ID
shunkakinoki c7bb5be
feat(hyprland): update gesture setting for horizontal workspace navig…
shunkakinoki 41affeb
feat(hyprland): add gesture setting for three-finger horizontal works…
shunkakinoki eb74328
feat(hyprland): update app launch hotkeys to use application IDs
shunkakinoki addf261
feat(hyprland): update clipboard binding to use Shift modifier and ad…
shunkakinoki 5fff3b6
feat(hyprland): remove redundant window rule for wofi focus behavior
shunkakinoki ebfee4b
feat(hyprland): update app launch bindings to use direct commands
shunkakinoki ec059c7
feat(hyprland): integrate Hyprland and its plugins into the Nix confi…
shunkakinoki 3b7bd2e
feat(hyprland): enhance media and hardware key bindings for improved …
shunkakinoki 9b5516c
feat(hyprland): update clock format to include full date and time
shunkakinoki 879744e
feat(hyprland): add CPU and memory modules to waybar configuration
shunkakinoki c261980
feat(hyprland): add color definitions for CPU and memory modules in w…
shunkakinoki 0a3b3c1
feat(hyprland): add spacing for CPU and memory modules in waybar style
shunkakinoki 31dcb7e
feat(hyprland): update waybar color scheme for CPU and memory modules
shunkakinoki 4d15728
chore: add hyprland cachix binary cache globally
shunkakinoki 48b5822
feat(hyprland): update gesture configuration for workspace management
shunkakinoki f833a86
feat(hyprland): update gesture configuration for workspace management
shunkakinoki e542a54
feat(hyprland): update fullscreen binding to use hyprctl for workspac…
shunkakinoki b1c864d
feat(hyprland): add package definition for hyprland in default.nix
shunkakinoki ede5b9e
feat(hyprland): refactor plugin configuration for hyprexpo in default…
shunkakinoki 54e0a1c
feat(hyprland): fix formatting of extraConfig in default.nix
shunkakinoki 80ad0ed
feat(hyprland): update Hyprland URL to specific version v0.53.3 in fl…
shunkakinoki cf3ac92
Revert "feat(hyprland): update Hyprland URL to specific version v0.53…
shunkakinoki 8012ff8
feat(hyprland): simplify hyprexpo plugin and package references in de…
shunkakinoki 9a84a02
feat(hyprland): remove hyprland and hyprland-plugins inputs from flak…
shunkakinoki bc47c24
feat(hyprland): add gesture bindings for hyprexpo and adjust plugin s…
shunkakinoki 28b68e4
feat(hyprland): update gesture settings and enhance keyd configuratio…
shunkakinoki 781c776
feat(keyd): add leftmeta key mapping and update restart triggers in d…
shunkakinoki 9c54d03
feat(hyprland): add key bindings for function keys to control audio a…
shunkakinoki 41dcbde
feat(hyprland): update F9 key binding to toggle display scale between…
shunkakinoki 4859b7a
feat(ghostty): add key bindings for copy and paste functionality
shunkakinoki 89e3008
feat(hyprland): add key binding for emoji selection and update gestur…
shunkakinoki 3022a3c
feat(hyprland): update fullscreen key binding to use Ctrl+Super+F
shunkakinoki 98945b3
feat(hyprland): update fullscreen key binding to use Ctrl+Alt+Shift+F
shunkakinoki 2f2d4ca
feat(hyprland): update fullscreen key binding to use Ctrl+Alt+Shift+F
shunkakinoki 247d0b6
feat(fish): add key bindings for clipboard paste functionality
shunkakinoki 0d18047
feat(ghostty): enable clipboard write and copy-on-select functionality
shunkakinoki File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,35 @@ | ||
| { | ||
| config, | ||
| pkgs, | ||
| lib, | ||
| ... | ||
| }: | ||
| { | ||
| gtk = lib.mkIf pkgs.stdenv.isLinux { | ||
| enable = true; | ||
| theme = { | ||
| name = "Adwaita-dark"; | ||
| package = pkgs.gnome-themes-extra; | ||
| }; | ||
| iconTheme = { | ||
| name = "Adwaita"; | ||
| package = pkgs.adwaita-icon-theme; | ||
| }; | ||
| cursorTheme = { | ||
| name = "Adwaita"; | ||
| size = 24; | ||
| }; | ||
| gtk3.extraConfig = { | ||
| gtk-application-prefer-dark-theme = 1; | ||
| }; | ||
| gtk4.extraConfig = { | ||
| gtk-application-prefer-dark-theme = 1; | ||
| }; | ||
| }; | ||
|
|
||
| dconf.settings = lib.mkIf pkgs.stdenv.isLinux { | ||
| "org/gnome/desktop/interface" = { | ||
| color-scheme = "prefer-dark"; | ||
| }; | ||
| }; | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,29 @@ | ||
| { | ||
| config, | ||
| inputs, | ||
| pkgs, | ||
| ... | ||
| }: | ||
| let | ||
| hyprexpoPlugin = pkgs.hyprlandPlugins.hyprexpo; | ||
| in | ||
| { | ||
| wayland.windowManager.hyprland = { | ||
| enable = true; | ||
| package = pkgs.hyprland; | ||
| systemd.enable = false; | ||
| extraConfig = '' | ||
| plugin = ${hyprexpoPlugin}/lib/libhyprexpo.so | ||
| '' | ||
| + builtins.readFile ./hyprland.conf; | ||
| }; | ||
|
|
||
| xdg.configFile."hypr/hypridle.conf" = { | ||
| source = ./hypridle.conf; | ||
| force = true; | ||
| }; | ||
| xdg.configFile."hypr/hyprlock.conf" = { | ||
| source = ./hyprlock.conf; | ||
| force = true; | ||
| }; | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,31 @@ | ||
| general { | ||
| lock_cmd = pidof hyprlock || hyprlock | ||
| before_sleep_cmd = loginctl lock-session | ||
| after_sleep_cmd = hyprctl dispatch dpms on | ||
| } | ||
|
|
||
| # Dim screen after 2.5 minutes | ||
| listener { | ||
| timeout = 150 | ||
| on-timeout = brightnessctl -s set 10 | ||
| on-resume = brightnessctl -r | ||
| } | ||
|
|
||
| # Lock screen after 5 minutes | ||
| listener { | ||
| timeout = 300 | ||
| on-timeout = loginctl lock-session | ||
| } | ||
|
|
||
| # Turn off display after 5.5 minutes | ||
| listener { | ||
| timeout = 330 | ||
| on-timeout = hyprctl dispatch dpms off | ||
| on-resume = hyprctl dispatch dpms on | ||
| } | ||
|
|
||
| # Suspend after 30 minutes | ||
| listener { | ||
| timeout = 1800 | ||
| on-timeout = systemctl suspend | ||
| } |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🌐 Web query:
Ghostty performable keybind prefix syntax documentation💡 Result:
Ghostty keybind “prefix” syntax is documented under Keybindings → Trigger Prefixes. A keybind is:
keybind = <prefixes>:<trigger>=<action>Prefixes are written before the trigger, separated by
:(and you can stack multiple): e.g.keybind = global:unconsumed:ctrl+a=reload_config[1]performable:prefixperformable:means only consume the key if the action can actually run (otherwise Ghostty acts like the binding doesn’t exist, so the key falls through to the app in the terminal). Example:keybind = performable:ctrl+c=copy_to_clipboard[1][2]Notes:
global:orall:prefixed keybinds. [1][2]performable:keybinds won’t show as menu shortcuts. [1][2]Related docs
performable:): [1]ctrl+a>n=...): [5]🌐 Web query:
Ghostty ctrl+c copy clipboard keybind SIGINT terminal💡 Result:
To make Ctrl+C act as Copy only when there’s a selection, and otherwise pass through to the PTY as SIGINT (interrupt), bind it with Ghostty’s
performable:prefix:copy_to_clipboardcopies the current selection. (ghostty.org)performable:means Ghostty only consumes the keypress if the action can be performed (i.e., there is something selected). If not, Ghostty behaves as if the keybind isn’t set—so Ctrl+C is sent to the running program, producing SIGINT in shells/programs likesleep 100. (ghostty.org)Tip: you can inspect what’s currently bound (defaults and overrides) with:
(ghostty.org)
Citations:
🏁 Script executed:
Repository: shunkakinoki/dotfiles
Length of output: 91
🏁 Script executed:
Repository: shunkakinoki/dotfiles
Length of output: 81
🏁 Script executed:
Repository: shunkakinoki/dotfiles
Length of output: 954
🏁 Script executed:
Repository: shunkakinoki/dotfiles
Length of output: 960
ctrl+c=copy_to_clipboardintercepts SIGINT — useperformable:prefix instead.Binding
ctrl+cunconditionally tocopy_to_clipboardprevents sending interrupt signals to running processes. The keydcmd_maclayer (Framework+C → Ctrl+C) will still work, but users cannot send SIGINT directly via bare Ctrl+C from the keyboard.Ghostty's
performable:prefix triggers the action only when it can be performed (i.e., text is selected); otherwise the key passes through to the terminal. This preserves both copy on selection and SIGINT when needed.Proposed fix
📝 Committable suggestion
🤖 Prompt for AI Agents