Compare commits

..

No commits in common. "stable" and "neo" have entirely different histories.
stable ... neo

131 changed files with 1578 additions and 3355 deletions

33
.config/.gitignore vendored Normal file
View file

@ -0,0 +1,33 @@
# Ignore Everything By Default
/*
# Install Script
!install.sh
# Unignore Ignore
!.gitignore
# Oh My Bash
!/oh-my-bash-custom/
# Glow
!/glow/
# Oh My Posh
!omp.toml
# Services
!systemd/
# SSH
!/ssh/
# neovim
!/nvim/
# git
!/git/
!/git-graph/
# KDE
!kglobalshortcutsrc

View file

@ -0,0 +1,77 @@
persistence = [
'^(master|main)$',
'^(develop|dev)$',
'^feature.*$',
'^release.*$',
'^hotfix.*$',
'^bugfix.*$',
]
order = [
'^(master|main)$',
'^(hotfix|release).*$',
'^(develop|dev)$',
]
[terminal_colors]
matches = [
[
'^(master|main)$',
['bright_blue'],
],
[
'^(develop|dev)$',
['bright_yellow'],
],
[
'^(feature|fork/).*$',
[
'bright_magenta',
'bright_cyan',
],
],
[
'^release.*$',
['bright_green'],
],
[
'^(bugfix|hotfix).*$',
['bright_red'],
],
[
'^tags/.*$',
['bright_green'],
],
]
unknown = ['white']
[svg_colors]
matches = [
[
'^(master|main)$',
['blue'],
],
[
'^(develop|dev)$',
['orange'],
],
[
'^(feature|fork/).*$',
[
'purple',
'turquoise',
],
],
[
'^release.*$',
['green'],
],
[
'^(bugfix|hotfix).*$',
['red'],
],
[
'^tags/.*$',
['green'],
],
]
unknown = ['gray']

View file

@ -0,0 +1,24 @@
persistence = []
order = []
[terminal_colors]
matches = []
unknown = [
'bright_blue',
'bright_yellow',
'bright_green',
'bright_red',
'bright_magenta',
'bright_cyan',
]
[svg_colors]
matches = []
unknown = [
'blue',
'orange',
'green',
'red',
'purple',
'turquoise',
]

View file

@ -0,0 +1,43 @@
persistence = ['^(master|main)$']
order = [
'^tags/.*$',
'^(master|main)$',
]
[terminal_colors]
matches = [
[
'^(master|main)$',
['bright_blue'],
],
[
'^tags/.*$',
['bright_green'],
],
]
unknown = [
'bright_yellow',
'bright_green',
'bright_red',
'bright_magenta',
'bright_cyan',
]
[svg_colors]
matches = [
[
'^(master|main)$',
['blue'],
],
[
'^tags/.*$',
['green'],
],
]
unknown = [
'orange',
'green',
'red',
'purple',
'turquoise',
]

View file

@ -0,0 +1,33 @@
persistence = [
'^(trunk)$',
'^story.*$',
]
order = [
'^trunk$',
]
[terminal_colors]
matches = [
[
'^trunk$',
['bright_blue'],
],
]
unknown = [
'bright_yellow',
'bright_green',
'bright_red',
'bright_magenta',
'bright_cyan',
]
[svg_colors]
matches = []
unknown = [
'blue',
'orange',
'green',
'red',
'purple',
'turquoise',
]

View file

@ -0,0 +1,210 @@
{
"document": {
"block_prefix": "\n",
"block_suffix": "\n",
"color": "#cad3f5",
"margin": 2
},
"block_quote": {
"indent": 1,
"indent_token": "│ "
},
"paragraph": {},
"list": {
"level_indent": 2
},
"heading": {
"block_suffix": "\n",
"color": "#cad3f5",
"bold": true
},
"h1": {
"prefix": " ",
"suffix": " ",
"color": "#24273a",
"background_color": "#8aadf4",
"bold": true
},
"h2": {
"prefix": "██ ",
"suffix": " ",
"color": "#24273a",
"background_color": "#7dc4e4"
},
"h3": {
"prefix": "████ ",
"suffix": " ",
"color": "#24273a",
"background_color": "#91d7e3"
},
"h4": {
"prefix": "██████ ",
"suffix": " ",
"color": "#24273a",
"background_color": "#8bd5ca"
},
"h5": {
"prefix": "████████ ",
"suffix": " ",
"color": "#24273a",
"background_color": "#7dc4e4"
},
"h6": {
"prefix": "██████████ ",
"suffix": " ",
"color": "#24273a",
"background_color": "#b7bdf8"
},
"text": {},
"strikethrough": {
"crossed_out": true
},
"emph": {
"italic": true
},
"strong": {
"bold": true
},
"hr": {
"color": "#6e738d",
"format": "\n──────────────────────────────────────────────────────────────────────────\n"
},
"item": {
"block_prefix": "• "
},
"enumeration": {
"block_prefix": ". "
},
"task": {
"ticked": " ",
"unticked": " "
},
"link": {
"color": "#8aadf4",
"underline": true
},
"link_text": {
"color": "#b7bdf8",
"bold": true
},
"image": {
"color": "#8aadf4",
"underline": true
},
"image_text": {
"color": "#b7bdf8",
"format": "Image: {{.text}} →"
},
"code": {
"prefix": " ",
"suffix": " ",
"color": "#8aadf4",
"background_color": "#363a4f"
},
"code_block": {
"color": "#1e2030",
"margin": 2,
"chroma": {
"text": {
"color": "#cad3f5"
},
"error": {
"color": "#cad3f5",
"background_color": "#ed8796"
},
"comment": {
"color": "#6e738d"
},
"comment_preproc": {
"color": "#8aadf4"
},
"keyword": {
"color": "#c6a0f6"
},
"keyword_reserved": {
"color": "#c6a0f6"
},
"keyword_namespace": {
"color": "#eed49f"
},
"keyword_type": {
"color": "#eed49f"
},
"operator": {
"color": "#91d7e3"
},
"punctuation": {
"color": "#939ab7"
},
"name": {
"color": "#b7bdf8"
},
"name_builtin": {
"color": "#f5a97f"
},
"name_tag": {
"color": "#c6a0f6"
},
"name_attribute": {
"color": "#eed49f"
},
"name_class": {
"color": "#eed49f"
},
"name_constant": {
"color": "#eed49f"
},
"name_decorator": {
"color": "#f5bde6"
},
"name_exception": {},
"name_function": {
"color": "#8aadf4"
},
"name_other": {},
"literal": {},
"literal_number": {
"color": "#f5a97f"
},
"literal_date": {},
"literal_string": {
"color": "#a6da95"
},
"literal_string_escape": {
"color": "#f5bde6"
},
"generic_deleted": {
"color": "#ed8796"
},
"generic_emph": {
"color": "#cad3f5",
"italic": true
},
"generic_inserted": {
"color": "#a6da95"
},
"generic_strong": {
"color": "#cad3f5",
"bold": true
},
"generic_subheading": {
"color": "#91d7e3"
},
"background": {
"background_color": "#363a4f"
}
}
},
"table": {
"center_separator": "┼",
"column_separator": "│",
"row_separator": "─"
},
"definition_list": {},
"definition_term": {},
"definition_description": {
"block_prefix": "\n🠶 "
},
"html_block": {},
"html_span": {}
}

8
.config/glow/glow.yml Normal file
View file

@ -0,0 +1,8 @@
# style name or JSON path (default "auto")
style: "~/.config/glow/catppuccin-macchiato.json"
# mouse support (TUI-mode only)
mouse: false
# use pager to display markdown
pager: false
# word-wrap at width
width: 80

3
.config/glow/install.sh Executable file
View file

@ -0,0 +1,3 @@
#!/bin/sh
command -v glow &>/dev/null || go install github.com/charmbracelet/glow@latest

9
.config/install.sh Executable file
View file

@ -0,0 +1,9 @@
#!/bin/sh
$HOME/.config/nvim/install.sh
$HOME/.config/glow/install.sh
$HOME/.config/systemd/install.sh
# Git
command -v delta &>/dev/null || sudo dnf install -y git-delta
command -v git-graph &>/dev/null || cargo install git-graph

356
.config/kglobalshortcutsrc Normal file
View file

@ -0,0 +1,356 @@
[ActivityManager]
_k_friendly_name=Activity Manager
switch-to-activity-06e56b50-274c-44d5-bd05-253d1e88a244=none,none,Switch to activity "Standard"
switch-to-activity-10eae782-cee3-42c7-b63f-6cfa29a432f4=none,none,Switch to activity "Default"
switch-to-activity-12c956f8-79d2-4e10-ba60-c476b4f44bc6=none,none,Switch to activity "Default"
switch-to-activity-c9029e69-ec79-4399-8d82-a2b36f65b1d5=none,none,Switch to activity "Default"
[KDE Keyboard Layout Switcher]
Switch keyboard layout to English (UK, extended, Windows)=none,none,Switch keyboard layout to English (UK\\, extended\\, Windows)
Switch to Last-Used Keyboard Layout=Meta+Alt+L,Meta+Alt+L,Switch to Last-Used Keyboard Layout
Switch to Next Keyboard Layout=Meta+Alt+K,Meta+Alt+K,Switch to Next Keyboard Layout
_k_friendly_name=Keyboard Layout Switcher
[kaccess]
Toggle Screen Reader On and Off=Meta+Alt+S,Meta+Alt+S,Toggle Screen Reader On and Off
_k_friendly_name=Accessibility
[kcm_touchpad]
Disable Touchpad=Touchpad Off,Touchpad Off,
Enable Touchpad=Touchpad On,Touchpad On,
Toggle Touchpad=Touchpad Toggle\tMeta+Ctrl+Zenkaku Hankaku,Touchpad Toggle\tMeta+Ctrl+Zenkaku Hankaku,
_k_friendly_name=Touchpad
[kmix]
_k_friendly_name=Audio Volume
decrease_microphone_volume=Microphone Volume Down,Microphone Volume Down,Decrease Microphone Volume
decrease_volume=Volume Down,Volume Down,Decrease Volume
decrease_volume_small=Shift+Volume Down,Shift+Volume Down,Decrease Volume by 1%
increase_microphone_volume=Microphone Volume Up,Microphone Volume Up,Increase Microphone Volume
increase_volume=Volume Up,Volume Up,Increase Volume
increase_volume_small=Shift+Volume Up,Shift+Volume Up,Increase Volume by 1%
mic_mute=Microphone Mute\tMeta+Volume Mute,Microphone Mute\tMeta+Volume Mute,Mute Microphone
mute=Volume Mute,Volume Mute,Mute
[ksmserver]
Halt Without Confirmation=none,,Shut Down Without Confirmation
Lock Session=Screensaver,Meta+L\tScreensaver,Lock Session
Log Out=Ctrl+Alt+Del,Ctrl+Alt+Del,Show Logout Screen
Log Out Without Confirmation=none,,Log Out Without Confirmation
LogOut=none,,Log Out
Reboot=none,,Reboot
Reboot Without Confirmation=none,,Reboot Without Confirmation
Shut Down=none,,Shut Down
_k_friendly_name=Session Management
[kwin]
Activate Tile 1=none,none,Activate Tile 1
Activate Tile 10=none,none,Activate Tile 10
Activate Tile 2=none,none,Activate Tile 2
Activate Tile 3=none,none,Activate Tile 3
Activate Tile 4=none,none,Activate Tile 4
Activate Tile 5=none,none,Activate Tile 5
Activate Tile 6=none,none,Activate Tile 6
Activate Tile 7=none,none,Activate Tile 7
Activate Tile 8=none,none,Activate Tile 8
Activate Tile 9=none,none,Activate Tile 9
Activate Window Demanding Attention=none,Meta+Ctrl+A,Activate Window Demanding Attention
Assign to Tile 1=none,none,Assign to Tile 1
Assign to Tile 10=none,none,Assign to Tile 10
Assign to Tile 2=none,none,Assign to Tile 2
Assign to Tile 3=none,none,Assign to Tile 3
Assign to Tile 4=none,none,Assign to Tile 4
Assign to Tile 5=none,none,Assign to Tile 5
Assign to Tile 6=none,none,Assign to Tile 6
Assign to Tile 7=none,none,Assign to Tile 7
Assign to Tile 8=none,none,Assign to Tile 8
Assign to Tile 9=none,none,Assign to Tile 9
Cycle Overview=none,none,Cycle through Overview and Grid View
Cycle Overview Opposite=none,none,Cycle through Grid View and Overview
Decrease Opacity=none,,Decrease Opacity of Active Window by 5%
Edit Tiles=none,Meta+T,Toggle Tiles Editor
Expose=none,Ctrl+F9,Toggle Present Windows (Current desktop)
ExposeAll=none,Ctrl+F10\tLaunch (C),Toggle Present Windows (All desktops)
ExposeClass=none,Ctrl+F7,Toggle Present Windows (Window class)
ExposeClassCurrentDesktop=none,none,Toggle Present Windows (Window class on current desktop)
Grid View=none,Meta+G,Toggle Grid View
Increase Opacity=none,,Increase Opacity of Active Window by 5%
Invert=Meta+Ctrl+I,Meta+Ctrl+I,Toggle Invert Effect
Invert Screen Colors=none,none,Invert Screen Colors
InvertWindow=none,Meta+Ctrl+U,Toggle Invert Effect on Window
Kill Window=Alt+Shift+F4\tMeta+Shift+Q,Meta+Ctrl+Esc,Kill Window
KrohnkiteBTreeLayout=none,none,Krohnkite: BTree Layout
KrohnkiteDecrease=none,none,Krohnkite: Decrease
KrohnkiteFloatAll=none,none,Krohnkite: Float All
KrohnkiteFloatingLayout=none,none,Krohnkite: Floating Layout
KrohnkiteFocusDown=Meta+J,none,Krohnkite: Focus Down
KrohnkiteFocusLeft=Meta+H,none,Krohnkite: Focus Left
KrohnkiteFocusNext=none,none,Krohnkite: Focus Next
KrohnkiteFocusPrev=none,none,Krohnkite: Focus Previous
KrohnkiteFocusRight=Meta+L,none,Krohnkite: Focus Right
KrohnkiteFocusUp=Meta+K,none,Krohnkite: Focus Up
KrohnkiteGrowHeight=none,none,Krohnkite: Grow Height
KrohnkiteIncrease=none,none,Krohnkite: Increase
KrohnkiteMonocleLayout=none,none,Krohnkite: Monocle Layout
KrohnkiteNextLayout=Meta+M,none,Krohnkite: Next Layout
KrohnkitePreviousLayout=Meta+Shift+M,none,Krohnkite: Previous Layout
KrohnkiteQuarterLayout=none,none,Krohnkite: Quarter Layout
KrohnkiteRotate=Meta+R,none,Krohnkite: Rotate
KrohnkiteRotatePart=none,none,Krohnkite: Rotate Part
KrohnkiteSetMaster=none,none,Krohnkite: Set master
KrohnkiteShiftDown=Meta+Shift+J,none,Krohnkite: Move Down/Next
KrohnkiteShiftLeft=Meta+Shift+H,none,Krohnkite: Move Left
KrohnkiteShiftRight=Meta+Shift+L,none,Krohnkite: Move Right
KrohnkiteShiftUp=Meta+Shift+K,none,Krohnkite: Move Up/Prev
KrohnkiteShrinkHeight=none,none,Krohnkite: Shrink Height
KrohnkiteShrinkWidth=none,none,Krohnkite: Shrink Width
KrohnkiteSpiralLayout=none,none,Krohnkite: Spiral Layout
KrohnkiteSpreadLayout=none,none,Krohnkite: Spread Layout
KrohnkiteStackedLayout=none,none,Krohnkite: Stacked Layout
KrohnkiteStairLayout=none,none,Krohnkite: Stair Layout
KrohnkiteTileLayout=none,none,Krohnkite: Tile Layout
KrohnkiteToggleFloat=Meta+F,none,Krohnkite: Toggle Float
KrohnkiteTreeColumnLayout=none,none,Krohnkite: Tree Column Layout
KrohnkitegrowWidth=none,none,Krohnkite: Grow Width
Move Tablet to Next Output=none,none,Move the tablet to the next output
MoveMouseToCenter=none,Meta+F6,Move Mouse to Center
MoveMouseToFocus=none,Meta+F5,Move Mouse to Focus
MoveZoomDown=none,none,Move Zoomed Area Downwards
MoveZoomLeft=none,none,Move Zoomed Area to Left
MoveZoomRight=none,none,Move Zoomed Area to Right
MoveZoomUp=none,none,Move Zoomed Area Upwards
Overview=Meta+Tab,Meta+W,Toggle Overview
PoloniumCycleEngine=none,none,Polonium: Cycle Engine
PoloniumFocusAbove=none,none,Polonium: Focus Above
PoloniumFocusBelow=none,none,Polonium: Focus Below
PoloniumFocusLeft=none,none,Polonium: Focus Left
PoloniumFocusRight=none,none,Polonium: Focus Right
PoloniumInsertAbove=none,none,Polonium: Insert Above
PoloniumInsertBelow=none,none,Polonium: Insert Below
PoloniumInsertLeft=none,none,Polonium: Insert Left
PoloniumInsertRight=none,none,Polonium: Insert Right
PoloniumOpenSettings=none,none,Polonium: Open Settings Dialog
PoloniumResizeAbove=none,none,Polonium: Resize Above
PoloniumResizeBelow=none,none,Polonium: Resize Below
PoloniumResizeLeft=none,none,Polonium: Resize Left
PoloniumResizeRight=none,none,Polonium: Resize Right
PoloniumRetileWindow=none,none,Polonium: Retile Window
PoloniumSwitchBTree=none,none,Polonium: Use Binary Tree Engine
PoloniumSwitchHalf=none,none,Polonium: Use Half Engine
PoloniumSwitchKwin=none,none,Polonium: Use KWin Engine
PoloniumSwitchMonocle=none,none,Polonium: Use Monocle Engine
PoloniumSwitchThreeColumn=none,none,Polonium: Use Three Column Engine
Setup Window Shortcut=none,,Setup Window Shortcut
Show Desktop=none,Meta+D,Peek at Desktop
Switch One Desktop Down=none,Meta+Ctrl+Down,Switch One Desktop Down
Switch One Desktop Up=none,Meta+Ctrl+Up,Switch One Desktop Up
Switch One Desktop to the Left=none,Meta+Ctrl+Left,Switch One Desktop to the Left
Switch One Desktop to the Right=none,Meta+Ctrl+Right,Switch One Desktop to the Right
Switch Window Down=none,Meta+Alt+Down,Switch to Window Below
Switch Window Left=none,Meta+Alt+Left,Switch to Window to the Left
Switch Window Right=none,Meta+Alt+Right,Switch to Window to the Right
Switch Window Up=none,Meta+Alt+Up,Switch to Window Above
Switch to Desktop 1=none,Ctrl+F1,Switch to Desktop 1
Switch to Desktop 10=none,,Switch to Desktop 10
Switch to Desktop 11=none,,Switch to Desktop 11
Switch to Desktop 12=none,,Switch to Desktop 12
Switch to Desktop 13=none,,Switch to Desktop 13
Switch to Desktop 14=none,,Switch to Desktop 14
Switch to Desktop 15=none,,Switch to Desktop 15
Switch to Desktop 16=none,,Switch to Desktop 16
Switch to Desktop 17=none,,Switch to Desktop 17
Switch to Desktop 18=none,,Switch to Desktop 18
Switch to Desktop 19=none,,Switch to Desktop 19
Switch to Desktop 2=none,Ctrl+F2,Switch to Desktop 2
Switch to Desktop 20=none,,Switch to Desktop 20
Switch to Desktop 3=none,Ctrl+F3,Switch to Desktop 3
Switch to Desktop 4=none,Ctrl+F4,Switch to Desktop 4
Switch to Desktop 5=none,,Switch to Desktop 5
Switch to Desktop 6=none,,Switch to Desktop 6
Switch to Desktop 7=none,,Switch to Desktop 7
Switch to Desktop 8=none,,Switch to Desktop 8
Switch to Desktop 9=none,,Switch to Desktop 9
Switch to Next Desktop=none,,Switch to Next Desktop
Switch to Next Screen=none,,Switch to Next Screen
Switch to Previous Desktop=none,,Switch to Previous Desktop
Switch to Previous Screen=none,,Switch to Previous Screen
Switch to Screen 0=none,,Switch to Screen 0
Switch to Screen 1=none,,Switch to Screen 1
Switch to Screen 2=none,,Switch to Screen 2
Switch to Screen 3=none,,Switch to Screen 3
Switch to Screen 4=none,,Switch to Screen 4
Switch to Screen 5=none,,Switch to Screen 5
Switch to Screen 6=none,,Switch to Screen 6
Switch to Screen 7=none,,Switch to Screen 7
Switch to Screen Above=none,,Switch to Screen Above
Switch to Screen Below=none,,Switch to Screen Below
Switch to Screen to the Left=Meta+\\,,,Switch to Screen to the Left
Switch to Screen to the Right=Meta+.,,Switch to Screen to the Right
Toggle Night Color=none,none,Suspend/Resume Night Light
Toggle Window Raise/Lower=none,,Toggle Window Raise/Lower
ToggleCurrentThumbnail=none,Meta+Ctrl+T,Toggle Thumbnail for Current Window
Walk Through Windows=Alt+Tab,Alt+Tab,Walk Through Windows
Walk Through Windows (Reverse)=Alt+Shift+Tab,Alt+Shift+Tab,Walk Through Windows (Reverse)
Walk Through Windows Alternative=none,,Walk Through Windows Alternative
Walk Through Windows Alternative (Reverse)=none,,Walk Through Windows Alternative (Reverse)
Walk Through Windows of Current Application=none,Alt+`,Walk Through Windows of Current Application
Walk Through Windows of Current Application (Reverse)=none,Alt+~,Walk Through Windows of Current Application (Reverse)
Walk Through Windows of Current Application Alternative=none,,Walk Through Windows of Current Application Alternative
Walk Through Windows of Current Application Alternative (Reverse)=none,,Walk Through Windows of Current Application Alternative (Reverse)
Window Above Other Windows=none,,Keep Window Above Others
Window Below Other Windows=none,,Keep Window Below Others
Window Close=Alt+F4\tMeta+Q,Alt+F4,Close Window
Window Fullscreen=none,,Make Window Fullscreen
Window Grow Horizontal=none,,Expand Window Horizontally
Window Grow Vertical=none,,Expand Window Vertically
Window Lower=none,,Lower Window
Window Maximize=none,Meta+PgUp,Maximize Window
Window Maximize Horizontal=none,,Maximize Window Horizontally
Window Maximize Vertical=none,,Maximize Window Vertically
Window Minimize=none,Meta+PgDown,Minimize Window
Window Move=none,,Move Window
Window Move Center=none,,Move Window to the Center
Window No Border=none,,Toggle Window Titlebar and Frame
Window On All Desktops=none,,Keep Window on All Desktops
Window One Desktop Down=none,Meta+Ctrl+Shift+Down,Window One Desktop Down
Window One Desktop Up=none,Meta+Ctrl+Shift+Up,Window One Desktop Up
Window One Desktop to the Left=none,Meta+Ctrl+Shift+Left,Window One Desktop to the Left
Window One Desktop to the Right=none,Meta+Ctrl+Shift+Right,Window One Desktop to the Right
Window One Screen Down=none,,Move Window One Screen Down
Window One Screen Up=none,,Move Window One Screen Up
Window One Screen to the Left=none,,Move Window One Screen to the Left
Window One Screen to the Right=none,,Move Window One Screen to the Right
Window Operations Menu=none,Alt+F3,Window Operations Menu
Window Pack Down=none,,Move Window Down
Window Pack Left=none,,Move Window Left
Window Pack Right=none,,Move Window Right
Window Pack Up=none,,Move Window Up
Window Quick Tile Bottom=none,Meta+Down,Quick Tile Window to the Bottom
Window Quick Tile Bottom Left=none,,Quick Tile Window to the Bottom Left
Window Quick Tile Bottom Right=none,,Quick Tile Window to the Bottom Right
Window Quick Tile Left=none,Meta+Left,Quick Tile Window to the Left
Window Quick Tile Right=none,Meta+Right,Quick Tile Window to the Right
Window Quick Tile Top=none,Meta+Up,Quick Tile Window to the Top
Window Quick Tile Top Left=none,,Quick Tile Window to the Top Left
Window Quick Tile Top Right=none,,Quick Tile Window to the Top Right
Window Raise=none,,Raise Window
Window Resize=none,,Resize Window
Window Shade=none,,Shade Window
Window Shrink Horizontal=none,,Shrink Window Horizontally
Window Shrink Vertical=none,,Shrink Window Vertically
Window to Desktop 1=none,,Window to Desktop 1
Window to Desktop 10=none,,Window to Desktop 10
Window to Desktop 11=none,,Window to Desktop 11
Window to Desktop 12=none,,Window to Desktop 12
Window to Desktop 13=none,,Window to Desktop 13
Window to Desktop 14=none,,Window to Desktop 14
Window to Desktop 15=none,,Window to Desktop 15
Window to Desktop 16=none,,Window to Desktop 16
Window to Desktop 17=none,,Window to Desktop 17
Window to Desktop 18=none,,Window to Desktop 18
Window to Desktop 19=none,,Window to Desktop 19
Window to Desktop 2=none,,Window to Desktop 2
Window to Desktop 20=none,,Window to Desktop 20
Window to Desktop 3=none,,Window to Desktop 3
Window to Desktop 4=none,,Window to Desktop 4
Window to Desktop 5=none,,Window to Desktop 5
Window to Desktop 6=none,,Window to Desktop 6
Window to Desktop 7=none,,Window to Desktop 7
Window to Desktop 8=none,,Window to Desktop 8
Window to Desktop 9=none,,Window to Desktop 9
Window to Next Desktop=none,,Window to Next Desktop
Window to Next Screen=Meta+>,Meta+Shift+Right,Move Window to Next Screen
Window to Previous Desktop=none,,Window to Previous Desktop
Window to Previous Screen=Meta+<,Meta+Shift+Left,Move Window to Previous Screen
Window to Screen 0=none,,Move Window to Screen 0
Window to Screen 1=none,,Move Window to Screen 1
Window to Screen 2=none,,Move Window to Screen 2
Window to Screen 3=none,,Move Window to Screen 3
Window to Screen 4=none,,Move Window to Screen 4
Window to Screen 5=none,,Move Window to Screen 5
Window to Screen 6=none,,Move Window to Screen 6
Window to Screen 7=none,,Move Window to Screen 7
_k_friendly_name=KWin
view_actual_size=none,Meta+0,Zoom to Actual Size
view_zoom_in=Meta++\tMeta+=,Meta++\tMeta+=,Zoom In
view_zoom_out=Meta+-,Meta+-,Zoom Out
[mediacontrol]
_k_friendly_name=Media Controller
mediavolumedown=none,,Media volume down
mediavolumeup=none,,Media volume up
nextmedia=Media Next,Media Next,Media playback next
pausemedia=Media Pause,Media Pause,Pause media playback
playmedia=none,,Play media playback
playpausemedia=Media Play,Media Play,Play/Pause media playback
previousmedia=Media Previous,Media Previous,Media playback previous
stopmedia=Media Stop,Media Stop,Stop media playback
[org_kde_powerdevil]
Decrease Keyboard Brightness=Keyboard Brightness Down,Keyboard Brightness Down,Decrease Keyboard Brightness
Decrease Screen Brightness=Monitor Brightness Down,Monitor Brightness Down,Decrease Screen Brightness
Decrease Screen Brightness Small=Shift+Monitor Brightness Down,Shift+Monitor Brightness Down,Decrease Screen Brightness by 1%
Hibernate=Hibernate,Hibernate,Hibernate
Increase Keyboard Brightness=Keyboard Brightness Up,Keyboard Brightness Up,Increase Keyboard Brightness
Increase Screen Brightness=Monitor Brightness Up,Monitor Brightness Up,Increase Screen Brightness
Increase Screen Brightness Small=Shift+Monitor Brightness Up,Shift+Monitor Brightness Up,Increase Screen Brightness by 1%
PowerDown=Power Down,Power Down,Power Down
PowerOff=Power Off,Power Off,Power Off
Sleep=Sleep,Sleep,Suspend
Toggle Keyboard Backlight=Keyboard Light On/Off,Keyboard Light On/Off,Toggle Keyboard Backlight
Turn Off Screen=none,none,Turn Off Screen
_k_friendly_name=Power Management
powerProfile=Battery\tMeta+B,Battery\tMeta+B,Switch Power Profile
[plasmashell]
_k_friendly_name=plasmashell
activate application launcher=Meta,Meta\tAlt+F1,Activate Application Launcher
activate task manager entry 1=Meta+1,Meta+1,Activate Task Manager Entry 1
activate task manager entry 10=none,Meta+0,Activate Task Manager Entry 10
activate task manager entry 2=Meta+2,Meta+2,Activate Task Manager Entry 2
activate task manager entry 3=Meta+3,Meta+3,Activate Task Manager Entry 3
activate task manager entry 4=Meta+4,Meta+4,Activate Task Manager Entry 4
activate task manager entry 5=Meta+5,Meta+5,Activate Task Manager Entry 5
activate task manager entry 6=Meta+6,Meta+6,Activate Task Manager Entry 6
activate task manager entry 7=Meta+7,Meta+7,Activate Task Manager Entry 7
activate task manager entry 8=Meta+8,Meta+8,Activate Task Manager Entry 8
activate task manager entry 9=Meta+9,Meta+9,Activate Task Manager Entry 9
activate widget 5=Alt+F1,none,Activate Application Launcher Widget
clear-history=none,,Clear Clipboard History
clipboard_action=none,Meta+Ctrl+X,Automatic Action Popup Menu
cycle-panels=Meta+Alt+P,Meta+Alt+P,Move keyboard focus between panels
cycleNextAction=none,,Next History Item
cyclePrevAction=none,,Previous History Item
manage activities=none,Meta+Q,Show Activity Switcher
next activity=Meta+A,none,Walk through activities
previous activity=Meta+Shift+A,none,Walk through activities (Reverse)
repeat_action=none,Meta+Ctrl+R,Manually Invoke Action on Current Clipboard
show dashboard=Ctrl+F12,Ctrl+F12,Show Desktop
show-barcode=none,,Show Barcode…
show-on-mouse-pos=Meta+V,Meta+V,Show Clipboard Items at Mouse Position
stop current activity=Meta+S,Meta+S,Stop Current Activity
switch to next activity=none,,Switch to Next Activity
switch to previous activity=none,,Switch to Previous Activity
toggle do not disturb=none,,Toggle do not disturb
[services][org.kde.dolphin.desktop]
_launch=none
[services][org.kde.konsole.desktop]
_launch=Meta+Return
[services][org.kde.krunner.desktop]
RunClipboard=none
_launch=Meta+Space
[services][org.kde.plasma.emojier.desktop]
_launch=none
[services][org.kde.spectacle.desktop]
FullScreenScreenShot=none
RecordRegion=none
RecordScreen=none
RecordWindow=none
RectangularRegionScreenShot=Meta+Shift+S\tPrint
WindowUnderCursorScreenShot=none
_launch=none

1
.config/nvim Submodule

@ -0,0 +1 @@
Subproject commit 61d0f5cf4cbd89f5c3676f72e2a3bd31b85880cd

View file

@ -0,0 +1 @@

View file

@ -0,0 +1,5 @@
# agnoster modded
```bash
DEFAULT_USER="username"
```

View file

@ -0,0 +1,427 @@
#! bash oh-my-bash.module
PROMPT_DIRTRIM=${PROMPT_DIRTRIM:-2} # bash4 and above
######################################################################
## Configurations in Oh My Bash
OMB_PROMPT_SHOW_PYTHON_VENV=${OMB_PROMPT_SHOW_PYTHON_VENV:=true}
######################################################################
DEBUG=0
function debug {
if [[ ${DEBUG} -ne 0 ]]; then
>&2 echo -e "$@"
fi
}
######################################################################
### Segment drawing
# A few utility functions to make it easy and re-usable to draw segmented prompts
CURRENT_BG='NONE'
CURRENT_RBG='NONE'
SEGMENT_SEPARATOR=''
RIGHT_SEPARATOR=''
LEFT_SUBSEG=''
RIGHT_SUBSEG=''
function text_effect {
case "$1" in
reset) echo 0;;
bold) echo 1;;
underline) echo 4;;
esac
}
# to add colors, see
# http://bitmote.com/index.php?post/2012/11/19/Using-ANSI-Color-Codes-to-Colorize-Your-Bash-Prompt-on-Linux
# under the "256 (8-bit) Colors" section, and follow the example for orange below
function fg_color {
case "$1" in
black) echo 30;;
red) echo 31;;
green) echo 32;;
yellow) echo 33;;
blue) echo 34;;
magenta) echo 35;;
cyan) echo 36;;
white) echo 37;;
orange) echo 38\;5\;166;;
esac
}
function bg_color {
case "$1" in
black) echo 40;;
red) echo 41;;
green) echo 42;;
yellow) echo 43;;
blue) echo 44;;
magenta) echo 45;;
cyan) echo 46;;
white) echo 47;;
orange) echo 48\;5\;166;;
esac;
}
# TIL: declare is global not local, so best use a different name
# for codes (mycodes) as otherwise it'll clobber the original.
# this changes from BASH v3 to BASH v4.
function ansi {
local seq
local -a mycodes=("${!1}")
debug "ansi: ${!1} all: $* aka ${mycodes[@]}"
seq=""
local i
for ((i = 0; i < ${#mycodes[@]}; i++)); do
if [[ -n $seq ]]; then
seq="${seq};"
fi
seq="${seq}${mycodes[$i]}"
done
debug "ansi debug:" '\\[\\033['${seq}'m\\]'
echo -ne '\[\033['${seq}'m\]'
# PR="$PR\[\033[${seq}m\]"
}
function ansi_single {
echo -ne '\[\033['$1'm\]'
}
# Begin a segment
# Takes two arguments, background and foreground. Both can be omitted,
# rendering default background/foreground.
function prompt_segment {
local bg fg
local -a codes
debug "Prompting $1 $2 $3"
# if commented out from kruton's original... I'm not clear
# if it did anything, but it messed up things like
# prompt_status - Erik 1/14/17
# if [[ -z $1 || ( -z $2 && $2 != default ) ]]; then
codes=("${codes[@]}" $(text_effect reset))
# fi
if [[ -n $1 ]]; then
bg=$(bg_color $1)
codes=("${codes[@]}" $bg)
debug "Added $bg as background to codes"
fi
if [[ -n $2 ]]; then
fg=$(fg_color $2)
codes=("${codes[@]}" $fg)
debug "Added $fg as foreground to codes"
fi
debug "Codes: "
# local -p codes
if [[ $CURRENT_BG != NONE && $1 != $CURRENT_BG ]]; then
local -a intermediate=($(fg_color $CURRENT_BG) $(bg_color $1))
debug "pre prompt " $(ansi intermediate[@])
PR="$PR $(ansi intermediate[@])$SEGMENT_SEPARATOR"
debug "post prompt " $(ansi codes[@])
PR="$PR$(ansi codes[@]) "
else
debug "no current BG, codes is $codes[@]"
PR="$PR$(ansi codes[@]) "
fi
CURRENT_BG=$1
[[ -n $3 ]] && PR="$PR$3"
}
# End the prompt, closing any open segments
function prompt_end {
if [[ -n $CURRENT_BG ]]; then
local -a codes=($(text_effect reset) $(fg_color $CURRENT_BG))
PR="$PR $(ansi codes[@])$SEGMENT_SEPARATOR"
fi
local -a reset=($(text_effect reset))
PR="$PR $(ansi reset[@])"
CURRENT_BG=''
}
### virtualenv prompt
function prompt_virtualenv {
# Exclude pyenv
[[ $PYENV_VIRTUALENV_INIT == 1 ]] && _omb_util_binary_exists pyenv && return 0
if [[ -d $VIRTUAL_ENV ]]; then
# Python could output the version information in both stdout and
# stderr (e.g. if using pyenv, the output goes to stderr).
local VERSION_OUTPUT=$("$VIRTUAL_ENV"/bin/python --version 2>&1)
# The last word of the output of `python --version`
# corresponds to the version number.
local VENV_VERSION=$(awk '{print $NF}' <<< "$VERSION_OUTPUT")
prompt_segment cyan white "[v] $(basename "$VENV_VERSION")"
fi
}
### pyenv prompt
function prompt_pyenv {
if [[ $PYENV_VIRTUALENV_INIT == 1 ]] && _omb_util_binary_exists pyenv; then
# Priority is shell > local > global
# When pyenv shell is set, the environment variable $PYENV_VERSION is set with the value we want
if [[ ! ${PYENV_VERSION-} ]]; then
# If not set, fall back to pyenv local/global to get the version
local PYENV_VERSION=$(pyenv local 2>/dev/null || pyenv global 2>/dev/null)
fi
# If it is not the system's python, then display additional info
if [[ "$PYENV_VERSION" != "system" ]]; then
# It's a pyenv virtualenv, get the version number
if [[ -d $PYENV_VIRTUAL_ENV ]]; then
local VERSION_OUTPUT=$("$PYENV_VIRTUAL_ENV"/bin/python --version 2>&1)
local PYENV_VENV_VERSION=$(awk '{print $NF}' <<< "$VERSION_OUTPUT")
prompt_segment cyan white "[$PYENV_VERSION] $(basename "$PYENV_VENV_VERSION")"
else
prompt_segment cyan white "$PYENV_VERSION"
fi
fi
fi
}
### conda env prompt
function prompt_condaenv {
if [[ -d $CONDA_PREFIX ]]; then
if [[ ! $CONDA_PROMPT_MODIFIER ]]; then
CONDA_PROMPT_MODIFIER=$(basename "$CONDA_PREFIX")
fi
local CONDA_PYTHON_VERSION=$("$CONDA_PREFIX"/bin/python -c 'import platform;print(platform.python_version())')
prompt_segment cyan white "[c] $CONDA_PROMPT_MODIFIER $CONDA_PYTHON_VERSION"
fi
}
### Prompt components
# Each component will draw itself, and hide itself if no information needs to be shown
# Context: user@hostname (who am I and where am I)
function prompt_context {
local user=$(whoami)
if [[ $user != $DEFAULT_USER || -n $SSH_CLIENT ]]; then
prompt_segment black default "$user@\h"
fi
}
# prints history followed by HH:MM, useful for remembering what
# we did previously
function prompt_histdt {
prompt_segment black default "\! [\A]"
}
function git_status_dirty {
dirty=$(command git status -s 2> /dev/null | tail -n 1)
[[ -n $dirty ]] && echo " ●"
}
function git_stash_dirty {
stash=$(command git stash list 2> /dev/null | tail -n 1)
[[ -n $stash ]] && echo " ⚑"
}
# Git: branch/detached head, dirty status
function prompt_git {
local ref dirty
if command git rev-parse --is-inside-work-tree &>/dev/null; then
ZSH_THEME_GIT_PROMPT_DIRTY='±'
dirty=$(git_status_dirty)
stash=$(git_stash_dirty)
ref=$(command git symbolic-ref HEAD 2> /dev/null) ||
ref="$(command git describe --exact-match --tags HEAD 2> /dev/null)" ||
ref="$(command git show-ref --head -s --abbrev | head -n1 2> /dev/null)"
if [[ -n $dirty ]]; then
prompt_segment yellow black
else
prompt_segment green black
fi
PR="$PR${ref/refs\/heads\// }$stash$dirty"
fi
}
# Mercurial: clean, modified and uncomitted files
function prompt_hg {
local rev st branch
if hg id &>/dev/null; then
if hg prompt &>/dev/null; then
if [[ $(hg prompt "{status|unknown}") == '?' ]]; then
# if files are not added
prompt_segment red white
st='±'
elif [[ $(hg prompt "{status|modified}") ]]; then
# if any modification
prompt_segment yellow black
st='±'
else
# if working copy is clean
prompt_segment green black $CURRENT_FG
fi
PR="$PR$(hg prompt "☿ {rev}@{branch}") $st"
else
st=""
rev=$(hg id -n 2>/dev/null | sed 's/[^-0-9]//g')
branch=$(hg id -b 2>/dev/null)
if hg st | grep -q "^\?"; then
prompt_segment red white
st='±'
elif hg st | grep -q "^[MA]"; then
prompt_segment yellow black
st='±'
else
prompt_segment green black $CURRENT_FG
fi
PR="$PR$rev@$branch $st"
fi
fi
}
# Dir: current working directory
function prompt_dir {
prompt_segment blue black '\w'
}
# Status:
# - was there an error
# - am I root
# - are there background jobs?
function prompt_status {
local symbols
symbols=()
[[ $RETVAL -ne 0 ]] && symbols+="$(ansi_single $(fg_color red))"
[[ $UID -eq 0 ]] && symbols+="$(ansi_single $(fg_color yellow))"
[[ $(jobs -l | wc -l) -gt 0 ]] && symbols+="$(ansi_single $(fg_color cyan))"
[[ -n "$symbols" ]] && prompt_segment black default "$symbols"
}
######################################################################
#
# experimental right prompt stuff
# requires setting prompt_foo to use PRIGHT vs PR
# doesn't quite work per above
function rightprompt {
printf "%*s" $COLUMNS "$PRIGHT"
}
# quick right prompt I grabbed to test things.
function __command_rprompt {
local times= n=$COLUMNS tz
for tz in ZRH:Europe/Zurich PIT:US/Eastern \
MTV:US/Pacific TOK:Asia/Tokyo; do
[ $n -gt 40 ] || break
times="$times ${tz%%:*}\e[30;1m:\e[0;36;1m"
times="$times$(TZ=${tz#*:} date +%H:%M)\e[0m"
n=$(( $n - 10 ))
done
[ -z "$times" ] || printf "%${n}s$times\\r" ''
}
# this doens't wrap code in \[ \]
function ansi_r {
local seq
local -a mycodes2=("${!1}")
debug "ansi: ${!1} all: $* aka ${mycodes2[@]}"
seq=""
local i
for ((i = 0; i < ${#mycodes2[@]}; i++)); do
if [[ -n $seq ]]; then
seq="${seq};"
fi
seq="${seq}${mycodes2[$i]}"
done
debug "ansi debug:" '\\[\\033['${seq}'m\\]'
echo -ne '\033['${seq}'m'
# PR="$PR\[\033[${seq}m\]"
}
# Begin a segment on the right
# Takes two arguments, background and foreground. Both can be omitted,
# rendering default background/foreground.
function prompt_right_segment {
local bg fg
local -a codes
debug "Prompt right"
debug "Prompting $1 $2 $3"
# if [[ -z $1 || ( -z $2 && $2 != default ) ]]; then
codes=("${codes[@]}" $(text_effect reset))
# fi
if [[ -n $1 ]]; then
bg=$(bg_color $1)
codes=("${codes[@]}" $bg)
debug "Added $bg as background to codes"
fi
if [[ -n $2 ]]; then
fg=$(fg_color $2)
codes=("${codes[@]}" $fg)
debug "Added $fg as foreground to codes"
fi
debug "Right Codes: "
# local -p codes
local -a intermediate2=($(fg_color $1) $(bg_color $CURRENT_RBG) )
# PRIGHT="$PRIGHT---"
debug "pre prompt " $(ansi_r intermediate2[@])
PRIGHT="$PRIGHT$(ansi_r intermediate2[@])$RIGHT_SEPARATOR"
debug "post prompt " $(ansi_r codes[@])
PRIGHT="$PRIGHT$(ansi_r codes[@]) "
# else
# debug "no current BG, codes is $codes[@]"
# PRIGHT="$PRIGHT$(ansi codes[@]) "
# fi
CURRENT_RBG=$1
[[ -n $3 ]] && PRIGHT="$PRIGHT$3"
}
######################################################################
## Emacs prompt --- for dir tracking
function prompt_emacsdir {
# no color or other setting... this will be deleted per above
PR="DIR \w DIR$PR"
}
######################################################################
## Main prompt
function build_prompt {
[[ ! -z ${AG_EMACS_DIR+x} ]] && prompt_emacsdir
prompt_status
#[[ -z ${AG_NO_HIST+x} ]] && prompt_histdt
[[ -z ${AG_NO_CONTEXT+x} ]] && prompt_context
if [[ ${OMB_PROMPT_SHOW_PYTHON_VENV-} ]]; then
prompt_virtualenv
prompt_pyenv
prompt_condaenv
fi
prompt_dir
prompt_git
prompt_hg
prompt_end
}
function _omb_theme_PROMPT_COMMAND {
local RETVAL=$?
local PRIGHT=""
local CURRENT_BG=NONE
local PR="$(ansi_single $(text_effect reset))"
build_prompt
# uncomment below to use right prompt
# PS1='\[$(tput sc; printf "%*s" $COLUMNS "$PRIGHT"; tput rc)\]'$PR
PS1=$PR
}
_omb_util_add_prompt_command _omb_theme_PROMPT_COMMAND

91
.config/omp.toml Normal file
View file

@ -0,0 +1,91 @@
version = 2
final_space = true
console_title_template = '{{ .Shell }} in {{ .Folder }}'
[[blocks]]
type = 'prompt'
alignment = 'left'
newline = true
[[blocks.segments]]
type = 'path'
style = 'diamond'
leading_diamond = ''
trailing_diamond = ''
template = '{{ path .Path .Location }} '
background = 'p:beige'
foreground = 'p:black'
[blocks.segments.properties]
style = 'agnoster_full'
[blocks.segments.properties.mapped_locations]
"~" = ""
"~/Downloads" = "󰇚"
"~/Workspace" = " "
[[blocks.segments]]
type = 'git'
style = 'diamond'
trailing_diamond = ''
leading_diamond = '<transparent,background></>'
background_templates = [
'{{ if or (.Working.Changed) (.Staging.Changed) }}p:yellow{{ end }}',
'{{ if and (gt .Ahead 0) (gt .Behind 0) }}p:red{{ end }}',
'{{ if gt .Ahead 0 }}#49416D{{ end }}',
'{{ if gt .Behind 0 }}#7A306C{{ end }}',
]
template = ' {{ if .UpstreamURL }}{{ .UpstreamIcon }}{{ end }}{{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }}  {{ .Working.String }}{{ end }}{{ if .Staging.Changed }}  {{ .Staging.String }}{{ end }} '
background = 'p:green'
foreground = 'p:black'
[blocks.segments.properties]
branch_max_length = 25
fetch_status = true
fetch_upstream_icon = true
[[blocks.segments]]
type = 'root'
style = 'powerline'
powerline_symbol = '60°, 10'
template = '  '
background = 'p:yellow'
foreground = 'p:white'
[[blocks.segments]]
type = 'node'
style = 'diamond'
trailing_diamond = ''
leading_diamond = '<transparent,background></>'
template = 'JS  '
background = 'p:gray'
foreground = 'p:green'
[blocks.segments.properties]
display_mode = 'files'
fetch_package_manager = false
home_enabled = false
[[blocks.segments]]
type = 'go'
style = 'diamond'
trailing_diamond = ''
leading_diamond = '<transparent,background></>'
template = 'Go  '
background = 'p:gray'
foreground = 'p:cyan'
[transient_prompt]
template = "\ue285 "
[palette]
black = '#11111b'
gray = '#6c7086'
blue = '#89b4fa'
cyan = '#74c7ec'
green = '#a6e3a1'
orange = '#fab387'
red = '#f38ba8'
white = '#cdd6f4'
yellow = '#f9e2af'
beige = '#f2cdcd'

3
.config/ssh/.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
*
!.gitignore
config

19
.config/ssh/config Normal file
View file

@ -0,0 +1,19 @@
Host git.euph.dev
User git
HostName git.euph.dev
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitea-snoweuph
Host github.com
User git
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github-snoweuph
Host portainer.admin.euph.site
User root
Port 69
IdentityFile ~/.ssh/admin-yubikey-primary
IdentityFile ~/.ssh/admin-yubikey-secondary
IdentitiesOnly yes

3
.config/systemd/install.sh Executable file
View file

@ -0,0 +1,3 @@
#!/bin/sh
command -v ra-multiplex &>/dev/null || cargo install ra-multiplex

View file

@ -0,0 +1,9 @@
[Unit]
Description=Multiplex Rust Analyzer Sessions, for a fast LSP experience
[Service]
Type=simple
ExecStart=/usr/bin/zsh -l -c 'exec "$@"' _ ra-multiplex server
[Install]
WantedBy=default.target

30
.gitconfig Normal file
View file

@ -0,0 +1,30 @@
[user]
name = Snoweuph
email = snow+git@euph.email
signingkey = 99ED4727EFBFF719
[commit]
gpgSign = true
[push]
autosetupremote = true
[help]
autoCorrect = prompt
[core]
editor = nvim
pager = delta
commentChar = ";"
[diff]
colorMoved = default
[fetch]
prune = true
prunetags = true
[alias]
adog ="!git-graph --model=trunk --color=always | LESS='-R' less"
fl = push --force-with-lease
prune-branches = "!git fetch -p && git branch -vv | grep ': gone]' | awk '{print $1}' | xargs -r git branch -d"
show-last-commit = diff HEAD^

61
.gitignore vendored
View file

@ -1,49 +1,32 @@
# Ignore All # Ignore Everything By Default
* /*
# Include .gitignore # Include Git Files
!.gitignore !.gitignore
!.gitmodules
# Include Readme.md # Include Git config
!Readme.md !.gitconfig
# Include Rice-bowl Dir # Include bash config
!rice-bowl/**/* !.bash_profile
!rice-bowl/* !.bashrc
!rice-bowl/ !.profile
# Include I3 Dir # Include zsh config
!i3/**/* !.zshrc
!i3/
# Include Awesone Dir # Include config
!awesome/**/* !.config/
!awesome
# Include Picom Dir # Include ssh Symlink
!picom/**/* !.ssh
!picom/
# Include Polybar Dir # Include Gnupg
!polybar/**/* !.gnupg/
!polybar
# Include Allacrity Dir # Include Resource
!alacritty/**/* !Resources/
!alacritty/
# Include Flameshot Dir # Include local
!flameshot/**/* !.local/
!flameshot/
# Include Cava Dir
!cava/**/*
!cava/
# Include Rofi Dir
!rofi/**/*
!rofi/
# Include Dunst Dir
!dunst/**/*
!dunst/

