Compare commits

..

2 commits

Author SHA1 Message Date
0f64cf7137 Add korean keyboard with fcitx5 2026-04-30 18:24:31 +09:00
feafe252dc Add systemd timers to auto-mute/unmute when idle-inhibit is active
Mutes audio at 21:00 and unmutes at 07:00, but only when the
idle-inhibit toggle is active (PID file exists). This is useful
for leaving the computer running overnight for SSH access while
keeping it quiet for sleeping.
2026-04-11 14:41:24 +00:00
13 changed files with 4025 additions and 0 deletions

View file

@ -71,6 +71,18 @@ ln -s ~/Projects/hypr-dotfiles/tofi tofi
ln -s ~/Projects/hypr-dotfiles/wlogout wlogout
ln -s ~/Projects/hypr-dotfiles/kitty kitty
ln -s ~/Projects/hypr-dotfiles/helix helix
ln -s ~/Projects/hypr-dotfiles/fcitx5 fcitx5
```
To enable the auto-mute/unmute timers (mutes at 21:00, unmutes at
07:00, only when idle-inhibit is active), link the systemd user units:
```
systemctl --user link ~/Projects/hypr-dotfiles/systemd/user/auto-mute.service
systemctl --user link ~/Projects/hypr-dotfiles/systemd/user/auto-mute.timer
systemctl --user link ~/Projects/hypr-dotfiles/systemd/user/auto-unmute.service
systemctl --user link ~/Projects/hypr-dotfiles/systemd/user/auto-unmute.timer
systemctl --user enable --now auto-mute.timer auto-unmute.timer
```
You also need to install all the dependencies:
@ -90,6 +102,8 @@ You also need to install all the dependencies:
- JetBrainsMono Font
- xdg-desktop-portal-hyprland
- xdg-desktop-portal-gtk
- fcitx5
- fcitx5-hangul
There are probably more, I will update the list next time I'm
installing it on a new computer.

3745
fcitx5/conf/cached_layouts Normal file

File diff suppressed because it is too large Load diff

82
fcitx5/conf/fcitx5.conf Normal file
View file

@ -0,0 +1,82 @@
[Hotkey]
# Enumerate when press trigger key repeatedly
EnumerateWithTriggerKeys=True
# Enumerate Input Method Forward
EnumerateForwardKeys=
# Enumerate Input Method Backward
EnumerateBackwardKeys=
# Skip first input method while enumerating
EnumerateSkipFirst=False
# Time limit in milliseconds for triggering modifier key shortcuts
ModifierOnlyKeyTimeout=250
[Hotkey/TriggerKeys]
0=Control+space
1=Zenkaku_Hankaku
2=Hangul
[Hotkey/AltTriggerKeys]
0=Shift_L
[Hotkey/EnumerateGroupForwardKeys]
0=Super+space
[Hotkey/EnumerateGroupBackwardKeys]
0=Shift+Super+space
[Hotkey/ActivateKeys]
0=Hangul_Hanja
[Hotkey/DeactivateKeys]
0=Hangul_Romaja
[Hotkey/PrevPage]
0=Up
[Hotkey/NextPage]
0=Down
[Hotkey/PrevCandidate]
0=Shift+Tab
[Hotkey/NextCandidate]
0=Tab
[Hotkey/TogglePreedit]
0=Control+Alt+P
[Behavior]
# Active By Default
ActiveByDefault=False
# Reset state on Focus In
resetStateWhenFocusIn=No
# Share Input State
ShareInputState=No
# Show preedit in application
PreeditEnabledByDefault=True
# Show Input Method Information when switch input method
ShowInputMethodInformation=True
# Show Input Method Information when changing focus
showInputMethodInformationWhenFocusIn=False
# Show compact input method information
CompactInputMethodInformation=True
# Show first input method information
ShowFirstInputMethodInformation=True
# Default page size
DefaultPageSize=5
# Override Xkb Option
OverrideXkbOption=False
# Custom Xkb Option
CustomXkbOption=
# Force Enabled Addons
EnabledAddons=
# Force Disabled Addons
DisabledAddons=
# Preload input method to be used by default
PreloadInputMethod=True
# Allow input method in the password field
AllowInputMethodForPassword=False
# Show preedit text when typing password
ShowPreeditForPassword=False
# Interval of saving user data in minutes
AutoSavePeriod=30

29
fcitx5/conf/hangul.conf Normal file
View file

@ -0,0 +1,29 @@
# Keyboard Layout
Keyboard=Dubeolsik
# Auto Reorder
AutoReorder=True
# Combine on Double Stroke
CombiOnDoubleStroke=False
# Combine Non Choseong
NonChoseongCombi=True
# Word Commit
WordCommit=False
# Hanja Mode
HanjaMode=True
[HanjaModeToggleKey]
0=Hangul_Hanja
1=F9
[PrevPage]
0=Up
[NextPage]
0=Down
[PrevCandidate]
0=Shift+Tab
[NextCandidate]
0=Tab

View file

@ -0,0 +1,3 @@
# Hidden Notifications
HiddenNotifications=

83
fcitx5/config Normal file
View file

@ -0,0 +1,83 @@
[Hotkey]
# Enumerate when holding modifier of Toggle key
EnumerateWithTriggerKeys=True
# Enumerate Input Method Forward
EnumerateForwardKeys=
# Enumerate Input Method Backward
EnumerateBackwardKeys=
# Skip first input method while enumerating
EnumerateSkipFirst=False
# Time limit in milliseconds for triggering modifier key shortcuts
ModifierOnlyKeyTimeout=250
[Hotkey/TriggerKeys]
0=Control+space
1=Zenkaku_Hankaku
2=Hangul
[Hotkey/ActivateKeys]
0=Hangul_Hanja
[Hotkey/DeactivateKeys]
0=Hangul_Romaja
[Hotkey/AltTriggerKeys]
0=Shift_L
[Hotkey/EnumerateGroupForwardKeys]
0=Super+space
[Hotkey/EnumerateGroupBackwardKeys]
0=Shift+Super+space
[Hotkey/PrevPage]
0=Up
[Hotkey/NextPage]
0=Down
[Hotkey/PrevCandidate]
0=Shift+Tab
[Hotkey/NextCandidate]
0=Tab
[Hotkey/TogglePreedit]
0=Control+Alt+P
[Behavior]
# Active By Default
ActiveByDefault=False
# Reset state on Focus In
resetStateWhenFocusIn=No
# Share Input State
ShareInputState=No
# Show preedit in application
PreeditEnabledByDefault=True
# Show Input Method Information when switch input method
ShowInputMethodInformation=True
# Show Input Method Information when changing focus
showInputMethodInformationWhenFocusIn=False
# Show compact input method information
CompactInputMethodInformation=True
# Show first input method information
ShowFirstInputMethodInformation=True
# Default page size
DefaultPageSize=5
# Override XKB Option
OverrideXkbOption=False
# Custom XKB Option
CustomXkbOption=
# Force Enabled Addons
EnabledAddons=
# Force Disabled Addons
DisabledAddons=
# Preload input method to be used by default
PreloadInputMethod=True
# Allow input method in the password field
AllowInputMethodForPassword=False
# Show preedit text when typing password
ShowPreeditForPassword=False
# Interval of saving user data in minutes
AutoSavePeriod=30

35
fcitx5/profile Normal file
View file

@ -0,0 +1,35 @@
[Groups/0]
# Group Name
Name=Default
# Layout
Default Layout=us-dvorak
# Default Input Method
DefaultIM=keyboard-us
[Groups/0/Items/0]
# Name
Name=keyboard-us-dvorak
# Layout
Layout=
[Groups/0/Items/1]
# Name
Name=hangul
# Layout
Layout=us
[Groups/0/Items/2]
# Name
Name=keyboard-se-svdvorak
# Layout
Layout=
[Groups/0/Items/3]
# Name
Name=keyboard-us
# Layout
Layout=
[GroupOrder]
0=Default

View file

@ -1,3 +1,4 @@
exec-once = fcitx5
exec-once = [workspace 1 silent] $browser
exec-once = [workspace 2 silent] thunderbird
exec-once = [workspace 2 silent] element-desktop

View file

@ -1,4 +1,5 @@
#!/bin/bash
hyprctl switchxkblayout all 0
fcitx5-remote -s keyboard-us-dvorak
wpctl set-mute @DEFAULT_AUDIO_SINK@ 1
hyprlock && wpctl set-mute @DEFAULT_AUDIO_SINK@ 0

View file

@ -0,0 +1,7 @@
[Unit]
Description=Mute audio when idle-inhibit is active
[Service]
Type=oneshot
ExecCondition=/bin/bash -c 'test -f ${XDG_RUNTIME_DIR}/idle-inhibit.pid && kill -0 $(cat ${XDG_RUNTIME_DIR}/idle-inhibit.pid)'
ExecStart=/usr/bin/wpctl set-mute @DEFAULT_AUDIO_SINK@ 1

View file

@ -0,0 +1,9 @@
[Unit]
Description=Mute audio at 21:00
[Timer]
OnCalendar=*-*-* 21:00:00
Persistent=false
[Install]
WantedBy=timers.target

View file

@ -0,0 +1,7 @@
[Unit]
Description=Unmute audio when idle-inhibit is active
[Service]
Type=oneshot
ExecCondition=/bin/bash -c 'test -f ${XDG_RUNTIME_DIR}/idle-inhibit.pid && kill -0 $(cat ${XDG_RUNTIME_DIR}/idle-inhibit.pid)'
ExecStart=/usr/bin/wpctl set-mute @DEFAULT_AUDIO_SINK@ 0

View file

@ -0,0 +1,9 @@
[Unit]
Description=Unmute audio at 07:00
[Timer]
OnCalendar=*-*-* 07:00:00
Persistent=false
[Install]
WantedBy=timers.target