mirror of
https://github.com/Dichgrem/dotfiles.git
synced 2025-07-31 17:09:30 -04:00
Compare commits
22 Commits
51b825a1d2
...
main
Author | SHA1 | Date | |
---|---|---|---|
52749d8ac3 | |||
c84fd8f412 | |||
dbdf37dbed | |||
80c7581493 | |||
846704dc0c | |||
4e266843db | |||
8aeb0c38b9 | |||
c1725285b8 | |||
6a1e94e6b6 | |||
23d4a1f2db | |||
0a11fb7257 | |||
9333bb40ae | |||
366660a0f0 | |||
251fda4d51 | |||
f92ab6ccba | |||
93e5822d72 | |||
1a4c06e08c | |||
7aef478be7 | |||
5a1d167e0a | |||
83bc200e82 | |||
f1b669563e | |||
f343eb0913 |
@ -161,7 +161,7 @@ live_config_reload = true
|
||||
working_directory = "None"
|
||||
|
||||
[terminal.shell]
|
||||
program = "/usr/bin/sh"
|
||||
args = ["-c", "fastfetch && exec nu"]
|
||||
program = "/usr/bin/fish"
|
||||
|
||||
|
||||
|
||||
|
@ -107,7 +107,7 @@
|
||||
"key": "│ ╠ Shell │",
|
||||
"keyColor": "blue",
|
||||
"outputColor": "blue",
|
||||
"format": "nushell",
|
||||
"format": "{1}",
|
||||
},
|
||||
{
|
||||
"type": "terminal",
|
||||
|
BIN
fcitx5(local)/themes/catppuccin-mocha-flamingo/arrow.png
Normal file
BIN
fcitx5(local)/themes/catppuccin-mocha-flamingo/arrow.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 694 B |
BIN
fcitx5(local)/themes/catppuccin-mocha-flamingo/radio.png
Normal file
BIN
fcitx5(local)/themes/catppuccin-mocha-flamingo/radio.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 617 B |
110
fcitx5(local)/themes/catppuccin-mocha-flamingo/theme.conf
Normal file
110
fcitx5(local)/themes/catppuccin-mocha-flamingo/theme.conf
Normal file
@ -0,0 +1,110 @@
|
||||
# vim: ft=dosini
|
||||
[Metadata]
|
||||
Name=Catppuccin Mocha Flamingo
|
||||
Version=0.2
|
||||
Author=justTOBBI and Isabelinc
|
||||
Description=Catppuccin Mocha Flamingo Color Theme
|
||||
ScaleWithDPI=True
|
||||
|
||||
[InputPanel]
|
||||
# 字体
|
||||
Font=Sarasa Gothic SC 14
|
||||
# 非选中候选字颜色
|
||||
# Blue
|
||||
NormalColor=#89b4fa
|
||||
# 选中候选字颜色
|
||||
# Flamingo
|
||||
HighlightCandidateColor=#f2cdcd
|
||||
# 高亮前景颜色(输入字符颜色)
|
||||
# Flamingo
|
||||
HighlightColor=#f2cdcd
|
||||
# 输入字符背景颜色
|
||||
# Surface 0
|
||||
HighlightBackgroundColor=#313244
|
||||
|
||||
Spacing=3
|
||||
|
||||
[InputPanel/TextMargin]
|
||||
# 候选字对左边距
|
||||
Left=10
|
||||
# 候选字对右边距
|
||||
Right=10
|
||||
# 候选字向上边距
|
||||
Top=6
|
||||
# 候选字向下边距
|
||||
Bottom=6
|
||||
|
||||
[InputPanel/Background]
|
||||
# Surface 0
|
||||
Color=#313244
|
||||
# Surface 0
|
||||
BorderColor=#313244
|
||||
BorderWidth=2
|
||||
|
||||
[InputPanel/Background/Margin]
|
||||
Left=2
|
||||
Right=2
|
||||
Top=2
|
||||
Bottom=2
|
||||
|
||||
[InputPanel/Highlight]
|
||||
# Surface 0
|
||||
Color=#313244
|
||||
|
||||
[InputPanel/Highlight/Margin]
|
||||
# 高亮区域左边距
|
||||
Left=10
|
||||
# 高亮区域右边距
|
||||
Right=10
|
||||
# 高亮区域上边距
|
||||
Top=7
|
||||
# 高亮区域下边距
|
||||
Bottom=7
|
||||
|
||||
[Menu]
|
||||
Font=Sarasa Gothic SC 14
|
||||
# Text
|
||||
NormalColor=#cdd6f4
|
||||
Spacing=3
|
||||
|
||||
[Menu/Background]
|
||||
# Surface 0
|
||||
Color=#313244
|
||||
|
||||
[Menu/Background/Margin]
|
||||
Left=2
|
||||
Right=2
|
||||
Top=2
|
||||
Bottom=2
|
||||
|
||||
[Menu/ContentMargin]
|
||||
Left=2
|
||||
Right=2
|
||||
Top=2
|
||||
Bottom=2
|
||||
|
||||
[Menu/Highlight]
|
||||
# Pink
|
||||
Color=#f5c2e7
|
||||
|
||||
[Menu/Highlight/Margin]
|
||||
Left=10
|
||||
Right=10
|
||||
Top=5
|
||||
Bottom=5
|
||||
|
||||
[Menu/Separator]
|
||||
# Base
|
||||
Color=#1e1e2e
|
||||
|
||||
[Menu/CheckBox]
|
||||
Image=radio.png
|
||||
|
||||
[Menu/SubMenu]
|
||||
Image=arrow.png
|
||||
|
||||
[Menu/TextMargin]
|
||||
Left=5
|
||||
Right=5
|
||||
Top=5
|
||||
Bottom=5
|
@ -958,6 +958,11 @@ Description="Keyboard - Swedish - Swedish (Svdvorak)"
|
||||
Language=sv
|
||||
Label="se (svdvorak)"
|
||||
|
||||
[keyboard-se-colemak]
|
||||
Description="Keyboard - Swedish - Swedish (Colemak)"
|
||||
Language=sv
|
||||
Label="se (colemak)"
|
||||
|
||||
[keyboard-se-mac]
|
||||
Description="Keyboard - Swedish - Swedish (Macintosh)"
|
||||
Language=sv
|
||||
@ -3673,11 +3678,6 @@ Description="Keyboard - Japanese - Japanese (Kana)"
|
||||
Language=ja
|
||||
Label="jp (kana)"
|
||||
|
||||
[keyboard-jp-kana86]
|
||||
Description="Keyboard - Japanese - Japanese (Kana 86)"
|
||||
Language=ja
|
||||
Label="jp (kana86)"
|
||||
|
||||
[keyboard-jp-OADG109A]
|
||||
Description="Keyboard - Japanese - Japanese (OADG 109A)"
|
||||
Language=ja
|
||||
|
35
fcitx5/conf/classicui.conf
Normal file
35
fcitx5/conf/classicui.conf
Normal file
@ -0,0 +1,35 @@
|
||||
# Vertical Candidate List
|
||||
Vertical Candidate List=False
|
||||
# Use mouse wheel to go to prev or next page
|
||||
WheelForPaging=True
|
||||
# Font
|
||||
Font="Sarasa Gothic SC 14"
|
||||
# Menu Font
|
||||
MenuFont="Sarasa Gothic SC 14"
|
||||
# Tray Font
|
||||
TrayFont="Sarasa Gothic SC 12"
|
||||
# Tray Label Outline Color
|
||||
TrayOutlineColor=#000000
|
||||
# Tray Label Text Color
|
||||
TrayTextColor=#ffffff
|
||||
# Prefer Text Icon
|
||||
PreferTextIcon=False
|
||||
# Show Layout Name In Icon
|
||||
ShowLayoutNameInIcon=True
|
||||
# Use input method language to display text
|
||||
UseInputMethodLanguageToDisplayText=True
|
||||
# Theme
|
||||
Theme=catppuccin-mocha-flamingo
|
||||
# Dark Theme
|
||||
DarkTheme=catppuccin-mocha-flamingo
|
||||
# Follow system light/dark color scheme
|
||||
UseDarkTheme=True
|
||||
# Follow system accent color if it is supported by theme and desktop
|
||||
UseAccentColor=True
|
||||
# Use Per Screen DPI on X11
|
||||
PerScreenDPI=False
|
||||
# Force font DPI on Wayland
|
||||
ForceWaylandDPI=0
|
||||
# Enable fractional scale under Wayland
|
||||
EnableFractionalScale=True
|
||||
|
@ -1,3 +1,3 @@
|
||||
[HiddenNotifications]
|
||||
0=fcitx-rime-deploy
|
||||
# Hidden Notifications
|
||||
HiddenNotifications=
|
||||
|
||||
|
@ -1,140 +0,0 @@
|
||||
# Shuangpin Profile
|
||||
ShuangpinProfile=Ziranma
|
||||
# Show current shuangpin mode
|
||||
ShowShuangpinMode=True
|
||||
# Page size
|
||||
PageSize=7
|
||||
# Enable Spell
|
||||
SpellEnabled=True
|
||||
# Enable Symbols
|
||||
SymbolsEnabled=True
|
||||
# Enable Chaizi
|
||||
ChaiziEnabled=True
|
||||
# Enable Characters in Unicode CJK Extension B
|
||||
ExtBEnabled=True
|
||||
# Enable Cloud Pinyin
|
||||
CloudPinyinEnabled=False
|
||||
# Cloud Pinyin Index
|
||||
CloudPinyinIndex=2
|
||||
# Show animation when Cloud Pinyin is loading
|
||||
CloudPinyinAnimation=True
|
||||
# Always show Cloud Pinyin place holder
|
||||
KeepCloudPinyinPlaceHolder=False
|
||||
# Preedit Mode
|
||||
PreeditMode="Composing pinyin"
|
||||
# Fix embedded preedit cursor at the beginning of the preedit
|
||||
PreeditCursorPositionAtBeginning=True
|
||||
# Show complete pinyin in preedit
|
||||
PinyinInPreedit=False
|
||||
# Enable Prediction
|
||||
Prediction=False
|
||||
# Prediction Size
|
||||
PredictionSize=49
|
||||
# Action when switching input method
|
||||
SwitchInputMethodBehavior="Commit current preedit"
|
||||
# Select 2nd Candidate
|
||||
SecondCandidate=
|
||||
# Select 3rd Candidate
|
||||
ThirdCandidate=
|
||||
# Use Keypad as Selection key
|
||||
UseKeypadAsSelection=False
|
||||
# Use BackSpace to cancel the selection
|
||||
BackSpaceToUnselect=True
|
||||
# Number of Sentences
|
||||
Number of sentence=2
|
||||
# Prompt long word length when input length over (0 for disable)
|
||||
LongWordLengthLimit=4
|
||||
# Key to trigger quickphrase
|
||||
QuickPhraseKey=semicolon
|
||||
# Use V to trigger quickphrase
|
||||
VAsQuickphrase=True
|
||||
# FirstRun
|
||||
FirstRun=False
|
||||
|
||||
[ForgetWord]
|
||||
0=Control+7
|
||||
|
||||
[PrevPage]
|
||||
0=minus
|
||||
1=Up
|
||||
2=KP_Up
|
||||
3=Page_Up
|
||||
|
||||
[NextPage]
|
||||
0=equal
|
||||
1=Down
|
||||
2=KP_Down
|
||||
3=Next
|
||||
|
||||
[PrevCandidate]
|
||||
0=Shift+Tab
|
||||
|
||||
[NextCandidate]
|
||||
0=Tab
|
||||
|
||||
[CurrentCandidate]
|
||||
0=space
|
||||
1=KP_Space
|
||||
|
||||
[CommitRawInput]
|
||||
0=Return
|
||||
1=KP_Enter
|
||||
2=Control+Return
|
||||
3=Control+KP_Enter
|
||||
4=Shift+Return
|
||||
5=Shift+KP_Enter
|
||||
6=Control+Shift+Return
|
||||
7=Control+Shift+KP_Enter
|
||||
|
||||
[ChooseCharFromPhrase]
|
||||
0=bracketleft
|
||||
1=bracketright
|
||||
|
||||
[FilterByStroke]
|
||||
0=grave
|
||||
|
||||
[QuickPhraseTriggerRegex]
|
||||
0=.(/|@)$
|
||||
1=^(www|bbs|forum|mail|bbs)\\.
|
||||
2=^(http|https|ftp|telnet|mailto):
|
||||
|
||||
[Fuzzy]
|
||||
# ue -> ve
|
||||
VE_UE=True
|
||||
# Common Typo
|
||||
NG_GN=True
|
||||
# Inner Segment (xian -> xi'an)
|
||||
Inner=True
|
||||
# Inner Segment for Short Pinyin (qie -> qi'e)
|
||||
InnerShort=True
|
||||
# Match partial finals (e -> en, eng, ei)
|
||||
PartialFinal=True
|
||||
# Match partial shuangpin if input length is longer than 4
|
||||
PartialSp=False
|
||||
# u <-> v
|
||||
V_U=False
|
||||
# an <-> ang
|
||||
AN_ANG=False
|
||||
# en <-> eng
|
||||
EN_ENG=False
|
||||
# ian <-> iang
|
||||
IAN_IANG=False
|
||||
# in <-> ing
|
||||
IN_ING=False
|
||||
# u <-> ou
|
||||
U_OU=False
|
||||
# uan <-> uang
|
||||
UAN_UANG=False
|
||||
# c <-> ch
|
||||
C_CH=False
|
||||
# f <-> h
|
||||
F_H=False
|
||||
# l <-> n
|
||||
L_N=False
|
||||
# s <-> sh
|
||||
S_SH=False
|
||||
# z <-> zh
|
||||
Z_ZH=False
|
||||
# Correction Layout
|
||||
Correction=None
|
||||
|
@ -1,10 +0,0 @@
|
||||
# Half width punctuation after latin letter or number
|
||||
HalfWidthPuncAfterLetterOrNumber=True
|
||||
# Type paired punctuations together (e.g. Quote)
|
||||
TypePairedPunctuationsTogether=False
|
||||
# Enabled
|
||||
Enabled=True
|
||||
|
||||
[Hotkey]
|
||||
0=Control+period
|
||||
|
@ -1,13 +0,0 @@
|
||||
# Preedit Mode
|
||||
PreeditMode="Composing text"
|
||||
# Shared Input State
|
||||
InputState=All
|
||||
# Fix embedded preedit cursor at the beginning of the preedit
|
||||
PreeditCursorPositionAtBeginning=True
|
||||
# Action when switching input method
|
||||
SwitchInputMethodBehavior="Commit commit preview"
|
||||
# Deploy
|
||||
Deploy=
|
||||
# Synchronize
|
||||
Synchronize=
|
||||
|
@ -11,7 +11,7 @@ EnumerateSkipFirst=False
|
||||
ModifierOnlyKeyTimeout=250
|
||||
|
||||
[Hotkey/TriggerKeys]
|
||||
0=Control+Shift+Shift_L
|
||||
0=Control+space
|
||||
1=Zenkaku_Hankaku
|
||||
2=Hangul
|
||||
|
||||
|
340
fish/conf.d/done.fish
Normal file
340
fish/conf.d/done.fish
Normal file
@ -0,0 +1,340 @@
|
||||
# MIT License
|
||||
|
||||
# Copyright (c) 2016 Francisco Lourenço & Daniel Wehner
|
||||
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
|
||||
# The above copyright notice and this permission notice shall be included in all
|
||||
# copies or substantial portions of the Software.
|
||||
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
if not status is-interactive
|
||||
exit
|
||||
end
|
||||
|
||||
set -g __done_version 1.19.1
|
||||
|
||||
function __done_run_powershell_script
|
||||
set -l powershell_exe (command --search "powershell.exe")
|
||||
|
||||
if test $status -ne 0
|
||||
and command --search wslvar
|
||||
|
||||
set -l powershell_exe (wslpath (wslvar windir)/System32/WindowsPowerShell/v1.0/powershell.exe)
|
||||
end
|
||||
|
||||
if string length --quiet "$powershell_exe"
|
||||
and test -x "$powershell_exe"
|
||||
|
||||
set cmd (string escape $argv)
|
||||
|
||||
eval "$powershell_exe -Command $cmd"
|
||||
end
|
||||
end
|
||||
|
||||
function __done_windows_notification -a title -a message
|
||||
if test "$__done_notify_sound" -eq 1
|
||||
set soundopt "<audio silent=\"false\" src=\"ms-winsoundevent:Notification.Default\" />"
|
||||
else
|
||||
set soundopt "<audio silent=\"true\" />"
|
||||
end
|
||||
|
||||
__done_run_powershell_script "
|
||||
[Windows.Data.Xml.Dom.XmlDocument, Windows.Data.Xml.Dom.XmlDocument, ContentType = WindowsRuntime] | Out-Null
|
||||
[Windows.UI.Notifications.ToastNotification, Windows.UI.Notifications, ContentType = WindowsRuntime] | Out-Null
|
||||
|
||||
\$toast_xml_source = @\"
|
||||
<toast>
|
||||
$soundopt
|
||||
<visual>
|
||||
<binding template=\"ToastText02\">
|
||||
<text id=\"1\">$title</text>
|
||||
<text id=\"2\">$message</text>
|
||||
</binding>
|
||||
</visual>
|
||||
</toast>
|
||||
\"@
|
||||
|
||||
\$toast_xml = New-Object Windows.Data.Xml.Dom.XmlDocument
|
||||
\$toast_xml.loadXml(\$toast_xml_source)
|
||||
|
||||
\$toast = New-Object Windows.UI.Notifications.ToastNotification \$toast_xml
|
||||
|
||||
[Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier(\"fish\").Show(\$toast)
|
||||
"
|
||||
end
|
||||
|
||||
function __done_get_focused_window_id
|
||||
if type -q lsappinfo
|
||||
lsappinfo info -only bundleID (lsappinfo front | string replace 'ASN:0x0-' '0x') | cut -d '"' -f4
|
||||
else if test -n "$SWAYSOCK"
|
||||
and type -q jq
|
||||
swaymsg --type get_tree | jq '.. | objects | select(.focused == true) | .id'
|
||||
else if test -n "$HYPRLAND_INSTANCE_SIGNATURE"
|
||||
hyprctl activewindow | awk '/^\tpid: / {print $2}'
|
||||
else if begin
|
||||
test "$XDG_SESSION_DESKTOP" = gnome; and type -q gdbus
|
||||
end
|
||||
gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval 'global.display.focus_window.get_id()'
|
||||
else if type -q xprop
|
||||
and test -n "$DISPLAY"
|
||||
# Test that the X server at $DISPLAY is running
|
||||
and xprop -grammar >/dev/null 2>&1
|
||||
xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2
|
||||
else if uname -a | string match --quiet --ignore-case --regex microsoft
|
||||
__done_run_powershell_script '
|
||||
Add-Type @"
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
public class WindowsCompat {
|
||||
[DllImport("user32.dll")]
|
||||
public static extern IntPtr GetForegroundWindow();
|
||||
}
|
||||
"@
|
||||
[WindowsCompat]::GetForegroundWindow()
|
||||
'
|
||||
else if set -q __done_allow_nongraphical
|
||||
echo 12345 # dummy value
|
||||
end
|
||||
end
|
||||
|
||||
function __done_is_tmux_window_active
|
||||
set -q fish_pid; or set -l fish_pid %self
|
||||
|
||||
# find the outermost process within tmux
|
||||
# ppid != "tmux" -> pid = ppid
|
||||
# ppid == "tmux" -> break
|
||||
set tmux_fish_pid $fish_pid
|
||||
while set tmux_fish_ppid (ps -o ppid= -p $tmux_fish_pid | string trim)
|
||||
# remove leading hyphen so that basename does not treat it as an argument (e.g. -fish), and return only
|
||||
# the actual command and not its arguments so that basename finds the correct command name.
|
||||
# (e.g. '/usr/bin/tmux' from command '/usr/bin/tmux new-session -c /some/start/dir')
|
||||
and ! string match -q "tmux*" (basename (ps -o command= -p $tmux_fish_ppid | string replace -r '^-' '' | string split ' ')[1])
|
||||
set tmux_fish_pid $tmux_fish_ppid
|
||||
end
|
||||
|
||||
# tmux session attached and window is active -> no notification
|
||||
# all other combinations -> send notification
|
||||
tmux list-panes -a -F "#{session_attached} #{window_active} #{pane_pid}" | string match -q "1 1 $tmux_fish_pid"
|
||||
end
|
||||
|
||||
function __done_is_screen_window_active
|
||||
string match --quiet --regex "$STY\s+\(Attached" (screen -ls)
|
||||
end
|
||||
|
||||
function __done_is_process_window_focused
|
||||
# Return false if the window is not focused
|
||||
|
||||
if set -q __done_allow_nongraphical
|
||||
return 1
|
||||
end
|
||||
|
||||
if set -q __done_kitty_remote_control
|
||||
kitty @ --password="$__done_kitty_remote_control_password" ls | jq -e ".[].tabs[] | select(any(.windows[]; .is_self)) | .is_focused" >/dev/null
|
||||
return $status
|
||||
end
|
||||
|
||||
set __done_focused_window_id (__done_get_focused_window_id)
|
||||
if test "$__done_sway_ignore_visible" -eq 1
|
||||
and test -n "$SWAYSOCK"
|
||||
string match --quiet --regex "^true" (swaymsg -t get_tree | jq ".. | objects | select(.id == "$__done_initial_window_id") | .visible")
|
||||
return $status
|
||||
else if test -n "$HYPRLAND_INSTANCE_SIGNATURE"
|
||||
set window_pid (hyprctl activewindow | awk '/^\tpid: / {print $2}')
|
||||
if test -n "$window_pid"
|
||||
and test $__done_initial_window_id -eq $window_pid
|
||||
return $status
|
||||
else
|
||||
return 1
|
||||
end
|
||||
else if test "$__done_initial_window_id" != "$__done_focused_window_id"
|
||||
return 1
|
||||
end
|
||||
# If inside a tmux session, check if the tmux window is focused
|
||||
if type -q tmux
|
||||
and test -n "$TMUX"
|
||||
__done_is_tmux_window_active
|
||||
return $status
|
||||
end
|
||||
|
||||
# If inside a screen session, check if the screen window is focused
|
||||
if type -q screen
|
||||
and test -n "$STY"
|
||||
__done_is_screen_window_active
|
||||
return $status
|
||||
end
|
||||
|
||||
return 0
|
||||
end
|
||||
|
||||
function __done_humanize_duration -a milliseconds
|
||||
set -l seconds (math --scale=0 "$milliseconds/1000" % 60)
|
||||
set -l minutes (math --scale=0 "$milliseconds/60000" % 60)
|
||||
set -l hours (math --scale=0 "$milliseconds/3600000")
|
||||
|
||||
if test $hours -gt 0
|
||||
printf '%s' $hours'h '
|
||||
end
|
||||
if test $minutes -gt 0
|
||||
printf '%s' $minutes'm '
|
||||
end
|
||||
if test $seconds -gt 0
|
||||
printf '%s' $seconds's'
|
||||
end
|
||||
end
|
||||
|
||||
# verify that the system has graphical capabilities before initializing
|
||||
if test -z "$SSH_CLIENT" # not over ssh
|
||||
and count (__done_get_focused_window_id) >/dev/null # is able to get window id
|
||||
set __done_enabled
|
||||
end
|
||||
|
||||
if set -q __done_allow_nongraphical
|
||||
and set -q __done_notification_command
|
||||
set __done_enabled
|
||||
end
|
||||
|
||||
if set -q __done_enabled
|
||||
set -g __done_initial_window_id ''
|
||||
set -q __done_min_cmd_duration; or set -g __done_min_cmd_duration 5000
|
||||
set -q __done_exclude; or set -g __done_exclude '^git (?!push|pull|fetch)'
|
||||
set -q __done_notify_sound; or set -g __done_notify_sound 0
|
||||
set -q __done_sway_ignore_visible; or set -g __done_sway_ignore_visible 0
|
||||
set -q __done_tmux_pane_format; or set -g __done_tmux_pane_format '[#{window_index}]'
|
||||
set -q __done_notification_duration; or set -g __done_notification_duration 3000
|
||||
|
||||
function __done_started --on-event fish_preexec
|
||||
set __done_initial_window_id (__done_get_focused_window_id)
|
||||
end
|
||||
|
||||
function __done_ended --on-event fish_postexec
|
||||
set -l exit_status $status
|
||||
|
||||
# backwards compatibility for fish < v3.0
|
||||
set -q cmd_duration; or set -l cmd_duration $CMD_DURATION
|
||||
|
||||
if test $cmd_duration
|
||||
and test $cmd_duration -gt $__done_min_cmd_duration # longer than notify_duration
|
||||
and not __done_is_process_window_focused # process pane or window not focused
|
||||
|
||||
# don't notify if command matches exclude list
|
||||
for pattern in $__done_exclude
|
||||
if string match -qr $pattern $argv[1]
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
# Store duration of last command
|
||||
set -l humanized_duration (__done_humanize_duration "$cmd_duration")
|
||||
|
||||
set -l title "Done in $humanized_duration"
|
||||
set -l wd (string replace --regex "^$HOME" "~" (pwd))
|
||||
set -l message "$wd/ $argv[1]"
|
||||
set -l sender $__done_initial_window_id
|
||||
|
||||
if test $exit_status -ne 0
|
||||
set title "Failed ($exit_status) after $humanized_duration"
|
||||
end
|
||||
|
||||
if test -n "$TMUX_PANE"
|
||||
set message (tmux lsw -F"$__done_tmux_pane_format" -f '#{==:#{pane_id},'$TMUX_PANE'}')" $message"
|
||||
end
|
||||
|
||||
if set -q __done_notification_command
|
||||
eval $__done_notification_command
|
||||
if test "$__done_notify_sound" -eq 1
|
||||
echo -e "\a" # bell sound
|
||||
end
|
||||
else if set -q KITTY_WINDOW_ID
|
||||
printf "\x1b]99;i=done:d=0;$title\x1b\\"
|
||||
printf "\x1b]99;i=done:d=1:p=body;$message\x1b\\"
|
||||
else if type -q terminal-notifier # https://github.com/julienXX/terminal-notifier
|
||||
if test "$__done_notify_sound" -eq 1
|
||||
# pipe message into terminal-notifier to avoid escaping issues (https://github.com/julienXX/terminal-notifier/issues/134). fixes #140
|
||||
echo "$message" | terminal-notifier -title "$title" -sender "$__done_initial_window_id" -sound default
|
||||
else
|
||||
echo "$message" | terminal-notifier -title "$title" -sender "$__done_initial_window_id"
|
||||
end
|
||||
|
||||
else if type -q osascript # AppleScript
|
||||
# escape double quotes that might exist in the message and break osascript. fixes #133
|
||||
set -l message (string replace --all '"' '\"' "$message")
|
||||
set -l title (string replace --all '"' '\"' "$title")
|
||||
|
||||
osascript -e "display notification \"$message\" with title \"$title\""
|
||||
if test "$__done_notify_sound" -eq 1
|
||||
osascript -e "display notification \"$message\" with title \"$title\" sound name \"Glass\""
|
||||
else
|
||||
osascript -e "display notification \"$message\" with title \"$title\""
|
||||
end
|
||||
|
||||
else if type -q notify-send # Linux notify-send
|
||||
# set urgency to normal
|
||||
set -l urgency normal
|
||||
|
||||
# use user-defined urgency if set
|
||||
if set -q __done_notification_urgency_level
|
||||
set urgency "$__done_notification_urgency_level"
|
||||
end
|
||||
# override user-defined urgency level if non-zero exitstatus
|
||||
if test $exit_status -ne 0
|
||||
set urgency critical
|
||||
if set -q __done_notification_urgency_level_failure
|
||||
set urgency "$__done_notification_urgency_level_failure"
|
||||
end
|
||||
end
|
||||
|
||||
notify-send --hint=int:transient:1 --urgency=$urgency --icon=utilities-terminal --app-name=fish --expire-time=$__done_notification_duration "$title" "$message"
|
||||
|
||||
if test "$__done_notify_sound" -eq 1
|
||||
echo -e "\a" # bell sound
|
||||
end
|
||||
|
||||
else if type -q notify-desktop # Linux notify-desktop
|
||||
set -l urgency
|
||||
if test $exit_status -ne 0
|
||||
set urgency "--urgency=critical"
|
||||
end
|
||||
notify-desktop $urgency --icon=utilities-terminal --app-name=fish "$title" "$message"
|
||||
if test "$__done_notify_sound" -eq 1
|
||||
echo -e "\a" # bell sound
|
||||
end
|
||||
|
||||
else if uname -a | string match --quiet --ignore-case --regex microsoft
|
||||
__done_windows_notification "$title" "$message"
|
||||
|
||||
else # anything else
|
||||
echo -e "\a" # bell sound
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function __done_uninstall -e done_uninstall
|
||||
# Erase all __done_* functions
|
||||
functions -e __done_ended
|
||||
functions -e __done_started
|
||||
functions -e __done_get_focused_window_id
|
||||
functions -e __done_is_tmux_window_active
|
||||
functions -e __done_is_screen_window_active
|
||||
functions -e __done_is_process_window_focused
|
||||
functions -e __done_windows_notification
|
||||
functions -e __done_run_powershell_script
|
||||
functions -e __done_humanize_duration
|
||||
|
||||
# Erase __done variables
|
||||
set -e __done_version
|
||||
end
|
128
fish/config.fish
Normal file
128
fish/config.fish
Normal file
@ -0,0 +1,128 @@
|
||||
## Source from conf.d before our fish config
|
||||
source ~/.config/fish/conf.d/done.fish
|
||||
atuin init fish | source
|
||||
## Set values
|
||||
## Run fastfetch as welcome message
|
||||
function fish_greeting
|
||||
fastfetch
|
||||
end
|
||||
|
||||
# Format man pages
|
||||
set -x MANROFFOPT -c
|
||||
set -x MANPAGER "sh -c 'col -bx | bat -l man -p'"
|
||||
|
||||
# Set settings for https://github.com/franciscolourenco/done
|
||||
set -U __done_min_cmd_duration 10000
|
||||
set -U __done_notification_urgency_level low
|
||||
|
||||
## Environment setup
|
||||
# Apply .profile: use this to put fish compatible .profile stuff in
|
||||
if test -f ~/.fish_profile
|
||||
source ~/.fish_profile
|
||||
end
|
||||
|
||||
# Add ~/.local/bin to PATH
|
||||
if test -d ~/.local/bin
|
||||
if not contains -- ~/.local/bin $PATH
|
||||
set -p PATH ~/.local/bin
|
||||
end
|
||||
end
|
||||
|
||||
# Add depot_tools to PATH
|
||||
if test -d ~/Applications/depot_tools
|
||||
if not contains -- ~/Applications/depot_tools $PATH
|
||||
set -p PATH ~/Applications/depot_tools
|
||||
end
|
||||
end
|
||||
|
||||
## Functions
|
||||
# Functions needed for !! and !$ https://github.com/oh-my-fish/plugin-bang-bang
|
||||
function __history_previous_command
|
||||
switch (commandline -t)
|
||||
case "!"
|
||||
commandline -t $history[1]
|
||||
commandline -f repaint
|
||||
case "*"
|
||||
commandline -i !
|
||||
end
|
||||
end
|
||||
|
||||
function __history_previous_command_arguments
|
||||
switch (commandline -t)
|
||||
case "!"
|
||||
commandline -t ""
|
||||
commandline -f history-token-search-backward
|
||||
case "*"
|
||||
commandline -i '$'
|
||||
end
|
||||
end
|
||||
|
||||
if [ "$fish_key_bindings" = fish_vi_key_bindings ]
|
||||
|
||||
bind -Minsert ! __history_previous_command
|
||||
bind -Minsert '$' __history_previous_command_arguments
|
||||
else
|
||||
bind ! __history_previous_command
|
||||
bind '$' __history_previous_command_arguments
|
||||
end
|
||||
|
||||
# Fish command history
|
||||
function history
|
||||
builtin history --show-time='%F %T '
|
||||
end
|
||||
|
||||
function backup --argument filename
|
||||
cp $filename $filename.bak
|
||||
end
|
||||
|
||||
# Copy DIR1 DIR2
|
||||
function copy
|
||||
set count (count $argv | tr -d \n)
|
||||
if test "$count" = 2; and test -d "$argv[1]"
|
||||
set from (echo $argv[1] | trim-right /)
|
||||
set to (echo $argv[2])
|
||||
command cp -r $from $to
|
||||
else
|
||||
command cp $argv
|
||||
end
|
||||
end
|
||||
|
||||
## Useful aliases
|
||||
# Replace ls with eza
|
||||
alias ls='eza -al --color=always --group-directories-first --icons' # preferred listing
|
||||
alias la='eza -a --color=always --group-directories-first --icons' # all files and dirs
|
||||
alias ll='eza -l --color=always --group-directories-first --icons' # long format
|
||||
alias lt='eza -aT --color=always --group-directories-first --icons' # tree listing
|
||||
alias l.="eza -a | grep -e '^\.'" # show only dotfiles
|
||||
|
||||
# Common use
|
||||
alias grubup="sudo grub-mkconfig -o /boot/grub/grub.cfg"
|
||||
alias tarnow='tar -acf '
|
||||
alias untar='tar -zxvf '
|
||||
alias wget='wget -c '
|
||||
alias psmem='ps auxf | sort -nr -k 4'
|
||||
alias psmem10='ps auxf | sort -nr -k 4 | head -10'
|
||||
alias ..='cd ..'
|
||||
alias ...='cd ../..'
|
||||
alias ....='cd ../../..'
|
||||
alias .....='cd ../../../..'
|
||||
alias ......='cd ../../../../..'
|
||||
alias dir='dir --color=auto'
|
||||
alias vdir='vdir --color=auto'
|
||||
alias grep='grep --color=auto'
|
||||
alias fgrep='fgrep --color=auto'
|
||||
alias egrep='egrep --color=auto'
|
||||
alias hw='hwinfo --short' # Hardware Info
|
||||
alias big="expac -H M '%m\t%n' | sort -h | nl" # Sort installed packages according to size in MB
|
||||
|
||||
# Get fastest mirrors
|
||||
alias mirror="sudo cachyos-rate-mirrors"
|
||||
|
||||
# Cleanup orphaned packages
|
||||
alias cleanup='sudo pacman -Rns (pacman -Qtdq)'
|
||||
|
||||
# Get the error messages from journalctl
|
||||
alias jctl="journalctl -p 3 -xb"
|
||||
|
||||
# Recent installed packages
|
||||
alias rip="expac --timefmt='%Y-%m-%d %T' '%l\t%n %v' | sort | tail -200 | nl"
|
21
fuzzel/fuzzel.ini
Normal file
21
fuzzel/fuzzel.ini
Normal file
@ -0,0 +1,21 @@
|
||||
[colors]
|
||||
background=1e1e2edd
|
||||
text=cdd6f4ff
|
||||
prompt=bac2deff
|
||||
placeholder=7f849cff
|
||||
input=cdd6f4ff
|
||||
match=b4befeff
|
||||
selection=585b70ff
|
||||
selection-text=cdd6f4ff
|
||||
selection-match=b4befeff
|
||||
counter=7f849cff
|
||||
border=b4befeff
|
||||
|
||||
[main]
|
||||
font=Sarasa Gothic SC:size=18
|
||||
icon-theme=Papirus-Dark
|
||||
icons-enabled=no
|
||||
delayed-filter-ms=0
|
||||
delayed-filter-limit=0
|
||||
lines=10
|
||||
sort-result=yes
|
15
hypr/config/animations.conf
Normal file
15
hypr/config/animations.conf
Normal file
@ -0,0 +1,15 @@
|
||||
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
# ┃ Animations Configuration ┃
|
||||
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
|
||||
# https://wiki.hyprland.org/0.45.0/Configuring/Animations/
|
||||
|
||||
animations {
|
||||
enabled = yes
|
||||
bezier = overshot, 0.13, 0.99, 0.29, 1.1
|
||||
animation = windowsIn, 1, 4, overshot, slide
|
||||
animation = windowsOut, 1, 5, default, popin 80%
|
||||
animation = border, 1, 5, default
|
||||
animation = workspacesIn, 1, 6, overshot, slide
|
||||
animation = workspacesOut, 1, 6, overshot, slidefade 80%
|
||||
}
|
25
hypr/config/autostart.conf
Normal file
25
hypr/config/autostart.conf
Normal file
@ -0,0 +1,25 @@
|
||||
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
# ┃ Autostart Configuration ┃
|
||||
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
|
||||
source = ~/.config/hypr/config/defaults.conf
|
||||
|
||||
# Autostart wiki https://wiki.hyprland.org/0.45.0/Configuring/Keywords/#executing #
|
||||
exec-once = swww-daemon
|
||||
exec-once = waybar &
|
||||
exec-once = fcitx5 -d &
|
||||
exec-once = swayosd-server
|
||||
exec-once = wl-clip-persist --clipboard regular
|
||||
# exec-once = mako &
|
||||
exec-once = nm-applet --indicator &
|
||||
exec-once = bash -c "mkfifo /tmp/$HYPRLAND_INSTANCE_SIGNATURE.wob && tail -f /tmp/$HYPRLAND_INSTANCE_SIGNATURE.wob | wob & disown" &
|
||||
# exec-once = /usr/lib/polkit-kde-authentication-agent-1 &
|
||||
|
||||
# ## Slow app launch fix
|
||||
exec-once = systemctl --user import-environment &
|
||||
exec-once = hash dbus-update-activation-environment 2>/dev/null &
|
||||
exec-once = dbus-update-activation-environment --systemd &
|
||||
|
||||
# ## Idle configuration
|
||||
# exec-once = $idlehandler
|
||||
|
94
hypr/config/colors.conf
Normal file
94
hypr/config/colors.conf
Normal file
@ -0,0 +1,94 @@
|
||||
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
# ┃ Colors Configuration ┃
|
||||
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
|
||||
$cachylgreen = rgba(82dcccff)
|
||||
$cachymgreen = rgba(00aa84ff)
|
||||
$cachydgreen = rgba(007d6fff)
|
||||
$cachylblue = rgba(01ccffff)
|
||||
$cachymblue = rgba(182545ff)
|
||||
$cachydblue = rgba(111826ff)
|
||||
$cachywhite = rgba(ffffffff)
|
||||
$cachygrey = rgba(ddddddff)
|
||||
$cachygray = rgba(798bb2ff)
|
||||
|
||||
# Catpucchin Mocha
|
||||
|
||||
$rosewater = rgb(f5e0dc)
|
||||
$rosewaterAlpha = f5e0dc
|
||||
|
||||
$flamingo = rgb(f2cdcd)
|
||||
$flamingoAlpha = f2cdcd
|
||||
|
||||
$pink = rgb(f5c2e7)
|
||||
$pinkAlpha = f5c2e7
|
||||
|
||||
$mauve = rgb(cba6f7)
|
||||
$mauveAlpha = cba6f7
|
||||
|
||||
$red = rgb(f38ba8)
|
||||
$redAlpha = f38ba8
|
||||
|
||||
$maroon = rgb(eba0ac)
|
||||
$maroonAlpha = eba0ac
|
||||
|
||||
$peach = rgb(fab387)
|
||||
$peachAlpha = fab387
|
||||
|
||||
$yellow = rgb(f9e2af)
|
||||
$yellowAlpha = f9e2af
|
||||
|
||||
$green = rgb(a6e3a1)
|
||||
$greenAlpha = a6e3a1
|
||||
|
||||
$teal = rgb(94e2d5)
|
||||
$tealAlpha = 94e2d5
|
||||
|
||||
$sky = rgb(89dceb)
|
||||
$skyAlpha = 89dceb
|
||||
|
||||
$sapphire = rgb(74c7ec)
|
||||
$sapphireAlpha = 74c7ec
|
||||
|
||||
$blue = rgb(89b4fa)
|
||||
$blueAlpha = 89b4fa
|
||||
|
||||
$lavender = rgb(b4befe)
|
||||
$lavenderAlpha = b4befe
|
||||
|
||||
$text = rgb(cdd6f4)
|
||||
$textAlpha = cdd6f4
|
||||
|
||||
$subtext1 = rgb(bac2de)
|
||||
$subtext1Alpha = bac2de
|
||||
|
||||
$subtext0 = rgb(a6adc8)
|
||||
$subtext0Alpha = a6adc8
|
||||
|
||||
$overlay2 = rgb(9399b2)
|
||||
$overlay2Alpha = 9399b2
|
||||
|
||||
$overlay1 = rgb(7f849c)
|
||||
$overlay1Alpha = 7f849c
|
||||
|
||||
$overlay0 = rgb(6c7086)
|
||||
$overlay0Alpha = 6c7086
|
||||
|
||||
$surface2 = rgb(585b70)
|
||||
$surface2Alpha = 585b70
|
||||
|
||||
$surface1 = rgb(45475a)
|
||||
$surface1Alpha = 45475a
|
||||
|
||||
$surface0 = rgb(313244)
|
||||
$surface0Alpha = 313244
|
||||
|
||||
$base = rgb(1e1e2e)
|
||||
$baseAlpha = 1e1e2e
|
||||
|
||||
$mantle = rgb(181825)
|
||||
$mantleAlpha = 181825
|
||||
|
||||
$crust = rgb(11111b)
|
||||
$crustAlpha = 11111b
|
||||
|
25
hypr/config/decorations.conf
Normal file
25
hypr/config/decorations.conf
Normal file
@ -0,0 +1,25 @@
|
||||
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
# ┃ Decorations Configuration ┃
|
||||
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
|
||||
source = ~/.config/hypr/config/colors.conf
|
||||
|
||||
# https://wiki.hyprland.org/0.45.0/Configuring/Variables/#decoration
|
||||
|
||||
decoration {
|
||||
active_opacity = 1
|
||||
rounding = 4
|
||||
|
||||
# https://wiki.hyprland.org/0.45.0/Configuring/Variables/#blur
|
||||
blur {
|
||||
size = 15
|
||||
passes = 2 # more passes = more resource intensive.
|
||||
xray = true
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/0.45.0/Configuring/Variables/#shadow
|
||||
shadow {
|
||||
enabled = false
|
||||
}
|
||||
|
||||
}
|
10
hypr/config/defaults.conf
Normal file
10
hypr/config/defaults.conf
Normal file
@ -0,0 +1,10 @@
|
||||
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
# ┃ Defaults Configuration ┃
|
||||
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
$browser = floorp
|
||||
$filemanager = nemo
|
||||
#$applauncher = rofi -show combi -modi window,run,combi -combi-modi window,run
|
||||
$applauncher = fuzzel
|
||||
$terminal = alacritty
|
||||
#$idlehandler = swayidle -w timeout 300 'swaylock -f -c 000000' before-sleep 'swaylock -f -c 000000'
|
||||
$capturing = grim -g "$(slurp)" - | swappy -f -
|
7
hypr/config/environment.conf
Normal file
7
hypr/config/environment.conf
Normal file
@ -0,0 +1,7 @@
|
||||
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
# ┃ Enviroment Configuration ┃
|
||||
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
|
||||
envd = HYPRCURSOR_SIZE,24
|
||||
envd = XCURSOR_SIZE,24
|
||||
envd = QT_CURSOR_SIZE,24
|
10
hypr/config/input.conf
Normal file
10
hypr/config/input.conf
Normal file
@ -0,0 +1,10 @@
|
||||
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
# ┃ Input Configuration ┃
|
||||
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
|
||||
# Input wiki https://wiki.hyprland.org/0.45.0/Configuring/Variables/#input
|
||||
|
||||
input {
|
||||
follow_mouse = 2 # 0|1|2|3
|
||||
float_switch_override_focus = 2
|
||||
}
|
159
hypr/config/keybinds.conf
Normal file
159
hypr/config/keybinds.conf
Normal file
@ -0,0 +1,159 @@
|
||||
|
||||
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
# ┃ Keybinds ┃
|
||||
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
|
||||
source = ~/.config/hypr/config/defaults.conf
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Binds/
|
||||
bindd = $mainMod, B, Opens browser ($browser), exec, $browser
|
||||
bindd = $mainMod, RETURN, Opens your preferred terminal emulator ($terminal), exec, $terminal
|
||||
bindd = $mainMod, E, Opens your preferred filemanager ($filemanager), exec, $filemanager
|
||||
bindd = $mainMod, A, Screen capture selection, exec, $capturing
|
||||
bindd = $mainMod, Q, Closes (not kill) current window, killactive,
|
||||
bindd = $mainMod SHIFT, M, Exits Hyprland by terminating the user sessions, exec, loginctl terminate-user ""
|
||||
bindd = $mainMod, V, Switches current window between floating and tiling mode, togglefloating,
|
||||
bindd = $mainMod, SPACE, Runs your application launcher, exec, $applauncher
|
||||
bindd = $mainMod, F, Toggles current window fullscreen mode, fullscreen
|
||||
bindd = $mainMod, Y, Pin current window (shows on all workspaces),pin
|
||||
bindd = $mainMod, J, Toggles curren window split mode, togglesplit, # dwindle
|
||||
|
||||
# ======= Grouping Windows =======
|
||||
bindd = $mainMod, K, Toggles current window group mode (ungroup all related), togglegroup,
|
||||
bindd = $mainMod, Tab, Switches to the next window in the group, changegroupactive, f
|
||||
|
||||
# ======= Toggle Gaps =======
|
||||
|
||||
bindd = $mainMod SHIFT, G, Set CachyOS default gaps, exec, hyprctl --batch "keyword general:gaps_out 5;keyword general:gaps_in 3"
|
||||
bindd = $mainMod, G, Remove gaps between window, exec, hyprctl --batch "keyword general:gaps_out 0;keyword general:gaps_in 0"
|
||||
|
||||
# ======= Volume Control =======
|
||||
|
||||
# bindel = , XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5% && pactl get-sink-volume @DEFAULT_SINK@ | grep -oP '\d+(?=%)' | awk '{if($1>100) system("pactl set-sink-volume @DEFAULT_SINK@ 100%")}' && pactl get-sink-volume @DEFAULT_SINK@ | grep -oP '\d+(?=%)' | awk '{print $1}' | head -1 > /tmp/$HYPRLAND_INSTANCE_SIGNATURE.wob # Raise Volume
|
||||
# bindel = , XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5% && pactl get-sink-volume @DEFAULT_SINK@ | grep -oP '\d+(?=%)' | awk '{print $1}' | head -1 > /tmp/$HYPRLAND_INSTANCE_SIGNATURE.wob # Lower Volume
|
||||
# bindel = , XF86AudioMute, exec, amixer sset Master toggle | sed -En '/\[on\]/ s/.*\[([0-9]+)%\].*/\1/ p; /\[off\]/ s/.*/0/p' | head -1 > /tmp/$HYPRLAND_INSTANCE_SIGNATURE.wob #Mutes player audio
|
||||
|
||||
bindel = , XF86AudioRaiseVolume, exec, pamixer -i 5 && swayosd-client --output-volume +5
|
||||
bindel = , XF86AudioLowerVolume, exec, pamixer -d 5 && swayosd-client --output-volume -5
|
||||
bindel = , XF86AudioMute, exec, pamixer -t && swayosd-client --output-volume mute-toggle
|
||||
|
||||
# ======= Playback Control =======
|
||||
|
||||
bindd = , XF86AudioPlay, Toggles play/pause, exec, playerctl play-pause
|
||||
bindd = , XF86AudioNext, Next track, exec, playerctl next
|
||||
bindd = , XF86AudioPrev, Previous track, exec, playerctl previous
|
||||
|
||||
# ======= Screen Brightness =======
|
||||
|
||||
bindel = , XF86MonBrightnessUp, exec, brightnessctl s +5% #Increases brightness 5%
|
||||
bindel = , XF86MonBrightnessDown, exec, brightnessctl s 5%- #Decreases brightness 5%
|
||||
bindd = $mainMod SHIFT, P, Runs the calculator application, exec, gnome-calculator
|
||||
#bindd = $mainMod, L, Lock the screen, exec, swaylock-fancy -e -K -p 10 -f Hack-Regular
|
||||
bindd = $mainMod, L, Lock the screen, exec, hyprlock
|
||||
bindd = $mainMod, O, Reload/restarts Waybar, exec, killall -SIGUSR2 waybar
|
||||
|
||||
# ======= Window Actions =======
|
||||
|
||||
## Move window with mainMod + LMB/RMB and dragging
|
||||
bindd = $mainMod, mouse:272, Move the window towards a direction, movewindow
|
||||
## Move window towards a direction
|
||||
bindd = $mainMod SHIFT, left, Move active window to the left, movewindow, l
|
||||
bindd = $mainMod SHIFT, right, Move active window to the right, movewindow, r
|
||||
bindd = $mainMod SHIFT, up, Move active window upwards, movewindow, u
|
||||
bindd = $mainMod SHIFT, down, Move active window downwards, movewindow, d
|
||||
## Move focus with mainMod + arrow keys
|
||||
bindd = $mainMod, left, Move focus to the left, movefocus, l
|
||||
bindd = $mainMod, right, Move focus to the right, movefocus, r
|
||||
bindd = $mainMod, up, Move focus upwards, movefocus, u
|
||||
bindd = $mainMod, down, Move focus downwards, movefocus, d
|
||||
## Resizing windows
|
||||
# Activate keyboard window resize mode
|
||||
# https://wiki.hyprland.org/Configuring/Binds/#submaps
|
||||
bindd = $mainMod, R, Activates window resizing mode, submap, resize
|
||||
submap = resize
|
||||
bindd = , right, Resize to the right (resizing mode), resizeactive, 15 0
|
||||
bindd = , left, Resize to the left (resizing mode), resizeactive, -15 0
|
||||
bindd = , up, Resize upwards (resizing mode), resizeactive, 0 -15
|
||||
bindd = , down, Resize downwards (resizing mode), resizeactive, 0 15
|
||||
bindd = , l, Resize to the right (resizing mode), resizeactive, 15 0
|
||||
bindd = , h, Resize to the left (resizing mode), resizeactive, -15 0
|
||||
bindd = , k, Resize upwards (resizing mode), resizeactive, 0 -15
|
||||
bindd = , j, Resize downwards (resizing mode), resizeactive, 0 15
|
||||
bindd = , escape, Ends window resizing mode, submap, reset
|
||||
submap = reset
|
||||
# Quick resize window with keyboard
|
||||
# !!! added $mainMod here because CTRL + SHIFT is used for word selection in various text editors
|
||||
bindd = $mainMod CTRL SHIFT, right, Resize to the right, resizeactive, 15 0
|
||||
bindd = $mainMod CTRL SHIFT, left, Resize to the left, resizeactive, -15 0
|
||||
bindd = $mainMod CTRL SHIFT, up, Resize upwards, resizeactive, 0 -15
|
||||
bindd = $mainMod CTRL SHIFT, down, Resize downwards, resizeactive, 0 15
|
||||
bindd = $mainMod CTRL SHIFT, l, Resize to the right, resizeactive, 15 0
|
||||
bindd = $mainMod CTRL SHIFT, h, Resize to the left, resizeactive, -15 0
|
||||
bindd = $mainMod CTRL SHIFT, k, Resize upwards, resizeactive, 0 -15
|
||||
bindd = $mainMod CTRL SHIFT, j, Resize downwards, resizeactive, 0 15
|
||||
# Resize window with mainMod + LMB/RMB and dragging
|
||||
bindm = $mainMod, mouse:273, resizewindow #Resize the window towards a direction
|
||||
bindm = $mainMod, mouse:272, movewindow #Drag window
|
||||
## Resizing Windows End #
|
||||
## Move active window to a workspace with $mainMod + CTRL + [0-9]
|
||||
bindd = $mainMod CTRL, 1, Move window and switch to workspace 1, movetoworkspace, 1
|
||||
bindd = $mainMod CTRL, 2, Move window and switch to workspace 2, movetoworkspace, 2
|
||||
bindd = $mainMod CTRL, 3, Move window and switch to workspace 3, movetoworkspace, 3
|
||||
bindd = $mainMod CTRL, 4, Move window and switch to workspace 4, movetoworkspace, 4
|
||||
bindd = $mainMod CTRL, 5, Move window and switch to workspace 5, movetoworkspace, 5
|
||||
bindd = $mainMod CTRL, 6, Move window and switch to workspace 6, movetoworkspace, 6
|
||||
bindd = $mainMod CTRL, 7, Move window and switch to workspace 7, movetoworkspace, 7
|
||||
bindd = $mainMod CTRL, 8, Move window and switch to workspace 8, movetoworkspace, 8
|
||||
bindd = $mainMod CTRL, 9, Move window and switch to workspace 9, movetoworkspace, 9
|
||||
bindd = $mainMod CTRL, 0, Move window and switch to workspace 10, movetoworkspace, 10
|
||||
bindd = $mainMod CTRL, left, Move window and switch to the next workspace, movetoworkspace, -1
|
||||
bindd = $mainMod CTRL, right, Move window and switch to the previous workspace, movetoworkspace, +1
|
||||
## Same as above, but doesn't switch to the workspace
|
||||
bindd = $mainMod SHIFT, 1, Move window silently to workspace 1, movetoworkspacesilent, 1
|
||||
bindd = $mainMod SHIFT, 2, Move window silently to workspace 2, movetoworkspacesilent, 2
|
||||
bindd = $mainMod SHIFT, 3, Move window silently to workspace 3, movetoworkspacesilent, 3
|
||||
bindd = $mainMod SHIFT, 4, Move window silently to workspace 4, movetoworkspacesilent, 4
|
||||
bindd = $mainMod SHIFT, 5, Move window silently to workspace 5, movetoworkspacesilent, 5
|
||||
bindd = $mainMod SHIFT, 6, Move window silently to workspace 6, movetoworkspacesilent, 6
|
||||
bindd = $mainMod SHIFT, 7, Move window silently to workspace 7, movetoworkspacesilent, 7
|
||||
bindd = $mainMod SHIFT, 8, Move window silently to workspace 8, movetoworkspacesilent, 8
|
||||
bindd = $mainMod SHIFT, 9, Move window silently to workspace 9, movetoworkspacesilent, 9
|
||||
bindd = $mainMod SHIFT, 0, Move window silently to workspace 10, movetoworkspacesilent, 10
|
||||
# Window actions End #
|
||||
|
||||
# ======= Workspace Actions =======
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
bindd = $mainMod, 1, Switch to workspace 1, workspace, 1
|
||||
bindd = $mainMod, 2, Switch to workspace 2, workspace, 2
|
||||
bindd = $mainMod, 3, Switch to workspace 3, workspace, 3
|
||||
bindd = $mainMod, 4, Switch to workspace 4, workspace, 4
|
||||
bindd = $mainMod, 5, Switch to workspace 5, workspace, 5
|
||||
bindd = $mainMod, 6, Switch to workspace 6, workspace, 6
|
||||
bindd = $mainMod, 7, Switch to workspace 7, workspace, 7
|
||||
bindd = $mainMod, 8, Switch to workspace 8, workspace, 8
|
||||
bindd = $mainMod, 9, Switch to workspace 9, workspace, 9
|
||||
bindd = $mainMod, 0, Switch to workspace 10, workspace, 10
|
||||
# Scroll through existing workspaces with mainMod + , or .
|
||||
bindd = $mainMod, PERIOD, Scroll through workspaces incrementally, workspace, e+1
|
||||
bindd = $mainMod, COMMA, Scroll through workspaces decrementally, workspace, e-1
|
||||
# With $mainMod + scroll
|
||||
bindd = $mainMod, mouse_down, Scroll through workspaces incrementally, workspace, e+1
|
||||
bindd = $mainMod, mouse_up, Scroll through workspaces decrementally, workspace, e-1
|
||||
bindd = $mainMod, slash, Switch to the previous workspace, workspace, previous
|
||||
# Special workspaces (scratchpads)
|
||||
bindd = $mainMod, minus, Move active window to Special workspace, movetoworkspace,special
|
||||
bindd = $mainMod, equal, Toggles the Special workspace, togglespecialworkspace, special
|
||||
bindd = $mainMod, F1, Call special workspace scratchpad, togglespecialworkspace, scratchpad
|
||||
bindd = $mainMod ALT SHIFT, F1, Move active window to special workspace scratchpad, movetoworkspacesilent, special:scratchpad
|
||||
|
||||
# ======= Additional Settings =======
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Binds
|
||||
binds {
|
||||
allow_workspace_cycles = 1
|
||||
workspace_back_and_forth = 1
|
||||
workspace_center_on = 1
|
||||
movefocus_cycles_fullscreen = true
|
||||
window_direction_monitor_fallback = true
|
||||
}
|
17
hypr/config/monitor.conf
Normal file
17
hypr/config/monitor.conf
Normal file
@ -0,0 +1,17 @@
|
||||
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
# ┃ Monitor Configuration ┃
|
||||
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
|
||||
# Monitor wiki https://wiki.hyprland.org/0.45.0/Configuring/Monitors/
|
||||
|
||||
#monitor = , preferred, auto, 1.25
|
||||
monitor = eDP-1, 2560x1600@165, auto, 1.25
|
||||
|
||||
|
||||
# If you need to scale things like steam etc, please uncomment these lines.
|
||||
# Adjust GDK_SCALE accordingly to your liking.
|
||||
xwayland {
|
||||
force_zero_scaling = true # Unscale XWayland
|
||||
}
|
||||
|
||||
env = GDK_SCALE, 1.25 # GDK Scaling Factor
|
80
hypr/config/variables.conf
Normal file
80
hypr/config/variables.conf
Normal file
@ -0,0 +1,80 @@
|
||||
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
# ┃ Variables Configuration ┃
|
||||
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
|
||||
source = ~/.config/hypr/config/colors.conf
|
||||
|
||||
# Variables wiki https://wiki.hyprland.org/0.45.0/Configuring/Variables/ #
|
||||
# https://wiki.hyprland.org/0.45.0/Configuring/Variables/#general
|
||||
general {
|
||||
|
||||
gaps_in = 3
|
||||
gaps_out = 5
|
||||
border_size = 3
|
||||
col.active_border = $cachylgreen
|
||||
col.inactive_border = $cachymblue
|
||||
layout = dwindle # master|dwindle
|
||||
|
||||
# https://wiki.hyprland.org/0.45.0/Configuring/Variables/#snap
|
||||
snap {
|
||||
enabled = true
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/0.45.0/Configuring/Variables/#gestures
|
||||
gestures {
|
||||
workspace_swipe = true
|
||||
workspace_swipe_fingers = 4
|
||||
workspace_swipe_distance = 250
|
||||
workspace_swipe_min_speed_to_force = 15
|
||||
workspace_swipe_create_new = false
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/0.45.0/Configuring/Variables/#group
|
||||
group {
|
||||
col.border_active = $cachydgreen
|
||||
col.border_inactive = $cachylgreen
|
||||
col.border_locked_active = $cachymgreen
|
||||
col.border_locked_inactive = $cachydblue
|
||||
|
||||
# https://wiki.hyprland.org/0.45.0/Configuring/Variables/#groupbar
|
||||
groupbar {
|
||||
font_family = "Fira Sans"
|
||||
text_color = $cachydblue
|
||||
col.active = $cachydgreen
|
||||
col.inactive = $cachylgreen
|
||||
col.locked_active = $cachymgreen
|
||||
col.locked_inactive = $cachydblue
|
||||
}
|
||||
}
|
||||
# https://wiki.hyprland.org/0.45.0/Configuring/Variables/#misc
|
||||
misc {
|
||||
font_family = "Fira Sans"
|
||||
splash_font_family = "Fira Sans"
|
||||
disable_hyprland_logo = true
|
||||
col.splash = $cachylgreen
|
||||
background_color = $cachydblue
|
||||
enable_swallow = true
|
||||
swallow_regex = ^(cachy-browser|firefox|nautilus|nemo|thunar|btrfs-assistant.)$
|
||||
focus_on_activate = true
|
||||
vrr = 2
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/0.45.0/Configuring/Variables/#render
|
||||
render {
|
||||
direct_scanout = true
|
||||
}
|
||||
|
||||
# See https://wiki.hyprland.org/0.45.0/Configuring/Dwindle-Layout/ for more
|
||||
dwindle {
|
||||
special_scale_factor = 0.8
|
||||
pseudotile = true # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
preserve_split = true
|
||||
}
|
||||
|
||||
# See https://wiki.hyprland.org/0.45.0/Configuring/Master-Layout/ for more
|
||||
master {
|
||||
new_status = master
|
||||
special_scale_factor = 0.8
|
||||
}
|
62
hypr/config/windowrules.conf
Normal file
62
hypr/config/windowrules.conf
Normal file
@ -0,0 +1,62 @@
|
||||
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
# ┃ Windowrules Configuration ┃
|
||||
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
|
||||
# Windows Rules https://wiki.hyprland.org/0.45.0/Configuring/Window-Rules/ #
|
||||
|
||||
# Float Necessary Windows
|
||||
windowrule = float, class:^(org.pulseaudio.pavucontrol)
|
||||
windowrule = float, class:^()$,title:^(Picture in picture)$
|
||||
windowrule = float, class:^()$,title:^(Save File)$
|
||||
windowrule = float, class:^()$,title:^(Open File)$
|
||||
windowrule = float, class:^(LibreWolf)$,title:^(Picture-in-Picture)$
|
||||
windowrule = float, class:^(blueman-manager)$
|
||||
windowrule = float, class:^(xdg-desktop-portal-gtk|xdg-desktop-portal-kde|xdg-desktop-portal-hyprland)(.*)$
|
||||
windowrule = float, class:^(polkit-gnome-authentication-agent-1|hyprpolkitagent|org.org.kde.polkit-kde-authentication-agent-1)(.*)$
|
||||
windowrule = float, class:^(CachyOSHello)$
|
||||
windowrule = float, class:^(zenity)$
|
||||
windowrule = float, class:^()$,title:^(Steam - Self Updater)$
|
||||
# Increase the opacity
|
||||
windowrule = opacity 0.92, class:^(thunar|nemo)$
|
||||
windowrule = opacity 0.96, class:^(discord|armcord|webcord)$
|
||||
windowrule = opacity 0.95, title:^(QQ|Telegram)$
|
||||
windowrule = opacity 0.95, title:^(NetEase Cloud Music Gtk4)$
|
||||
# General window rules
|
||||
windowrule = float, title:^(Picture-in-Picture)$
|
||||
windowrule = size 960 540, title:^(Picture-in-Picture)$
|
||||
windowrule = move 25%-, title:^(Picture-in-Picture)$
|
||||
windowrule = float, title:^(imv|mpv|danmufloat|termfloat|nemo|ncmpcpp)$
|
||||
windowrule = move 25%-, title:^(imv|mpv|danmufloat|termfloat|nemo|ncmpcpp)$
|
||||
windowrule = size 960 540, title:^(imv|mpv|danmufloat|termfloat|nemo|ncmpcpp)$
|
||||
windowrule = pin, title:^(danmufloat)$
|
||||
windowrule = rounding 5, title:^(danmufloat|termfloat)$
|
||||
windowrule = animation slide right, class:^(kitty|Alacritty)$
|
||||
windowrule = noblur, class:^(org.mozilla.firefox)$
|
||||
# Decorations related to floating windows on workspaces 1 to 10
|
||||
windowrule = bordersize 2, floating:1, onworkspace:w[fv1-10]
|
||||
windowrule = bordercolor $cachylblue, floating:1, onworkspace:w[fv1-10]
|
||||
windowrule = rounding 8, floating:1, onworkspace:w[fv1-10]
|
||||
# Decorations related to tiling windows on workspaces 1 to 10
|
||||
windowrule = bordersize 3, floating:0, onworkspace:f[1-10]
|
||||
windowrule = rounding 4, floating:0, onworkspace:f[1-10]
|
||||
# Windows Rules End #
|
||||
|
||||
# Workspaces Rules https://wiki.hyprland.org/0.45.0/Configuring/Workspace-Rules/ #
|
||||
# workspace = 1, default:true, monitor:$priMon
|
||||
# workspace = 6, default:true, monitor:$secMon
|
||||
# Workspace selectors https://wiki.hyprland.org/0.45.0/Configuring/Workspace-Rules/#workspace-selectors
|
||||
# workspace = r[1-5], monitor:$priMon
|
||||
# workspace = r[6-10], monitor:$secMon
|
||||
# workspace = special:scratchpad, on-created-empty:$applauncher
|
||||
# no_gaps_when_only deprecated instead workspaces rules with selectors can do the same
|
||||
# Smart gaps from 0.45.0 https://wiki.hyprland.org/0.45.0/Configuring/Workspace-Rules/#smart-gaps
|
||||
workspace = w[tv1-10], gapsout:5, gapsin:3
|
||||
workspace = f[1], gapsout:5, gapsin:3
|
||||
# Workspaces Rules End #
|
||||
|
||||
# Layers Rules #
|
||||
layerrule = animation slide top, logout_dialog
|
||||
# layerrule = animation popin 50%, waybar
|
||||
layerrule = animation slide down, waybar
|
||||
layerrule = animation fade 50%, wallpaper
|
||||
# Layers Rules End #
|
22
hypr/hyprland.conf
Normal file
22
hypr/hyprland.conf
Normal file
@ -0,0 +1,22 @@
|
||||
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
# ┃ CachyOS Hyprland Configuration ┃
|
||||
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
|
||||
$mainMod = SUPER
|
||||
|
||||
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
# ┃ Source Files ┃
|
||||
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
source = ~/.config/hypr/config/animations.conf
|
||||
source = ~/.config/hypr/config/autostart.conf
|
||||
source = ~/.config/hypr/config/decorations.conf
|
||||
source = ~/.config/hypr/config/environment.conf
|
||||
source = ~/.config/hypr/config/input.conf
|
||||
source = ~/.config/hypr/config/keybinds.conf
|
||||
source = ~/.config/hypr/config/monitor.conf
|
||||
source = ~/.config/hypr/config/variables.conf
|
||||
source = ~/.config/hypr/config/windowrules.conf
|
||||
|
||||
# Modifying these configs can be done by creating a user defined config in the home directory, e.g.
|
||||
## ~/.config/hypr/config/user-config.conf
|
||||
# source = ~/.config/hypr/config/user-config.conf
|
78
hypr/hyprlock.conf
Normal file
78
hypr/hyprlock.conf
Normal file
@ -0,0 +1,78 @@
|
||||
source = $HOME/.config/hypr/config/colors.conf
|
||||
|
||||
$accent = $mauve
|
||||
$accentAlpha = $mauveAlpha
|
||||
$font = JetBrainsMono Nerd Font
|
||||
|
||||
# GENERAL
|
||||
general {
|
||||
disable_loading_bar = true
|
||||
hide_cursor = true
|
||||
}
|
||||
|
||||
# BACKGROUND
|
||||
background {
|
||||
monitor =
|
||||
blur_passes = 0
|
||||
color = $base
|
||||
}
|
||||
|
||||
# LAYOUT
|
||||
label {
|
||||
monitor =
|
||||
text = Layout: $LAYOUT
|
||||
color = $text
|
||||
font_size = 25
|
||||
font_family = $font
|
||||
position = 30, -30
|
||||
halign = left
|
||||
valign = top
|
||||
}
|
||||
|
||||
# TIME
|
||||
label {
|
||||
monitor =
|
||||
text = $TIME
|
||||
color = $text
|
||||
font_size = 90
|
||||
font_family = $font
|
||||
position = -30, 0
|
||||
halign = right
|
||||
valign = top
|
||||
}
|
||||
|
||||
# DATE
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:43200000] date +"%A, %d %B %Y"
|
||||
color = $text
|
||||
font_size = 25
|
||||
font_family = $font
|
||||
position = -30, -150
|
||||
halign = right
|
||||
valign = top
|
||||
}
|
||||
|
||||
# INPUT FIELD
|
||||
input-field {
|
||||
monitor =
|
||||
size = 300, 60
|
||||
outline_thickness = 4
|
||||
dots_size = 0.2
|
||||
dots_spacing = 0.2
|
||||
dots_center = true
|
||||
outer_color = $accent
|
||||
inner_color = $surface0
|
||||
font_color = $text
|
||||
fade_on_empty = false
|
||||
placeholder_text = <span foreground="##$textAlpha"><i> Logged in as </i><span foreground="##$accentAlpha">$USER</span></span>
|
||||
hide_input = false
|
||||
check_color = $accent
|
||||
fail_color = $red
|
||||
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i>
|
||||
capslock_color = $yellow
|
||||
position = 0, -47
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
@ -1,23 +0,0 @@
|
||||
gui:
|
||||
authorColors:
|
||||
"*": "#b4befe"
|
||||
theme:
|
||||
activeBorderColor:
|
||||
- "#cba6f7"
|
||||
- bold
|
||||
inactiveBorderColor:
|
||||
- "#a6adc8"
|
||||
optionsTextColor:
|
||||
- "#89b4fa"
|
||||
selectedLineBgColor:
|
||||
- "#313244"
|
||||
cherryPickedCommitBgColor:
|
||||
- "#45475a"
|
||||
cherryPickedCommitFgColor:
|
||||
- "#cba6f7"
|
||||
unstagedChangesColor:
|
||||
- "#f38ba8"
|
||||
defaultFgColor:
|
||||
- "#cdd6f4"
|
||||
searchingActiveBorderColor:
|
||||
- "#f9e2af"
|
@ -1,24 +0,0 @@
|
||||
# config.nu
|
||||
#
|
||||
# Installed by:
|
||||
# version = "0.103.0"
|
||||
#
|
||||
# This file is used to override default Nushell settings, define
|
||||
# (or import) custom commands, or run any other startup tasks.
|
||||
# See https://www.nushell.sh/book/configuration.html
|
||||
#
|
||||
# This file is loaded after env.nu and before login.nu
|
||||
#
|
||||
# You can open this file in your default editor using:
|
||||
# config nu
|
||||
#
|
||||
# See `help config nu` for more options
|
||||
#
|
||||
# You can remove these comments if you want or leave
|
||||
# them for future reference.
|
||||
|
||||
mkdir ($nu.data-dir | path join "vendor/autoload")
|
||||
atuin init nu | save -f ($nu.data-dir | path join "vendor/autoload/atuin.nu")
|
||||
starship init nu | save -f ($nu.data-dir | path join "vendor/autoload/starship.nu")
|
||||
# 彻底关闭启动欢迎横幅
|
||||
$env.config.show_banner = false
|
@ -1,18 +0,0 @@
|
||||
# env.nu
|
||||
#
|
||||
# Installed by:
|
||||
# version = "0.103.0"
|
||||
#
|
||||
# Previously, environment variables were typically configured in `env.nu`.
|
||||
# In general, most configuration can and should be performed in `config.nu`
|
||||
# or one of the autoload directories.
|
||||
#
|
||||
# This file is generated for backwards compatibility for now.
|
||||
# It is loaded before config.nu and login.nu
|
||||
#
|
||||
# See https://www.nushell.sh/book/configuration.html
|
||||
#
|
||||
# Also see `help config env` for more options.
|
||||
#
|
||||
# You can remove these comments if you want or leave
|
||||
# them for future reference.
|
82
setup_ubuntu.sh
Normal file
82
setup_ubuntu.sh
Normal file
@ -0,0 +1,82 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_NAME=$(basename "$0")
|
||||
echo "\n=== Ubuntu Repos and Plugins Setup Script ===\n"
|
||||
|
||||
# Determine Ubuntu codename
|
||||
CODENAME=$(lsb_release -cs)
|
||||
echo "Detected Ubuntu codename: $CODENAME"
|
||||
|
||||
# Function to add PPA if not present
|
||||
add_ppa() {
|
||||
local PPA="$1"
|
||||
if ! grep -Rq "${PPA#*:}" /etc/apt/sources.list.d; then
|
||||
echo "Adding PPA: $PPA"
|
||||
sudo add-apt-repository -y "$PPA"
|
||||
else
|
||||
echo "PPA already exists: $PPA"
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to add Docker repo
|
||||
add_docker_repo() {
|
||||
local KEYRING="/usr/share/keyrings/docker-archive-keyring.gpg"
|
||||
if [ ! -f "$KEYRING" ]; then
|
||||
echo "Adding Docker GPG key and repository"
|
||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg |
|
||||
sudo gpg --dearmor -o "$KEYRING"
|
||||
echo "deb [arch=amd64 signed-by=$KEYRING] https://download.docker.com/linux/ubuntu $CODENAME stable" |
|
||||
sudo tee /etc/apt/sources.list.d/docker.list >/dev/null
|
||||
else
|
||||
echo "Docker repository already configured"
|
||||
fi
|
||||
}
|
||||
|
||||
# Add PPAs
|
||||
add_ppa ppa:fish-shell/release-3
|
||||
add_ppa ppa:neovim-ppa/unstable
|
||||
add_ppa ppa:zhangsongcui3371/fastfetch
|
||||
|
||||
# Add Docker repo
|
||||
add_docker_repo
|
||||
|
||||
# Update package list
|
||||
echo "\nUpdating package lists..."
|
||||
sudo apt update
|
||||
|
||||
# Core packages to install
|
||||
CORE_PKGS=(docker-ce docker-ce-cli containerd.io fastfetch neovim fish tealdeer)
|
||||
|
||||
# Install each package, skip if not found
|
||||
for pkg in "${CORE_PKGS[@]}"; do
|
||||
if apt-cache show "$pkg" >/dev/null 2>&1; then
|
||||
echo "Installing $pkg..."
|
||||
sudo apt install -y "$pkg"
|
||||
else
|
||||
echo "Package not found in repos, skipping: $pkg"
|
||||
fi
|
||||
done
|
||||
|
||||
# Fisher and fish plugins
|
||||
echo "\nInstalling Fisher and fish plugins..."
|
||||
fish -c 'curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher'
|
||||
fish -c 'fisher install bruno-ricard/fish-autopair Pure-Fish/pure'
|
||||
|
||||
# Atuin installation
|
||||
if ! command -v atuin >/dev/null 2>&1; then
|
||||
echo "\nInstalling Atuin"
|
||||
curl -sS https://raw.githubusercontent.com/ellie/atuin/main/install.sh | bash
|
||||
else
|
||||
echo "Atuin already installed"
|
||||
fi
|
||||
|
||||
# Change default shell to fish
|
||||
if [ "$SHELL" != "$(which fish)" ]; then
|
||||
echo "Changing default shell to fish"
|
||||
chsh -s "$(which fish)"
|
||||
else
|
||||
echo "Default shell is already fish"
|
||||
fi
|
||||
|
||||
echo "\n=== Setup Complete! Restart your terminal to apply changes. ==="
|
184
waybar/config.jsonc
Normal file
184
waybar/config.jsonc
Normal file
@ -0,0 +1,184 @@
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
//"height": 20,
|
||||
"margin-left": 0,
|
||||
"margin-bottom": 0,
|
||||
"margin-right": 0,
|
||||
"spacing": 8,
|
||||
"modules-left": [
|
||||
"custom/startmenu",
|
||||
"backlight",
|
||||
"wireplumber",
|
||||
"battery",
|
||||
"hyprland/workspaces",
|
||||
"niri/workspaces",
|
||||
"sway/workspaces"
|
||||
],
|
||||
"modules-center": [
|
||||
"wlr/taskbar"
|
||||
],
|
||||
"modules-right": [
|
||||
"custom/screenshot",
|
||||
"tray",
|
||||
// "custom/wl-gammarelay-brightness",
|
||||
// "custom/wl-gammarelay-temperature",
|
||||
"clock",
|
||||
"custom/swaync",
|
||||
],
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// Modules
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
"custom/startmenu": {
|
||||
"format": " ",
|
||||
"tooltip": false,
|
||||
"on-click": "wlogout",
|
||||
"on-click-right": "fuzzel",
|
||||
},
|
||||
|
||||
"backlight": {
|
||||
"device": "intel_backlight",
|
||||
"format": "{icon} {percent}%",
|
||||
"format-icons": [""],
|
||||
"on-scroll-down": "brightnessctl s 2%-",
|
||||
"on-scroll-up": "brightnessctl s +2%",
|
||||
},
|
||||
|
||||
"battery": {
|
||||
"interval": 5,
|
||||
"states": {
|
||||
"good": 95,
|
||||
"warning": 15,
|
||||
"critical": 10,
|
||||
},
|
||||
"format": "{icon} {capacity}%",
|
||||
"format-charging": " {capacity}%",
|
||||
"format-plugged": " {capacity}%",
|
||||
"format-icons": ["", "", "", "", ""],
|
||||
},
|
||||
|
||||
"hyprland/workspaces": {
|
||||
"all-outputs": true,
|
||||
"format": "{name}",
|
||||
"on-scroll-down": "hyprctl dispatch workspace e+1 1>/dev/null",
|
||||
"on-scroll-up": "hyprctl dispatch workspace e-1 1>/dev/null",
|
||||
"sort-by-number": true,
|
||||
"active-only": false,
|
||||
},
|
||||
|
||||
"niri/workspaces": {
|
||||
"format": "{icon}",
|
||||
},
|
||||
|
||||
"sway/workspaces": {
|
||||
"all-outputs": true,
|
||||
"format": "{name}",
|
||||
},
|
||||
|
||||
"wlr/taskbar": {
|
||||
"format": "{icon}",
|
||||
"icon-size": 22,
|
||||
"spacing": 3,
|
||||
"tooltip-format": "{title}",
|
||||
"ignore-list": [],
|
||||
"on-click": "activate",
|
||||
"on-click-middle": "close",
|
||||
},
|
||||
/*
|
||||
"custom/screenshot": {
|
||||
"format": " ",
|
||||
"on-click": "sh ~/.config/waybar/scripts/Screenshot-Area.sh",
|
||||
"on-click-right": "nemo ~/Pictures/Screenshots",
|
||||
"on-click-middle": "sh ~/.config/waybar/scripts/Screenshot-Fullscreen.sh",
|
||||
"tooltip": false,
|
||||
},
|
||||
*/
|
||||
"tray": {
|
||||
"spacing": 8,
|
||||
},
|
||||
|
||||
"custom/wl-gammarelay-brightness": {
|
||||
"format": "{}%",
|
||||
"exec": "wl-gammarelay-rs watch {bp}",
|
||||
"on-click": "busctl --user set-property rs.wl-gammarelay / rs.wl.gammarelay Brightness d 0.7",
|
||||
"on-click-right": "busctl --user set-property rs.wl-gammarelay / rs.wl.gammarelay Brightness d 1",
|
||||
"on-scroll-up": "busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay UpdateBrightness d +0.02",
|
||||
"on-scroll-down": "busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay UpdateBrightness d -0.02",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/wl-gammarelay-temperature": {
|
||||
"format": "{}K",
|
||||
"exec": "wl-gammarelay-rs watch {t}",
|
||||
"on-click": "busctl --user set-property rs.wl-gammarelay / rs.wl.gammarelay Temperature q 4500",
|
||||
"on-click-right": "busctl --user set-property rs.wl-gammarelay / rs.wl.gammarelay Temperature q 6500",
|
||||
"on-scroll-up": "busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay UpdateTemperature n +100",
|
||||
"on-scroll-down": "busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay UpdateTemperature n -100",
|
||||
"tooltip": false
|
||||
},
|
||||
/*
|
||||
"wireplumber": {
|
||||
"on-click": "pwvucontrol",
|
||||
"on-click-right": "easyeffects",
|
||||
"on-click-middle": "swayosd-client --output-volume mute-toggle",
|
||||
"on-scroll-down": "swayosd-client --output-volume -2",
|
||||
"on-scroll-up": "swayosd-client --output-volume +2",
|
||||
"format": "{icon} {volume}%",
|
||||
"format-muted": "MUTE",
|
||||
"format-source": "",
|
||||
"format-source-muted": "",
|
||||
"format-icons": {
|
||||
"default": ["", "", ""],
|
||||
},
|
||||
},
|
||||
*/
|
||||
|
||||
"wireplumber": {
|
||||
"on-click": "pwvucontrol",
|
||||
"on-click-right": "easyeffects",
|
||||
"on-click-middle": "pamixer -t && swayosd-client --output-volume mute-toggle",
|
||||
"on-scroll-down": "pamixer -d 1 && swayosd-client --output-volume -1",
|
||||
"on-scroll-up": "pamixer -i 1 && swayosd-client --output-volume +1",
|
||||
"format": "{icon} {volume}%",
|
||||
"format-muted": "MUTE",
|
||||
"format-source": "",
|
||||
"format-source-muted": "",
|
||||
"format-icons": {
|
||||
"default": ["", "", ""]
|
||||
},
|
||||
},
|
||||
/*
|
||||
"clock": {
|
||||
"interval": 60,
|
||||
"align": 0,
|
||||
"rotate": 0,
|
||||
"tooltip-format": "<tt><big>{calendar}</big></tt>",
|
||||
"format": " {:%d.%m.%Y}",
|
||||
"format-alt": " {:%b%d %a,%G}",
|
||||
},
|
||||
*/
|
||||
"clock": {
|
||||
"interval": 60,
|
||||
"align": 0,
|
||||
"rotate": 0,
|
||||
"format": " {:%a %d %H:%M}",
|
||||
"tooltip-format": "<tt><big>{:%A, %d %B %Y}</big></tt>",
|
||||
},
|
||||
|
||||
"custom/swaync": {
|
||||
"tooltip": true,
|
||||
"format": " {icon} ",
|
||||
"format-icons": {
|
||||
"notification": "",
|
||||
"none": "",
|
||||
"dnd-notification": "",
|
||||
"dnd-none": "",
|
||||
},
|
||||
"return-type": "json",
|
||||
"exec-if": "which swaync-client",
|
||||
"exec": "swaync-client -swb",
|
||||
"on-click": "swaync-client -t -sw",
|
||||
"escape": true,
|
||||
},
|
||||
}
|
26
waybar/mocha.css
Normal file
26
waybar/mocha.css
Normal file
@ -0,0 +1,26 @@
|
||||
@define-color rosewater #f5e0dc;
|
||||
@define-color flamingo #f2cdcd;
|
||||
@define-color pink #f5c2e7;
|
||||
@define-color mauve #cba6f7;
|
||||
@define-color red #f38ba8;
|
||||
@define-color maroon #eba0ac;
|
||||
@define-color peach #fab387;
|
||||
@define-color yellow #f9e2af;
|
||||
@define-color green #a6e3a1;
|
||||
@define-color teal #94e2d5;
|
||||
@define-color sky #89dceb;
|
||||
@define-color sapphire #74c7ec;
|
||||
@define-color blue #89b4fa;
|
||||
@define-color lavender #b4befe;
|
||||
@define-color text #cdd6f4;
|
||||
@define-color subtext1 #bac2de;
|
||||
@define-color subtext0 #a6adc8;
|
||||
@define-color overlay2 #9399b2;
|
||||
@define-color overlay1 #7f849c;
|
||||
@define-color overlay0 #6c7086;
|
||||
@define-color surface2 #585b70;
|
||||
@define-color surface1 #45475a;
|
||||
@define-color surface0 #313244;
|
||||
@define-color base #1e1e2e;
|
||||
@define-color mantle #181825;
|
||||
@define-color crust #11111b;
|
133
waybar/style.css
Normal file
133
waybar/style.css
Normal file
@ -0,0 +1,133 @@
|
||||
@import "mocha.css";
|
||||
|
||||
* {
|
||||
/* https://docs.gtk.org/gtk3/css-overview.html#colors */
|
||||
color: @text;
|
||||
font-family: "JetBrainsMono Nerd Font";
|
||||
font-size: 12pt;
|
||||
font-weight: bold;
|
||||
border-radius: 8px;
|
||||
transition-property: background-color;
|
||||
transition-duration: 0.5s;
|
||||
}
|
||||
@keyframes blink_red {
|
||||
to {
|
||||
background-color: @red;
|
||||
color: @base;
|
||||
}
|
||||
}
|
||||
.warning,
|
||||
.critical,
|
||||
.urgent {
|
||||
animation-name: blink_red;
|
||||
animation-duration: 2s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
window#waybar {
|
||||
background-color: @mantle;
|
||||
border: 2px solid alpha(@crust, 0.3);
|
||||
}
|
||||
/*
|
||||
window > box {
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
margin-top: 5px;
|
||||
background-color: shade(@base, 0.9);
|
||||
padding: 3px;
|
||||
padding-left: 8px;
|
||||
border: 2px none @blue;
|
||||
}
|
||||
*/
|
||||
#workspaces {
|
||||
padding-left: 0px;
|
||||
padding-right: 4px;
|
||||
}
|
||||
#workspaces button {
|
||||
padding-top: 5px;
|
||||
padding-bottom: 5px;
|
||||
padding-left: 6px;
|
||||
padding-right: 6px;
|
||||
}
|
||||
#workspaces button.active {
|
||||
background-color: @surface2;
|
||||
color: @base;
|
||||
}
|
||||
#workspaces button.urgent {
|
||||
color: @base;
|
||||
}
|
||||
#workspaces button:hover {
|
||||
background-color: @surface0;
|
||||
color: @base;
|
||||
}
|
||||
tooltip {
|
||||
background: @mantle;
|
||||
}
|
||||
tooltip label {
|
||||
color: @subtext1;
|
||||
}
|
||||
#custom-launcher {
|
||||
font-size: 20px;
|
||||
padding-left: 8px;
|
||||
padding-right: 6px;
|
||||
color: #7ebae4;
|
||||
}
|
||||
|
||||
#custom-powermenu {
|
||||
color: @red;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
#memory {
|
||||
color: @teal;
|
||||
}
|
||||
#cpu {
|
||||
color: @maroon;
|
||||
}
|
||||
#clock {
|
||||
color: @subtext1;
|
||||
}
|
||||
|
||||
#idle_inhibitor {
|
||||
color: @pink;
|
||||
padding-right: 8px;
|
||||
}
|
||||
#battery {
|
||||
min-width: 55px;
|
||||
color: @sky;
|
||||
}
|
||||
#battery.charging,
|
||||
#battery.full,
|
||||
#battery.plugged {
|
||||
color: @green;
|
||||
}
|
||||
#battery.warning:not(.charging) {
|
||||
color: @yellow;
|
||||
}
|
||||
#battery.critical:not(.charging) {
|
||||
color: @red;
|
||||
}
|
||||
#custom-wall {
|
||||
color: @sky;
|
||||
}
|
||||
#temperature {
|
||||
color: @sky;
|
||||
}
|
||||
#backlight {
|
||||
color: @peach;
|
||||
}
|
||||
#pulseaudio {
|
||||
color: @flamingo;
|
||||
}
|
||||
#network {
|
||||
color: @sapphire;
|
||||
}
|
||||
#network.disconnected {
|
||||
color: @subtext0;
|
||||
}
|
||||
#tray {
|
||||
padding-right: 8px;
|
||||
padding-left: 10px;
|
||||
}
|
Reference in New Issue
Block a user