4
.gitmodules vendored Normal file
View file

@ -0,0 +1,4 @@
[submodule "nvim"]
path = .config/nvim
url = git@git.euph.dev:Snoweuph/Dotfiles_nvim.git
branch = master

1
.gnupg/gpg-agent.conf Normal file
View file

@ -0,0 +1 @@
enable-ssh-support

12
.gnupg/sshcontrol Normal file
View file

@ -0,0 +1,12 @@
# List of allowed ssh keys. Only keys present in this file are used
# in the SSH protocol. The ssh-add tool may add new entries to this
# file to enable them; you may also add them manually. Comment
# lines, like this one, as well as empty lines are ignored. Lines do
# have a certain length limit but this is not serious limitation as
# the format of the entries is fixed and checked by gpg-agent. A
# non-comment line starts with optional white spaces, followed by the
# keygrip of the key given as 40 hex digits, optionally followed by a
# caching TTL in seconds, and another optional field for arbitrary
# flags. Prepend the keygrip with an '!' mark to disable it.
F0DAEE5CEB66D4072981216F672366437DC9D04

6
.local/.gitignore vendored Normal file
View file

@ -0,0 +1,6 @@
# Ignore Everything By Default
/*
!.gitignore
# Include Share
!share/

6
.local/share/.gitignore vendored Normal file
View file

@ -0,0 +1,6 @@
# Ignore Everything By Default
/*
!.gitignore
# Include dotfiles
!dotfiles/

View file

@ -0,0 +1,3 @@
#!/bin/sh
cargo install git-graph

9
.profile Normal file
View file

@ -0,0 +1,9 @@
# System
export PATH="$PATH/$HOME/.local/bin"
# Volta
export VOLTA_HOME="$HOME/.local/share/volta"
export PATH="$VOLTA_HOME/bin:$PATH"
# Jetbrains Toolbox
export PATH="$PATH:/home/snoweuph/.local/share/JetBrains/Toolbox/scripts"

1
.ssh Symbolic link
View file

@ -0,0 +1 @@
./.config/ssh

107
.zshrc Normal file
View file

@ -0,0 +1,107 @@
# Oh My Posh
#########################################################
export PATH=$PATH:"$HOME/.local/bin"
OMP_EXECUTABLE="${XDG_DATA_HOME:-${HOME}/.local}/bin/oh-my-posh"
[ ! -f $OMP_EXECUTABLE ] && curl -s https://ohmyposh.dev/install.sh | bash -s
eval "$(oh-my-posh init zsh --config ~/.config/omp.toml)"
# Zinit
#########################################################
ZINIT_HOME="${XDG_DATA_HOME:-${HOME}/.local/share}/zinit/zinit.git"
[ ! -d $ZINIT_HOME ] && mkdir -p "$(dirname $ZINIT_HOME)"
[ ! -d $ZINIT_HOME/.git ] && git clone https://github.com/zdharma-continuum/zinit.git "$ZINIT_HOME"
source "${ZINIT_HOME}/zinit.zsh"
# Core Plugins
zinit snippet OMZP::command-not-found
zinit snippet OMZP::colored-man-pages
zinit light zsh-users/zsh-autosuggestions
zinit light zdharma-continuum/fast-syntax-highlighting
autoload -Uz compinit
compinit
# Basic ZSH
#########################################################
# History
HISTFILE=~/.histfile
HISTSIZE=10000
SAVEHIST=1000
# Disable Bell
unsetopt beep
# Keybinding
bindkey '\e[1;5C' forward-word
bindkey '\e[1;5D' backward-word
WORDCHARS="_-" # Define These Characters as Part of "Words"
# Application Envs
#########################################################
# GPG
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
fi
export GPG_TTY=$(tty)
gpg-connect-agent updatestartuptty /bye >/dev/null
# Git
zinit snippet OMZP::git
# Containerization
zinit snippet OMZP::docker-compose
zinit snippet OMZP::podman
zinit snippet OMZP::toolbox
# NPM
export npm_config_cache="$HOME/.cache/npm"
export npm_config_prefix="$HOME/.local/share/npm"
export npm_config_userconfig="$HOME/.config/npmrc"
export npm_config_loglevel="verbose"
export npm_config_log="$HOME/.local/share/npm/logs"
# Volta
export VOLTA_HOME="$HOME/.local/share/volta"
[ ! -d $VOLTA_HOME ] && curl https://get.volta.sh | bash -s -- --skip-setup && volta install node@lts
# Go
export GOPATH=~/.local/share/go
export GOBIN=$GOPATH/bin
# Rust
export CARGO_HOME=$HOME/.local/share/cargo
export RUSTUP_HOME=$HOME/.local/share/rustup
zinit snippet OMZP::rust
# Php
export COMPOSER_HOME=$HOME/.local/share/composer
zinit snippet OMZP::composer
zinit snippet OMZP::symfony6
# ROCM
export HSA_OVERRIDE_GFX_VERSION=10.3.0 # RX 6650 XT
# Just
export JUST_UNSTABLE=1
# PATH
export PATH=$PATH:$VOLTA_HOME/bin:$GOBIN:$CARGO_HOME/bin:$COMPOSER_HOME/vendor/bin
# Install Dependencies
command -v go &>/dev/null || sudo dnf install go
[ ! -d $RUSTUP_HOME ] && curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --no-modify-path -y
command -v composer &>/dev/null || sudo dnf install composer
# Install Scripts
$HOME/.config/install.sh
# Aliases
#########################################################
alias edit-nvim-conf="nvim ~/.config/nvim"
alias edit-zsh-conf="nvim ~/.zshrc"
alias hist="eval \$(cat $HISTFILE | fzf)"
alias nano="nvim"
alias neofetch="fastfetch"

177
Readme.md
View file

@ -1,167 +1,32 @@
## Rice Bowl # Dotfiles
I've created a Dir under .config called Rice Bowl which is something like the Rice Controller / Master ## Submodules
### Intallation - [Dotfiles/Template](https://git.euph.dev/Snoweuph/Dotfiles_template)
- Install the software that is used by this tat you want to used - [Dotfiles/nvim](https://git.euph.dev/Snoweuph/Dotfiles_nvim)
- clone repository `git clone git@git.euph.dev:snoweuph/Dotfiles.git`
- run install script that is located under `Dotfiles/rice-bowl/script/install.sh`
- set paths and other values in config under `.config/rice-bowl/config`
- run generate script once to generate config files `.config/rice-bowl/Scripts/generate_config.sh`
## Software Used ## Setup
### Base ### Install Dependencies
- Shell: ZSH > [NOTE]
- Terminal: Alacritty > Parts of the Dotfiles automatic Dependency resolution relies on **dnf** the Fedora package Manager.
- Display Manager: > This is why only **dnf** is listed here.
- Window Manager: I3
- Compositor: Picom
- Program Launcher: Rofi
- Panel: Polybar
- Notification Server: Dunst
- Audio Server: Pipewire
### Progress ```sh
sudo dnf install -y curl wget tar unzip gzip git make just fzf
- [x] Alacritty
- [x] i3
- [x] feh
- [x] dunst
- [x] picom
- [x] polybar
- [x] rofi
- [x] cava
- [x] flameshot
### CLI
- System Monitor: HTop
- Music Visualizer: Cava
- Image Viewer: Feh
- Fetch: Neofetch
### GUI
## Dir
### Tree
```
".config/"
|__"rice-bowl/"
| |__"demon.sh"
| |__"config.sh"
| |
| |__"config/"
| | |__"paths.sh"
| | |__"fonts.sh"
| | |__"styling.sh"
| |
| |__"scripts/"
| | |__"generate_config.sh"
| | |
| | |__"generators/"
| | |__"generate_<generator>_config.sh"
| |
| |__"themes/"
| |__"<theme>.sh"
|
|__"rofi/"
| |__"scripts/"
| | |__"<script-name>/"
| | |__"<script-name>.sh"
| | |__"<script-name>.rasi"
| |
| |__"themes/"
| |__"<theme-name>.rasi"
|
|__"i3/"
| |__"config"
| |
| |__"conf/"
| | |__"colors.conf"
| | |__"fonts.conf"
| | |__"bindings.conf"
| | |__"apps.conf"
| | |__"apps2.conf"
| | |__"workspaces.conf"
| | |__"styling.conf"
| | |__"styling1.conf
| | |__"rules.conf"
| |
| |__"scripts"
| |__"polybar.sh"
| |__"<script-name>.sh"
|
|__"picom/"
| |__"picom.conf"
|
|__"dunst/"
| |__"dunstrc"
| |
| |__"dunstrc.d"
| |__"00-colors.conf"
| |__"10-fonts.conf"
| |__"50-bindings.conf"
| |__"80-styling.conf"
|
|__"polybar/"
| |__"launch.sh"
| |__"config.ini"
| |
| |__"config/"
| | |__"colors.ini"
| | |__"fonts.ini"
| | |__"styling.ini"
| |
| |__"modules/"
| | |__"<module-name>/"
| | |__"<module-name>.ini"
| | |__"?<module-name>.sh"
| | |
| | |__"?config/"
| | |__"<module-name>.conf"
| |
| |__"bars/"
| |__"<bar-name>.ini"
|
|__"alacritty/"
| |__"alacritty.yml"
| |
| |__"config/"
| |__"colors.yml"
| |__"fonts.yml"
| |__"styling.yml"
``` ```
### Files ### Install
#### rice-bowl/config/paths.txt > [CAUTION]
> This is a **destructive installation** and will **overwrite** existing conflicting files.
```sh
cd ~ && \
git init -b neo && \
git remote add origin https://git.euph.dev/Snoweuph/Dotfiles.git && \
git fetch --all && \
git reset --hard origin/neo && \
git submodule update --init --recursive
``` ```
config-dir =
images-dir =
wallpaper-dir =
screenshot-dir =
```
## Themeing Engines
- GTK
- gtkrc
- gtk 2
- gtk 3
- gtk 4
### Important Envoirment Variables
- GTK_RC_FILES
- GTK2_RC_FILES
### Tools
*All of these are their names under fedora*
- qt5 - qt5ct
- qt4 - qtconfig-qt4 (provided by qtconfig)
- gtk - lxappearance

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,7 +0,0 @@
# This File is Automaticly Generated. Changes inside of this won't persist. For more Information Look into /home/snoweuph/.config/rice-bowl
#Import Config
import:
- /home/snoweuph/.config/alacritty/config/colors.nogit.yml
- /home/snoweuph/.config/alacritty/config/fonts.nogit.yml
- /home/snoweuph/.config/alacritty/config/styling.nogit.yml

View file

@ -1 +0,0 @@
*.nogit.yml

View file

@ -1,46 +0,0 @@
local gears = require("gears")
local awful = require("awful")
clientkeys = gears.table.join(
awful.key({ modkey, }, "f",
function (c)
c.fullscreen = not c.fullscreen
c:raise()
end,
{description = "toggle fullscreen", group = "client"}),
awful.key({ modkey, "Shift" }, "q", function (c) c:kill() end,
{description = "close", group = "client"}),
awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle ,
{description = "toggle floating", group = "client"}),
awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end,
{description = "move to master", group = "client"}),
awful.key({ modkey, }, "o", function (c) c:move_to_screen() end,
{description = "move to screen", group = "client"}),
awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end,
{description = "toggle keep on top", group = "client"}),
awful.key({ modkey, }, "n",
function (c)
-- The client currently has the input focus, so it cannot be
-- minimized, since minimized clients can't have the focus.
c.minimized = true
end ,
{description = "minimize", group = "client"}),
awful.key({ modkey, }, "m",
function (c)
c.maximized = not c.maximized
c:raise()
end ,
{description = "(un)maximize", group = "client"}),
awful.key({ modkey, "Control" }, "m",
function (c)
c.maximized_vertical = not c.maximized_vertical
c:raise()
end ,
{description = "(un)maximize vertically", group = "client"}),
awful.key({ modkey, "Shift" }, "m",
function (c)
c.maximized_horizontal = not c.maximized_horizontal
c:raise()
end ,
{description = "(un)maximize horizontally", group = "client"})
)

View file

@ -1,31 +0,0 @@
-- Require Libs
local gears = require("gears")
local awful = require("awful")
-- List of All Layouts
--[[
awful.layout.suit.floating
awful.layout.suit.tile
awful.layout.suit.tile.left
awful.layout.suit.tile.bottom
awful.layout.suit.tile.top
awful.layout.suit.fair
awful.layout.suit.fair.horizontal
awful.layout.suit.spiral
awful.layout.suit.spiral.dwindle
awful.layout.suit.max
awful.layout.suit.max.fullscreen
awful.layout.suit.magnifier
awful.layout.suit.corner.nw
awful.layout.suit.corner.ne
awful.layout.suit.corner.sw
awful.layout.suit.corner.se
]]--
-- Table of layouts to Use, Order Matters
awful.layout.layouts = {
awful.layout.suit.tile,
awful.layout.suit.floating,
awful.layout.suit.spiral,
awful.layout.suit.max.fullscreen,
}

View file

@ -1,33 +0,0 @@
-- This File is Automaticly Generated. Changes inside of this won't persist. For more Information Look into /home/snoweuph/.config/rice-bowl
-- Check if Lua Roocks, aka Import lib is installed
pcall(require, "luarocks.loader")
-- Require Libs
local naughty = require("naughty")
-- Check For Errors, fallback if found any
if awesome.startup_errors then
naughty.notify({ preset = naughty.config.presets.critical,
title = "Oops, there were errors during startup!",
text = awesome.startup_errors })
end
do
local in_error = false
awesome.connect_signal("debug::error", function (err)
-- Make sure we don't go into an endless error loop
if in_error then return end
in_error = true
naughty.notify({ preset = naughty.config.presets.critical,
title = "Oops, an error happened!",
text = tostring(err) })
in_error = false
end)
end
-- Import Themp Lua File
dofile ("/home/snoweuph/.config/awesome/themp.lua")

View file

@ -1,472 +0,0 @@
-- Standard awesome library
local gears = require("gears")
local awful = require("awful")
require("awful.autofocus")
-- Widget and layout library
local wibox = require("wibox")
-- Theme handling library
local beautiful = require("beautiful")
-- Notification library
local naughty = require("naughty")
local menubar = require("menubar")
local hotkeys_popup = require("awful.hotkeys_popup")
-- Enable hotkeys help widget for VIM and other apps
-- when client with a matching name is opened:
require("awful.hotkeys_popup.keys")
-- {{{ Variable definitions
-- Themes define colours, icons, font and wallpapers.
beautiful.init(gears.filesystem.get_themes_dir() .. "default/theme.lua")
-- This is used later as the default terminal and editor to run.
terminal = "alacritty"
editor = os.getenv("EDITOR") or "nano"
editor_cmd = terminal .. " -e " .. editor
-- Default modkey.
-- Usually, Mod4 is the key with a logo between Control and Alt.
-- If you do not like this or do not have such a key,
-- I suggest you to remap Mod4 to another key using xmodmap or other tools.
-- However, you can use another modifier like Mod1, but it may interact with others.
modkey = "Mod4"
dofile ("/home/snoweuph/.config/awesome/config/layouts.lua")
-- {{{ Menu
-- Create a launcher widget and a main menu
myawesomemenu = {
{ "hotkeys", function() hotkeys_popup.show_help(nil, awful.screen.focused()) end },
{ "manual", terminal .. " -e man awesome" },
{ "edit config", editor_cmd .. " " .. awesome.conffile },
{ "restart", awesome.restart },
{ "quit", function() awesome.quit() end },
}
mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
{ "open terminal", terminal }
}
})
mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
menu = mymainmenu })
-- Menubar configuration
menubar.utils.terminal = terminal -- Set the terminal for applications that require it
-- }}}
-- Keyboard map indicator and switcher
mykeyboardlayout = awful.widget.keyboardlayout()
-- {{{ Wibar
-- Create a textclock widget
mytextclock = wibox.widget.textclock()
-- Create a wibox for each screen and add it
local taglist_buttons = gears.table.join(
awful.button({ }, 1, function(t) t:view_only() end),
awful.button({ modkey }, 1, function(t)
if client.focus then
client.focus:move_to_tag(t)
end
end),
awful.button({ }, 3, awful.tag.viewtoggle),
awful.button({ modkey }, 3, function(t)
if client.focus then
client.focus:toggle_tag(t)
end
end),
awful.button({ }, 4, function(t) awful.tag.viewnext(t.screen) end),
awful.button({ }, 5, function(t) awful.tag.viewprev(t.screen) end)
)
local tasklist_buttons = gears.table.join(
awful.button({ }, 1, function (c)
if c == client.focus then
c.minimized = true
else
c:emit_signal(
"request::activate",
"tasklist",
{raise = true}
)
end
end),
awful.button({ }, 3, function()
awful.menu.client_list({ theme = { width = 250 } })
end),
awful.button({ }, 4, function ()
awful.client.focus.byidx(1)
end),
awful.button({ }, 5, function ()
awful.client.focus.byidx(-1)
end))
local function set_wallpaper(s)
-- Wallpaper
if beautiful.wallpaper then
local wallpaper = beautiful.wallpaper
-- If wallpaper is a function, call it with the screen
if type(wallpaper) == "function" then
wallpaper = wallpaper(s)
end
gears.wallpaper.maximized(wallpaper, s, true)
end
end
-- Re-set wallpaper when a screen's geometry changes (e.g. different resolution)
screen.connect_signal("property::geometry", set_wallpaper)
awful.screen.connect_for_each_screen(function(s)
-- Wallpaper
set_wallpaper(s)
-- Each screen has its own tag table.
awful.tag({ "1", "2", "3", "4", "5", "6", "7", "8", "9" }, s, awful.layout.layouts[1])
-- Create a promptbox for each screen
s.mypromptbox = awful.widget.prompt()
-- Create an imagebox widget which will contain an icon indicating which layout we're using.
-- We need one layoutbox per screen.
s.mylayoutbox = awful.widget.layoutbox(s)
s.mylayoutbox:buttons(gears.table.join(
awful.button({ }, 1, function () awful.layout.inc( 1) end),
awful.button({ }, 3, function () awful.layout.inc(-1) end),
awful.button({ }, 4, function () awful.layout.inc( 1) end),
awful.button({ }, 5, function () awful.layout.inc(-1) end)))
-- Create a taglist widget
s.mytaglist = awful.widget.taglist {
screen = s,
filter = awful.widget.taglist.filter.all,
buttons = taglist_buttons
}
-- Create a tasklist widget
s.mytasklist = awful.widget.tasklist {
screen = s,
filter = awful.widget.tasklist.filter.currenttags,
buttons = tasklist_buttons
}
-- Create the wibox
s.mywibox = awful.wibar({ position = "top", screen = s })
-- Add widgets to the wibox
s.mywibox:setup {
layout = wibox.layout.align.horizontal,
{ -- Left widgets
layout = wibox.layout.fixed.horizontal,
mylauncher,
s.mytaglist,
s.mypromptbox,
},
s.mytasklist, -- Middle widget
{ -- Right widgets
layout = wibox.layout.fixed.horizontal,
mykeyboardlayout,
wibox.widget.systray(),
mytextclock,
s.mylayoutbox,
},
}
end)
-- }}}
-- {{{ Mouse bindings
root.buttons(gears.table.join(
awful.button({ }, 3, function () mymainmenu:toggle() end),
awful.button({ }, 4, awful.tag.viewnext),
awful.button({ }, 5, awful.tag.viewprev)
))
-- }}}
-- {{{ Key bindings
globalkeys = gears.table.join(
awful.key({ modkey, }, "s", hotkeys_popup.show_help,
{description="show help", group="awesome"}),
awful.key({ modkey, }, "Left", awful.tag.viewprev,
{description = "view previous", group = "tag"}),
awful.key({ modkey, }, "Right", awful.tag.viewnext,
{description = "view next", group = "tag"}),
awful.key({ modkey, }, "Escape", awful.tag.history.restore,
{description = "go back", group = "tag"}),
awful.key({ modkey, }, "j",
function ()
awful.client.focus.byidx( 1)
end,
{description = "focus next by index", group = "client"}
),
awful.key({ modkey, }, "k",
function ()
awful.client.focus.byidx(-1)
end,
{description = "focus previous by index", group = "client"}
),
awful.key({ modkey, }, "w", function () mymainmenu:show() end,
{description = "show main menu", group = "awesome"}),
-- Layout manipulation
awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end,
{description = "swap with next client by index", group = "client"}),
awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end,
{description = "swap with previous client by index", group = "client"}),
awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end,
{description = "focus the next screen", group = "screen"}),
awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end,
{description = "focus the previous screen", group = "screen"}),
awful.key({ modkey, }, "u", awful.client.urgent.jumpto,
{description = "jump to urgent client", group = "client"}),
awful.key({ modkey, }, "Tab",
function ()
awful.client.focus.history.previous()
if client.focus then
client.focus:raise()
end
end,
{description = "go back", group = "client"}),
-- Standard program
awful.key({ modkey, }, "Return", function () awful.spawn(terminal) end,
{description = "open a terminal", group = "launcher"}),
awful.key({ modkey, "Control" }, "r", awesome.restart,
{description = "reload awesome", group = "awesome"}),
awful.key({ modkey, "Shift" }, "e", awesome.quit,
{description = "quit awesome", group = "awesome"}),
awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end,
{description = "increase master width factor", group = "layout"}),
awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end,
{description = "decrease master width factor", group = "layout"}),
awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1, nil, true) end,
{description = "increase the number of master clients", group = "layout"}),
awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1, nil, true) end,
{description = "decrease the number of master clients", group = "layout"}),
awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1, nil, true) end,
{description = "increase the number of columns", group = "layout"}),
awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1, nil, true) end,
{description = "decrease the number of columns", group = "layout"}),
awful.key({ modkey, }, "space", function () awful.layout.inc( 1) end,
{description = "select next", group = "layout"}),
awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(-1) end,
{description = "select previous", group = "layout"}),
awful.key({ modkey, "Control" }, "n",
function ()
local c = awful.client.restore()
-- Focus restored client
if c then
c:emit_signal(
"request::activate", "key.unminimize", {raise = true}
)
end
end,
{description = "restore minimized", group = "client"}),
-- Prompt
awful.key({ modkey }, "d", function () awful.spawn.with_shell("rofi -show drun") end,
{description = "run prompt", group = "launcher"}),
awful.key({ modkey }, "x",
function ()
awful.prompt.run {
prompt = "Run Lua code: ",
textbox = awful.screen.focused().mypromptbox.widget,
exe_callback = awful.util.eval,
history_path = awful.util.get_cache_dir() .. "/history_eval"
}
end,
{description = "lua execute prompt", group = "awesome"})
)
dofile ("/home/snoweuph/.config/awesome/bindings.lua")
-- Bind all key numbers to tags.
-- Be careful: we use keycodes to make it work on any keyboard layout.
-- This should map on the top row of your keyboard, usually 1 to 9.
for i = 1, 9 do
globalkeys = gears.table.join(globalkeys,
-- View tag only.
awful.key({ modkey }, "#" .. i + 9,
function ()
local screen = awful.screen.focused()
local tag = screen.tags[i]
if tag then
tag:view_only()
end
end,
{description = "view tag #"..i, group = "tag"}),
-- Toggle tag display.
awful.key({ modkey, "Control" }, "#" .. i + 9,
function ()
local screen = awful.screen.focused()
local tag = screen.tags[i]
if tag then
awful.tag.viewtoggle(tag)
end
end,
{description = "toggle tag #" .. i, group = "tag"}),
-- Move client to tag.
awful.key({ modkey, "Shift" }, "#" .. i + 9,
function ()
if client.focus then
local tag = client.focus.screen.tags[i]
if tag then
client.focus:move_to_tag(tag)
end
end
end,
{description = "move focused client to tag #"..i, group = "tag"}),
-- Toggle tag on focused client.
awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
function ()
if client.focus then
local tag = client.focus.screen.tags[i]
if tag then
client.focus:toggle_tag(tag)
end
end
end,
{description = "toggle focused client on tag #" .. i, group = "tag"})
)
end
clientbuttons = gears.table.join(
awful.button({ }, 1, function (c)
c:emit_signal("request::activate", "mouse_click", {raise = true})
end),
awful.button({ modkey }, 1, function (c)
c:emit_signal("request::activate", "mouse_click", {raise = true})
awful.mouse.client.move(c)
end),
awful.button({ modkey }, 3, function (c)
c:emit_signal("request::activate", "mouse_click", {raise = true})
awful.mouse.client.resize(c)
end)
)
-- Set keys
root.keys(globalkeys)
-- }}}
-- {{{ Rules
-- Rules to apply to new clients (through the "manage" signal).
awful.rules.rules = {
-- All clients will match this rule.
{ rule = { },
properties = { border_width = beautiful.border_width,
border_color = beautiful.border_normal,
focus = awful.client.focus.filter,
raise = true,
keys = clientkeys,
buttons = clientbuttons,
screen = awful.screen.preferred,
placement = awful.placement.no_overlap+awful.placement.no_offscreen
}
},
-- Floating clients.
{ rule_any = {
instance = {
"DTA", -- Firefox addon DownThemAll.
"copyq", -- Includes session name in class.
"pinentry",
},
class = {
"Arandr",
"Blueman-manager",
"Gpick",
"Kruler",
"MessageWin", -- kalarm.
"Sxiv",
"Tor Browser", -- Needs a fixed window size to avoid fingerprinting by screen size.
"Wpa_gui",
"veromix",
"xtightvncviewer"},
-- Note that the name property shown in xprop might be set slightly after creation of the client
-- and the name shown there might not match defined rules here.
name = {
"Event Tester", -- xev.
},
role = {
"AlarmWindow", -- Thunderbird's calendar.
"ConfigManager", -- Thunderbird's about:config.
"pop-up", -- e.g. Google Chrome's (detached) Developer Tools.
}
}, properties = { floating = true }},
-- Add titlebars to normal clients and dialogs
{ rule_any = {type = { "normal", "dialog" }
}, properties = { titlebars_enabled = true }
},
-- Set Firefox to always map on the tag named "2" on screen 1.
-- { rule = { class = "Firefox" },
-- properties = { screen = 1, tag = "2" } },
}
-- }}}
-- {{{ Signals
-- Signal function to execute when a new client appears.
client.connect_signal("manage", function (c)
-- Set the windows at the slave,
-- i.e. put it at the end of others instead of setting it master.
-- if not awesome.startup then awful.client.setslave(c) end
if awesome.startup
and not c.size_hints.user_position
and not c.size_hints.program_position then
-- Prevent clients from being unreachable after screen count changes.
awful.placement.no_offscreen(c)
end
end)
-- Add a titlebar if titlebars_enabled is set to true in the rules.
client.connect_signal("request::titlebars", function(c)
-- buttons for the titlebar
local buttons = gears.table.join(
awful.button({ }, 1, function()
c:emit_signal("request::activate", "titlebar", {raise = true})
awful.mouse.client.move(c)
end),
awful.button({ }, 3, function()
c:emit_signal("request::activate", "titlebar", {raise = true})
awful.mouse.client.resize(c)
end)
)
awful.titlebar(c) : setup {
{ -- Left
awful.titlebar.widget.iconwidget(c),
buttons = buttons,
layout = wibox.layout.fixed.horizontal
},
{ -- Middle
{ -- Title
align = "center",
widget = awful.titlebar.widget.titlewidget(c)
},
buttons = buttons,
layout = wibox.layout.flex.horizontal
},
{ -- Right
awful.titlebar.widget.floatingbutton (c),
awful.titlebar.widget.maximizedbutton(c),
awful.titlebar.widget.stickybutton (c),
awful.titlebar.widget.ontopbutton (c),
awful.titlebar.widget.closebutton (c),
layout = wibox.layout.fixed.horizontal()
},
layout = wibox.layout.align.horizontal
}
end)
-- Enable sloppy focus, so that focus follows mouse.
client.connect_signal("mouse::enter", function(c)
c:emit_signal("request::activate", "mouse_enter", {raise = false})
end)
client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end)
client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
-- }}}

View file

@ -1,16 +0,0 @@
# This File is Automaticly Generated. Changes inside of this won't persist. For more Information Look into /home/snoweuph/.config/rice-bowl
[output]
method = ncurses
[color]
gradient = 1
gradient_count = 8
gradient_color_1 = '#5e81ac'
gradient_color_2 = '#7db0d1'
gradient_color_3 = '#7ebdbc'
gradient_color_4 = '#80bf83'
gradient_color_5 = '#adbf7c'
gradient_color_6 = '#ebcb8b'
gradient_color_7 = '#d08770'
gradient_color_8 = '#bf616a'

View file

@ -1,69 +0,0 @@
# See dunst(5) for all configuration options
[global]
### Display ###
monitor = 0
follow = none
origin = top-right
scale = 0
notification_limit = 5
### Progress bar ###
progress_bar = true
progress_bar_height = 10
progress_bar_frame_width = 1
progress_bar_min_width = 150
progress_bar_max_width = 300
indicate_hidden = yes
transparency = 0
separator_height = 2
padding = 8
horizontal_padding = 8
text_icon_padding = 0
separator_color = frame
sort = yes
line_height = 0
markup = full
format = "<b>%s</b>\n%b"
alignment = left
vertical_alignment = center
show_age_threshold = 60
ellipsize = middle
ignore_newline = no
stack_duplicates = true
hide_duplicate_count = false
show_indicators = yes
### Icons ###
enable_recursive_icon_lookup = true
icon_theme = Adwaita
icon_position = left
min_icon_size = 32
max_icon_size = 128
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
### History ###
sticky_history = yes
history_length = 20
### Misc/Advanced ###
dmenu = /usr/bin/dmenu -p dunst:
browser = /usr/bin/xdg-open
always_run_script = true
title = Dunst
class = Dunst
ignore_dbusclose = false
### mouse
mouse_left_click = close_current
mouse_middle_click = do_action, close_current
mouse_right_click = close_all
[urgency_low]
timeout = 10
[urgency_normal]
timeout = 10
[urgency_critical]
timeout = 0

View file

@ -1 +0,0 @@
*.nogit.conf

View file

@ -1,11 +0,0 @@
# This File is Automaticly Generated. Changes inside of this won't persist. For more Information Look into /home/snoweuph/.config/rice-bowl
[General]
uiColor=#937db5
contrastUiColor=#5e81ac
drawColor=#7db0d1
userColors=picker, #7db0d1, #5e81ac, #937db5
disabledTrayIcon=true

View file

@ -1,6 +0,0 @@
[General]
contrastOpacity=204
contrastUiColor=#5e81ac
disabledTrayIcon=truedrawColor=#81a1c1
uiColor=#88c0d0
userColors=picker, #2e3440, #bf616a, #b48ead

1
i3/conf/.gitignore vendored
View file

@ -1 +0,0 @@
*.nogit.conf

View file

@ -1,28 +0,0 @@
##########################
# Configure Apps #
##########################
# Include Generated Version
include ./apps.nogit.conf
# Make Volume Function Keys Work
set $refresh_i3status killall -SIGUSR1 i3status
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status # Increase Volume
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status # Decrease Volume
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status # Mute Speaker
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status # Mute Mic
bindsym $mod+Return exec alacritty # open a Terminal
bindsym $mod+d exec --no-startup-id rofi -show drun # open Rofi
bindsym $mod+b exec --no-startup-id firefox # open a Browser
# Set Lockscreen for Suspending
exec --no-startup-id xss-lock --transfer-sleep-lock --i3lock --nofork
# KDE Connect
exec --no-startup-id kdeconnect-indicator
# Pulsemeeter
exec --no-startup-id pulsemeeter

View file

@ -1,23 +0,0 @@
##########################
# Configure Apps #
##########################
# Include Generated Version
include ./apps.nogit.conf
# Make Volume Function Keys Work
set $refresh_i3status killall -SIGUSR1 i3status
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status # Increase Volume
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status # Decrease Volume
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status # Mute Speaker
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status # Mute Mic
# Set Lockscreen for Suspending
exec --no-startup-id xss-lock --transfer-sleep-lock --i3lock --nofork
#KDE Connect
exec --no-startup-id kdeconnect-indicator

View file

@ -1,65 +0,0 @@
##########################
# Configure Key Bindings #
##########################
# reload the configuration file
bindsym $mod+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart
# change focus
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# move focused window
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacked
bindsym $mod+t layout tabbed
bindsym $mod+w layout toggle split
# Set Split Mode
bindsym $mod+h split h
bindsym $mod+v split v
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# resize window (you can also use the mouse for that)
bindsym $mod+r mode "resize"
mode "resize" {
# Pressing left will shrink the windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
bindsym Left resize shrink width 5 px or 5ppt
bindsym Down resize shrink height 5 px or 5 ppt
bindsym Up resize grow height 5 px or 5 ppt
bindsym Right resize grow width 5 px or 5 ppt
# back to normal: Enter or Escape or $mod+r
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+r mode "default"
}
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# kill focused window
bindsym $mod+Shift+q kill

View file

@ -1,23 +0,0 @@
##########################
# Configure Rules #
##########################
# Firefox
assign [class="(?i)Firefox"] 1
# Coding Related Windows
assign [class="(?i)Godot"] 3
assign [class="(?i)Code - OSS"] 3
assign [class="(?i)Gittyup"] 4
# Gaming Related Windows
assign [class="(?i)Heroic"] 5
assign [class="(?i)Steam"] 5
# Discord
assign [class="(?i)Discord"] 6
# Pulsemeeter
assign [class="(?i)Pulsemeeter"] 10

View file

@ -1,55 +0,0 @@
##########################
# Configure Workspaces #
##########################
# Set Monitor Variables (get list with xrandr --listmonitors)
set $monitor1 "DisplayPort-0"
set $monitor2 "DisplayPort-1"
set $monitor3 "DVI-D-0"
# Set Base Variables
set $ws1 "1"
set $ws2 "2"
set $ws3 "3"
set $ws4 "4"
set $ws5 "5"
set $ws6 "6"
set $ws7 "7"
set $ws8 "8"
set $ws9 "9"
set $ws10 "10"
# Bind Workspaces to Screens
workspace $ws1 output $monitor1
workspace $ws2 output $monitor1
workspace $ws3 output $monitor2
workspace $ws4 output $monitor2
workspace $ws5 output $monitor2
workspace $ws6 output $monitor3
workspace $ws7 output $monitor3
# switch to workspace
bindsym $mod+1 workspace number $ws1
bindsym $mod+2 workspace number $ws2
bindsym $mod+3 workspace number $ws3
bindsym $mod+4 workspace number $ws4
bindsym $mod+5 workspace number $ws5
bindsym $mod+6 workspace number $ws6
bindsym $mod+7 workspace number $ws7
bindsym $mod+8 workspace number $ws8
bindsym $mod+9 workspace number $ws9
bindsym $mod+0 workspace number $ws10
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace number $ws1
bindsym $mod+Shift+2 move container to workspace number $ws2
bindsym $mod+Shift+3 move container to workspace number $ws3
bindsym $mod+Shift+4 move container to workspace number $ws4
bindsym $mod+Shift+5 move container to workspace number $ws5
bindsym $mod+Shift+6 move container to workspace number $ws6
bindsym $mod+Shift+7 move container to workspace number $ws7
bindsym $mod+Shift+8 move container to workspace number $ws8
bindsym $mod+Shift+9 move container to workspace number $ws9
bindsym $mod+Shift+0 move container to workspace number $ws10

View file

@ -1,25 +0,0 @@
#############################################################################
# i3 config file (v4) #
# Please see https://i3wm.org/docs/userguide.html for a complete reference! #
#############################################################################
# Set Mod Key
set $mod Mod4
##########################
# Include Files #
##########################
# Bindings
include ./conf/bindings.conf
# Workspaces
include ./conf/workspaces.conf
# Styling
include ./conf/styling.nogit.conf
# Fonts
include ./conf/fonts.nogit.conf
# Applications
include ./conf/apps.conf
# Application Rules
include ./conf/rules.conf

1
picom/.gitignore vendored
View file

@ -1 +0,0 @@
*.nogit.conf

View file

@ -1,35 +0,0 @@
#################################
# Base #
#################################
use-damage = true;
backend= "glx";
#################################
# Shadows #
#################################
shadow = false;
shadow-radius = 7;
shadow-offset-x = -7;
shadow-offset-y = -7;
shadow-exclude = [
"name = 'Notification'",
"class_g = 'Conky'",
"class_g ?= 'Notify-osd'",
"class_g = 'Cairo-clock'",
"_GTK_FRAME_EXTENTS@:c"
];
#################################
# Fading #
#################################
fading = true;
fade-in-step = 0.1;
fade-out-step = 0.1;
#################################
# Transparency / Opacity #
#################################
inactive-opacity-override = false;
focus-exclude = [ "class_g = 'Cairo-clock'" ];

1
polybar/.gitignore vendored
View file

@ -1 +0,0 @@
**.nogit.ini

View file

@ -1,13 +0,0 @@
[bar/main]
inherit = base/bar
modules-left = cpm space-invert sep-b
modules-center = single-xworkspaces
modules-right = pulseaudio space sep-a space-invert dunst-snooze space-invert sep-b space time space sep-a date space-invert
tray-position = left
tray-detached = true
tray-scale = 0.9
tray-offset-x = 130
tray-offset-y = 3

View file

@ -1,13 +0,0 @@
[bar/single]
inherit = base/bar
modules-left = cpm space-invert sep-b
modules-center = xworkspaces
modules-right = pulseaudio space sep-a space-invert dunst-snooze space-invert sep-b space time space sep-a date space-invert
tray-position = left
tray-detached = true
tray-scale = 0.9
tray-offset-x = 130
tray-offset-y = 3

View file

@ -1,17 +0,0 @@
[bar/workspaces]
inherit = base/bar
modules-center = single-xworkspaces
bottom = true
width = 12%
offset-x = ${style.double-gaps}
offset-y = ${style.double-gaps}
border-size = ${style.border-thickness}
border-bottom-size = ${style.border-thickness}
border-color = ${colors.primary-accent}
override-redirect = true
wm-restack = ${env:RESTACK:}

View file

@ -1,10 +0,0 @@
include-file = ~/.config/polybar/config.d/colors.nogit.ini
include-file = ~/.config/polybar/config.d/fonts.nogit.ini
include-file = ~/.config/polybar/config.d/exec.nogit.ini
include-file = ~/.config/polybar/config.d/style.nogit.ini
include-file = ~/.config/polybar/settings.nogit.ini
include-directory = ~/.config/polybar/modules
include-directory = ~/.config/polybar/bars

View file

@ -1,7 +0,0 @@
[module/cava]
type = custom/script
tail = true
exec = "${exec.cava}"
format = <label>
label-font = 3
label = "%output%"

View file

@ -1,10 +0,0 @@
[module/cpm]
type = custom/script
exec = ~/.config/polybar/scripts/cpm.sh
tail = true
label = " %output%"
label-font = 3
label-background = ${colors.primary-accent}
label-foreground = ${colors.primary-background}

View file

@ -1,11 +0,0 @@
[module/date]
type = internal/date
interval = 1
date = %d.%m
label-font = 3
label = "%date%"
label-background = ${colors.primary-accent}
label-foreground = ${colors.primary-background}

View file

@ -1,9 +0,0 @@
[module/dunst-snooze]
type = custom/script
exec = "${exec.dunst-snooze}"
tail = true
click-left = ~/.config/polybar/scripts/dunst-snooze.sh --toggle &
label = "%output%"
label-background = ${colors.primary-accent}
label-foreground = ${colors.primary-background}

View file

@ -1,18 +0,0 @@
[module/pulseaudio]
type = internal/pulseaudio
format-volume-prefix = " "
format-volume-prefix-background = ${colors.primary-background }
format-volume-prefix-foreground = ${colors.primary-accent}
format-volume = <label-volume>
label-volume = "%percentage%"
label-volume-background = ${colors.primary-background }
label-volume-foreground = ${colors.primary-accent}
label-muted = " 婢 "
label-muted-foreground = ${colors.alert}
label-muted-background = ${colors.primary-background }
interval = 5
click-right = pavucontrol

View file

@ -1,12 +0,0 @@
[module/sep-a]
type = custom/text
content =
content-foreground = ${colors.primary-accent}
content-background = ${colors.primary-background}
content-font = 2
[module/sep-b]
type = custom/text
content =
content-foreground = ${colors.primary-accent}
content-background = ${colors.primarybackground}
content-font = 2

View file

@ -1,48 +0,0 @@
[module/single-xworkspaces]
type = internal/xworkspaces
#Icons
#  Consoles
# ﭮ Discord
#  Firefox
#  Music
#  Code
#  Steam
#  Files
icon-default = ""
icon-0 = "1;"
icon-1 = "2;"
icon-2 = "3;"
icon-3 = "4;"
icon-4 = "5;"
icon-5 = "6;ﭮ"
icon-9 = "10;"
icon-6 = "7"
icon-7 = "8"
icon-8 = "9"
label-active = "%icon%"
label-active-background = ${colors.primary-accent}
label-active-foreground = ${colors.primary-background}
label-active-underline = ${colors.primary-accent}
label-active-padding = 0
label-active-font = 2
label-occupied = %icon%
label-occupied-padding = 1
label-occupied-font = 2
label-urgent = %icon%
label-urgent-foreground = ${colors.warn}
label-urgent-padding = 1
label-urgent-font = 2
label-empty = %icon%
label-empty-padding = 1
label-empty-font = 2
pin-workspaces = true

View file

@ -1,9 +0,0 @@
[module/space]
type = custom/text
content = ""
content-padding = 3pt
[module/space-invert]
type = custom/text
content = ""
content-background = ${colors.primary-accent}
content-padding = 3pt

View file

@ -1,11 +0,0 @@
[module/time]
type = internal/date
interval = 1
date = %H:%M
label-font = 3
label = " %date%"
label-foreground = ${colors.primary-accent}
label-background = ${colors.primary-background}

View file

@ -1,4 +0,0 @@
[module/xwindow]
type = internal/xwindow
label = %title:0:60:...%
format-foreground = ${colors.primary-accent}

View file

@ -1,46 +0,0 @@
[module/xworkspaces]
type = internal/xworkspaces
#Icons
#  Consoles
# ﭮ Discord
#  Firefox
#  Music
#  Code
#  Steam
#  Files
icon-default = ""
icon-0 = "1;"
icon-1 = "2;"
icon-2 = "3;"
icon-3 = "4;"
icon-4 = "5;"
icon-5 = "6;ﭮ"
icon-9 = "10;"
icon-6 = "7"
icon-7 = "8"
icon-8 = "9"
label-active = "%icon%"
label-active-background = ${colors.primary-accent}
label-active-foreground = ${colors.primary-background}
label-active-underline = ${colors.primary-accent}
label-active-padding = 0
label-active-font = 2
label-occupied = %icon%
label-occupied-padding = 1
label-occupied-font = 2
label-urgent = %icon%
label-urgent-foreground = ${colors.warn}
label-urgent-padding = 1
label-urgent-font = 2
label-empty = %icon%
label-empty-padding = 1
label-empty-font = 2

View file

@ -1,65 +0,0 @@
#!/bin/bash
#bar="▁▂▃▄▅▆▇█"
# make sure to clean pipe
pipe="/tmp/cava.fifo"
if [ -p $pipe ]; then
unlink $pipe
fi
mkfifo $pipe
# write cava config
config_file="/tmp/polybar_cava_config"
echo "
[general]
bars = 9
[output]
method = raw
raw_target = $pipe
data_format = ascii
ascii_max_range = 7
" > $config_file
# run cava in the background
cava -p $config_file &
#bar="▁▂▃▄▅▆▇█"
# reading data from fifo
while read -r cmd; do
i=0
output=""
while [ $i -lt $((${#cmd}/2)) ]
do
number="${cmd:$i*2:1}"
i=$((i=i+1))
case "$number" in
0)
output="$output$(echo "%{F$1}▁")"
;;
1)
output="$output$(echo "%{F$2}▂")"
;;
2)
output="$output$(echo "%{F$3}▃")"
;;
3)
output="$output$(echo "%{F$4}▄")"
;;
4)
output="$output$(echo "%{F$5}▅")"
;;
5)
output="$output$(echo "%{F$6}▆")"
;;
6)
output="$output$(echo "%{F$7}▇")"
;;
7)
output="$output$(echo "%{F$8}█")"
esac
done
echo $output
done < $pipe

View file

@ -1,64 +0,0 @@
#!/bin/sh
# shellcheck disable=SC2016,SC2059
KEYBOARD_ID="Cooler Master Technology Inc. SK650"
# cpm: characters per minute
# wpm: words per minute (1 word = 5 characters)
METRIC=cpm
FORMAT=" %d$METRIC"
INTERVAL=2,5
# If you have a keyboard layout that is not listed here yet, create a condition
# yourself. $3 is the key index. Use `xinput test "AT Translated Set 2 keyboard"`
# to see key codes in real time. Be sure to open a pull request for your
# layout's condition!
LAYOUT=qwerty
case "$LAYOUT" in
qwerty) CONDITION='($3 >= 10 && $3 <= 19) || ($3 >= 24 && $3 <= 33) || ($3 >= 37 && $3 <= 53) || ($3 >= 52 && $3 <= 58)'; ;;
azerty) CONDITION='($3 >= 10 && $3 <= 19) || ($3 >= 24 && $3 <= 33) || ($3 >= 37 && $3 <= 54) || ($3 >= 52 && $3 <= 57)'; ;;
qwertz) CONDITION='($3 >= 10 && $3 <= 20) || ($3 >= 24 && $3 <= 34) || ($3 == 36) || ($3 >= 38 && $3 <= 48) || ($3 >= 52 && $3 <= 58)'; ;;
dvorak) CONDITION='($3 >= 10 && $3 <= 19) || ($3 >= 27 && $3 <= 33) || ($3 >= 38 && $3 <= 47) || ($3 >= 53 && $3 <= 61)'; ;;
dontcare) CONDITION='1'; ;; # Just register all key presses, not only letters and numbers
*) echo "Unsupported layout \"$LAYOUT\""; exit 1; ;;
esac
# We have to account for the fact we're not listening a whole minute
multiply_by=60
divide_by=$INTERVAL
case "$METRIC" in
wpm) divide_by=$((divide_by * 5)); ;;
cpm) ;;
*) echo "Unsupported metric \"$METRIC\""; exit 1; ;;
esac
hackspeed_cache="$(mktemp -p '' hackspeed_cache.XXXXX)"
trap 'rm "$hackspeed_cache"' EXIT
# Write a dot to our cache for each key press
printf '' > "$hackspeed_cache"
xinput test "$KEYBOARD_ID" | \
stdbuf -o0 awk '$1 == "key" && $2 == "press" && ('"$CONDITION"') {printf "."}' >> "$hackspeed_cache" &
while true; do
# Ask the kernel how big the file is with the command `stat`. The number we
# get is the file size in bytes, which equals the amount of dots the file
# contains, and hence how much keys were pressed since the file was last
# cleared.
lines=$(stat --format %s "$hackspeed_cache")
# Truncate the cache file so that in the next iteration, we count only new
# keypresses
printf '' > "$hackspeed_cache"
# The shell only does integer operations, so make sure to first multiply and
# then divide
value=$((lines * multiply_by / divide_by))
printf "$FORMAT\\n" "$value"
sleep $INTERVAL
done

View file

@ -1,14 +0,0 @@
#!/bin/sh
case "$1" in
--toggle)
dunstctl set-paused toggle
;;
*)
if [ "$(dunstctl is-paused)" = "true" ]; then
echo "%{F$2} $(dunstctl count waiting)"
else
echo "%{F$1} $(dunstctl count displayed)"
fi
;;
esac

View file

@ -1,18 +0,0 @@
#!/bin/bash
killall -q polybar
restack_list=('' 'i3' '')
i=0
while read bar; do
if [[ $i -eq 0 ]]; then
# Launch Main Bar
MONITOR=$bar polybar main 2>&1 | tee -a /tmp/polybar_$bar.log & disown
else
# Launch Sub Bar
MONITOR=$bar RESTACK=${restack_list[$i]} polybar workspaces 2>&1 | tee -a /tmp/polybar_$bar.log & disown
fi
i=$((i + 1))
done < <(polybar -M | cut -d ':' -f 1)

View file

@ -1,9 +0,0 @@
#!/bin/bash
SH_DIR_config=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
RICE_GENERATED_HEADER="This File is Automaticly Generated. Changes inside of this won't persist. For more Information Look into $SH_DIR_config"
source $SH_DIR_config/config/paths.sh
source $SH_DIR_config/config/fonts.sh
source $SH_DIR_config/config/styling.sh

View file

@ -1,13 +0,0 @@
#!/bin/bash
RICE_FONT_NORMAL="Hack Nerd Font"
RICE_FONT_MONO="Hack Nerd Font Mono"
RICE_FONT_ICONS="Hack Nerd Font Mono"
RICE_FONT_SIZE_SMALL=14
RICE_FONT_SIZE_NORMAL=18
RICE_FONT_SIZE_BIG=26
RICE_FONT_SIZE_ICONS_SMALL=22
RICE_FONT_SIZE_ICONS_NORMAL=28
RICE_FONT_SIZE_ICONS_BIG=64

View file

@ -1,9 +0,0 @@
#!/bin/bash
RICE_DIR_CONFIG=~/.config
RICE_DIR_RICE_BOWL=$RICE_DIR_CONFIG/rice-bowl
RICE_DIR_AUTORUN=~/.autorun
RICE_DIR_FONTS=/usr/share/fonts
RICE_DIR_IMAGES=~/Bilder
RICE_DIR_WALLPAPER=$RICE_DIR_IMAGES/Wallpaper
RICE_DIR_SCREENSHOTS=$RICE_DIR_IMAGES/Screenshots

View file

@ -1,18 +0,0 @@
#!/bin/bash
RICE_THEME=nord
RICE_PADDING=4
RICE_GAPS=8
RICE_DPI=96
RICE_ELEMENT_HEIGHT_SMALL=22
RICE_ELEMENT_HEIGHT_MEDIUM=$(($((RICE_ELEMENT_HEIGHT_SMALL*9))/2))
RICE_ELEMENT_HEIGHT_BIG=$(($((RICE_ELEMENT_HEIGHT_MEDIUM*9))/2))
RICE_BORDER_RADIUS=8
RICE_BORDER_THICKNESS=2
RICE_OPACITY_FLOAT="0.8"
RICE_INACTIVE_OPACITY_FLOAT="0.8"
ROCE_OPACITY_PERCENTAGE="80%"

View file

View file

@ -1,45 +0,0 @@
The work in the Hack project is Copyright 2018 Source Foundry Authors and licensed under the MIT License
The work in the DejaVu project was committed to the public domain.
Bitstream Vera Sans Mono Copyright 2003 Bitstream Inc. and licensed under the Bitstream Vera License with Reserved Font Names "Bitstream" and "Vera"
### MIT License
Copyright (c) 2018 Source Foundry Authors
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.
### BITSTREAM VERA LICENSE
Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is a trademark of Bitstream, Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy of the fonts accompanying this license ("Fonts") and associated documentation files (the "Font Software"), to reproduce and distribute the Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions:
The above copyright and trademark notices and this permission notice shall be included in all copies of one or more of the Font Software typefaces.
The Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or characters may be added to the Fonts, only if the fonts are renamed to names not containing either the words "Bitstream" or the word "Vera".
This License becomes null and void to the extent applicable to Fonts or Font Software that has been modified and is distributed under the "Bitstream Vera" names.
The Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself.
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
Except as contained in this notice, the names of Gnome, the Gnome Foundation, and Bitstream Inc., shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Font Software without prior written authorization from the Gnome Foundation or Bitstream Inc., respectively. For further information, contact: fonts at gnome dot org.

Some files were not shown because too many files have changed in this diff Show more