Compare commits

...

8 Commits

Author SHA1 Message Date
5714f8612c update configs 2024-11-11 02:30:59 +01:00
a0fb1d31f3 various updates, mainly hyprland 2024-10-29 01:14:57 +01:00
417c05c469 ignore Renviron 2024-08-21 01:25:31 +02:00
2a6d2cbb4d vscode changes 2024-08-21 01:24:33 +02:00
acd6b00420 changed some 2024-08-21 01:24:22 +02:00
319fceddd0 various 2024-04-03 00:08:40 +02:00
a1354d13fd bunch of config files 2024-03-30 01:19:14 +01:00
b9262745cb layout for gnu stow 2024-03-18 00:36:04 +01:00
34 changed files with 1550 additions and 59 deletions

6
.Rprofile Normal file
View File

@ -0,0 +1,6 @@
# Default CRAN repository
local({
r <- getOption("repos")
r["CRAN"] <- "https://cran.r-project.org"
options(repos=r)
})

View File

@ -50,57 +50,57 @@
"command": "workbench.files.action.focusFilesExplorer"
},
{
"key": "cmd+n",
"key": "ctrl+n",
"command": "explorer.newFile",
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
},
{
"key": "cmd+d",
"key": "ctrl+d",
"command": "explorer.newFolder",
"when": "filesExplorerFocus && foldersViewVisible && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
},
// ----------------- 3. SYMBOL MANAGEMENT ----------------
{
"key": "shift+cmd+r",
"key": "shift+ctrl+r",
"command": "editor.action.rename",
"when": "editorHasRenameProvider && editorTextFocus && !editorReadonly"
},
{
"key": "shift+cmd+i",
"key": "shift+ctrl+i",
"command": "editor.action.peekImplementation",
"when": "editorHasImplementationProvider && editorTextFocus && !inReferenceSearchEditor && !isInEmbeddedEditor"
},
{
"key": "shift+cmd+d",
"key": "shift+ctrl+d",
"command": "editor.action.revealDefinition",
"when": "editorHasDefinitionProvider && editorTextFocus && !isInEmbeddedEditor"
},
// ------------- 4. VARIOUS EDITOR SHORTCUTS -------------
{
"key": "cmd+d",
"key": "ctrl+d",
"command": "editor.action.copyLinesDownAction",
"when": "editorTextFocus && !editorReadonly"
},
{
"key": "cmd+t",
"key": "ctrl+t",
"command": "workbench.action.createTerminalEditor"
},
{
"key": "cmd+u",
"key": "ctrl+u",
"command": "workbench.action.showAllSymbols"
},
{
"key": "cmd+r",
"key": "ctrl+r",
"command": "editor.action.startFindReplaceAction",
"when": "editorFocus && findInputFocussed"
},
{
"key": "shift+cmd+w",
"key": "shift+ctrl+w",
"command": "workbench.action.closeAllGroups"
},
// ----------------- 4. REMOVED SHORTCUTS ----------------
{
"key": "cmd+d",
"key": "ctrl+d",
"command": "-editor.action.addSelectionToNextFindMatch",
"when": "editorFocus"
},
@ -110,28 +110,28 @@
"when": "editorTextFocus && !editorReadonly"
},
{
"key": "cmd+t",
"key": "ctrl+t",
"command": "-workbench.action.showAllSymbols"
},
{
"key": "cmd+u",
"key": "ctrl+u",
"command": "-cursorUndo",
"when": "textInputFocus"
},
{
"key": "cmd+k down",
"key": "ctrl+k down",
"command": "-workbench.action.moveActiveEditorGroupDown"
},
{
"key": "cmd+k left",
"key": "ctrl+k left",
"command": "-workbench.action.moveActiveEditorGroupLeft"
},
{
"key": "cmd+k right",
"key": "ctrl+k right",
"command": "-workbench.action.moveActiveEditorGroupRight"
},
{
"key": "cmd+k up",
"key": "ctrl+k up",
"command": "-workbench.action.moveActiveEditorGroupUp"
},
{
@ -150,20 +150,20 @@
"when": "editorHasRenameProvider && editorTextFocus && !editorReadonly"
},
{
"key": "shift+cmd+r",
"key": "shift+ctrl+r",
"command": "-rerunSearchEditorSearch",
"when": "inSearchEditor"
},
{
"key": "shift+cmd+w",
"key": "shift+ctrl+w",
"command": "-workbench.action.closeWindow"
},
{
"key": "cmd+k shift+cmd+w",
"key": "ctrl+k shift+ctrl+w",
"command": "-workbench.action.closeAllGroups"
},
{
"key": "shift+cmd+d",
"key": "shift+ctrl+d",
"command": "-workbench.view.debug",
"when": "viewContainer.workbench.view.debug.enabled"
},
@ -173,27 +173,63 @@
"when": "editorHasDefinitionProvider && editorTextFocus && !isInEmbeddedEditor"
},
{
"key": "shift+cmd+[Comma] cmd+i",
"key": "shift+ctrl+[Comma] ctrl+i",
"command": "-testing.toggleInlineTestOutput"
},
{
"key": "shift+cmd+i",
"key": "shift+ctrl+i",
"command": "-workbench.action.quickchat.toggle",
"when": "hasChatProvider"
},
{
"key": "shift+cmd+[Comma] shift+cmd+i",
"key": "shift+ctrl+[Comma] shift+ctrl+i",
"command": "-testing.toggleInlineCoverage",
"when": "testing.isTestCoverageOpen"
},
{
"key": "cmd+f12",
"key": "ctrl+f12",
"command": "-editor.action.goToImplementation",
"when": "editorHasImplementationProvider && editorTextFocus && !isInEmbeddedEditor"
},
{
"key": "shift+cmd+f12",
"key": "shift+ctrl+f12",
"command": "-editor.action.peekImplementation",
"when": "editorHasImplementationProvider && editorTextFocus && !inReferenceSearchEditor && !isInEmbeddedEditor"
},
{
"key": "alt+[BracketRight]",
"command": "jupyter.insertCellBelow",
"when": "editorTextFocus && jupyter.hascodecells && !jupyter.webExtension && !notebookEditorFocused"
},
{
"key": "ctrl+shift+[Comma] b",
"command": "-jupyter.insertCellBelow",
"when": "editorTextFocus && jupyter.hascodecells && !jupyter.webExtension && !notebookEditorFocused"
},
{
"key": "shift+alt+[BracketRight]",
"command": "jupyter.insertCellAbove",
"when": "editorTextFocus && jupyter.hascodecells && !jupyter.webExtension && !notebookEditorFocused"
},
{
"key": "ctrl+shift+[Comma] a",
"command": "-jupyter.insertCellAbove",
"when": "editorTextFocus && jupyter.hascodecells && !jupyter.webExtension && !notebookEditorFocused"
},
{
"key": "ctrl+down",
"command": "jupyter.gotoNextCellInFile"
},
{
"key": "ctrl+up",
"command": "jupyter.gotoPrevCellInFile"
},
{
"key": "ctrl+a a",
"command": "editor.action.selectAll"
},
{
"key": "ctrl+a",
"command": "-editor.action.selectAll"
},
]

View File

@ -1,8 +1,8 @@
{
//
// Appearance
"workbench.colorTheme": "Monokai Pro (Filter Octagon)",
"workbench.iconTheme": "Monokai Pro (Filter Octagon) Icons",
"workbench.colorTheme": "Monokai Pro",
"workbench.iconTheme": "Monokai Pro Icons",
"editor.fontFamily": "Fira Code, Menlo, Monaco, 'Courier New', monospace",
"editor.fontSize": 18,
"editor.fontWeight": "normal",
@ -11,6 +11,8 @@
"editor.minimap.renderCharacters": false,
"editor.suggestSelection": "first",
"vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue",
"window.titleBarStyle": "custom",
"workbench.sideBar.location": "right",
//
// Excluded files and directories
"files.exclude": {
@ -31,12 +33,6 @@
"editor.fontFamily"
],
//
// Various settings
"explorer.confirmDragAndDrop": false,
"workbench.startupEditor": "none",
"security.workspace.trust.untrustedFiles": "open",
"emmet.showExpandedAbbreviation": "never",
//
// Remote SSH
"remote.SSH.remotePlatform": {
"lab-pc07": "linux",
@ -53,6 +49,7 @@
//
// Python
"python.languageServer": "Default",
"python.createEnvironment.trigger": "off",
"[python]": {
"editor.formatOnSave": true,
"editor.rulers": [
@ -94,5 +91,25 @@
"editor.tabSize": 2,
"emmet.showAbbreviationSuggestions": false,
"editor.linkedEditing": true,
"editor.codeActionsOnSave": {
"source.organizeImports": "always"
}
},
//
// Hex Editor
"hexeditor.columnWidth": 4,
"hexeditor.showDecodedText": true,
"hexeditor.defaultEndianness": "little",
"hexeditor.inspectorType": "aside",
//
// Typst
"typst-lsp.exportPdf": "onType",
///
// Various settings
"explorer.confirmDragAndDrop": false,
"workbench.startupEditor": "none",
"security.workspace.trust.untrustedFiles": "open",
"emmet.showExpandedAbbreviation": "never",
"git.openRepositoryInParentFolders": "never",
"editor.selectionClipboard": false,
}

View File

@ -44,6 +44,6 @@
"python shebang" : {
"scope": "python",
"prefix": "sb",
"body": "#!/usr/bin/python3"
"body": "#!/usr/bin/env python3"
}
}

View File

@ -0,0 +1,81 @@
[colors]
draw_bold_text_with_bright_colors = false
[cursor.style]
shape = "Beam"
blinking = "On"
[font]
size = 16.0
[font.bold]
family = "Monaspace Neon"
style = "Regular"
[font.glyph_offset]
x = 0
y = 0
[font.italic]
family = "Monaspace Neon"
style = "Italic"
[font.normal]
family = "Monaspace Neon"
style = "Regular"
[font.offset]
x = 0
y = 0
[bell]
animation = "EaseOutExpo"
color = "0xffffff"
duration = 0
[debug]
log_level = "OFF"
persistent_logging = false
print_events = false
render_timer = false
[mouse]
bindings = [
{ action = "PasteSelection", mouse = "Middle" },
]
[keyboard]
bindings = [
{ key = "Back", mods = "Control", chars = "\u001b\u007f"}
]
[scrolling]
history = 100000
multiplier = 3
[selection]
save_to_clipboard = false
semantic_escape_chars = ",│`|:\"' ()[]{}<>"
[window]
decorations = "full"
blur = false
dynamic_padding = false
opacity = 1
startup_mode = "windowed"
title = "Terminal"
dynamic_title = false
[window.dimensions]
columns = 85
lines = 40
[window.padding]
x = 5
y = 5
[general]
live_config_reload = true
# Set the theme by changing the link 'themes/current.toml'
import = ["~/.config/alacritty/themes/current.toml"]

View File

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 128 128" style="display:inline;enable-background:new" version="1.0" id="svg11300" height="128" width="128">
<title id="title4162">Adwaita Icon Template</title>
<defs id="defs3">
<linearGradient id="linearGradient1948">
<stop id="stop1944" offset="0" style="stop-color:#2d2839;stop-opacity:1;"/>
<stop id="stop1946" offset="1" style="stop-color:#282433;stop-opacity:1"/>
</linearGradient>
<linearGradient id="linearGradient1020">
<stop id="stop1016" offset="0" style="stop-color:#ffffff;stop-opacity:1;"/>
<stop id="stop1018" offset="1" style="stop-color:#ffffff;stop-opacity:0.09411765"/>
</linearGradient>
<linearGradient id="linearGradient1001">
<stop id="stop989" offset="0" style="stop-color:#77767b;stop-opacity:1"/>
<stop style="stop-color:#c0bfbc;stop-opacity:1" offset="0.05" id="stop991"/>
<stop id="stop993" offset="0.09999998" style="stop-color:#9a9996;stop-opacity:1"/>
<stop style="stop-color:#9a9996;stop-opacity:1" offset="0.89999938" id="stop995"/>
<stop id="stop997" offset="0.94999999" style="stop-color:#c0bfbc;stop-opacity:1"/>
<stop id="stop999" offset="1" style="stop-color:#77767b;stop-opacity:1"/>
</linearGradient>
<linearGradient gradientUnits="userSpaceOnUse" y2="44" x2="464" y1="44" x1="48" id="linearGradient965" xlink:href="#linearGradient1001"/>
<radialGradient gradientUnits="userSpaceOnUse" gradientTransform="matrix(-4.7272726,7.935912e-7,-3.0301491e-7,-1.6363636,238.54547,49.766183)" r="44" fy="194.19048" fx="63.999996" cy="194.19048" cx="63.999996" id="radialGradient1030" xlink:href="#linearGradient1020"/>
<linearGradient gradientUnits="userSpaceOnUse" y2="269.13693" x2="70.346565" y1="245.39511" x1="70.346565" id="linearGradient1950" xlink:href="#linearGradient1948"/>
</defs>
<metadata id="metadata4">
</metadata>
<g transform="translate(0,-172)" style="display:inline" id="layer1">
<g style="display:inline" id="layer9">
<g transform="rotate(-30,420.69873,288.4192)" id="g1710" style="display:inline;enable-background:new"/>
<rect transform="matrix(0.25,0,0,0.25,0,225)" style="display:inline;opacity:1;fill:url(#linearGradient965);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" id="rect953" width="416" height="376" x="48" y="-124" rx="32" ry="32"/>
<rect ry="32" rx="32" y="-164" x="48" height="384" width="416" id="rect950" style="display:inline;opacity:1;fill:#deddda;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" transform="matrix(0.25,0,0,0.25,0,225)"/>
<rect transform="scale(1,-1)" ry="3.9999695" rx="4" y="-276" x="16" height="87.999969" width="96" id="rect1004" style="display:inline;opacity:1;vector-effect:none;fill:#241f31;fill-opacity:1;stroke:none;stroke-width:0.01121096px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"/>
<rect transform="scale(-1)" style="display:inline;opacity:0.05;vector-effect:none;fill:url(#radialGradient1030);fill-opacity:1;stroke:none;stroke-width:0.01121096px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" id="rect968" width="88" height="78" x="-108" y="-272"/>
<g id="g976" transform="translate(-2,-2)" style="fill:#ffffff">
<path d="M 44.012301,210.88755 30,203.27182 V 208 l 9.710724,4.62951 v 0.1422 L 30,218 v 4.72818 l 14.012301,-8.21451 z" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:'Source Code Pro';-inkscape-font-specification:'Source Code Pro, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.24999999" id="path972"/>
<path d="m 47.999998,226 2e-6,4 h 16.00001 l -2e-6,-4 z" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:1.25;font-family:'Source Code Pro';-inkscape-font-specification:'Source Code Pro, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.24999999" id="path974"/>
</g>
<path d="m 100,244 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m 84,4 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m 76,4 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m 84,4 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m 76,4 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m 84,4 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m 76,4 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z m -8,0 h 4 v 4 h -4 z" style="opacity:1;vector-effect:none;fill:url(#linearGradient1950);fill-opacity:1;stroke:none;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal" id="rect1059"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.4 KiB

View File

@ -0,0 +1 @@
dark/default.toml

View File

@ -0,0 +1,44 @@
# Alacritty's default color scheme pre-0.13 (based on tomorrow_night)
# https://github.com/alacritty/alacritty/blob/v0.12.3/alacritty/src/config/color.rs
[colors.primary]
foreground = "#c5c8c6"
background = "#1d1f21"
[colors.normal]
black = "#1d1f21"
red = "#cc6666"
green = "#b5bd68"
yellow = "#f0c674"
blue = "#81a2be"
magenta = "#b294bb"
cyan = "#8abeb7"
white = "#c5c8c6"
[colors.bright]
black = "#666666"
red = "#d54e53"
green = "#b9ca4a"
yellow = "#e7c547"
blue = "#7aa6da"
magenta = "#c397d8"
cyan = "#70c0b1"
white = "#eaeaea"
[colors.dim]
black = "#131415"
red = "#864343"
green = "#777c44"
yellow = "#9e824c"
blue = "#556a7d"
magenta = "#75617b"
cyan = "#5b7d78"
white = "#828482"
[colors.hints]
start = { foreground = "#1d1f21", background = "#e9ff5e" }
end = { foreground = "#e9ff5e", background = "#1d1f21" }
[colors.search]
matches = { foreground = "#000000", background = "#ffffff" }
focused_match = { foreground = "#ffffff", background = "#000000" }

View File

@ -0,0 +1 @@
alacritty-0-12.toml

View File

@ -0,0 +1,27 @@
[colors.bright]
black = "#505050"
blue = "#547C99"
cyan = "#7DD6CF"
green = "#7B9246"
magenta = "#9F4E85"
red = "#A53C23"
white = "#F5F5F5"
yellow = "#D3A04D"
[colors.cursor]
cursor = "0x4d4d4c"
text = "0xffffff"
[colors.normal]
black = "#151515"
blue = "#6C99BB"
cyan = "#7DD6CF"
green = "#7B9246"
magenta = "#9F4E85"
red = "#A53C23"
white = "#D0D0D0"
yellow = "#D3A04D"
[colors.primary]
background = "#222222"
foreground = "#D0D0D0"

View File

@ -0,0 +1 @@
google-light.toml

View File

@ -0,0 +1,27 @@
[colors.bright]
black = "#666666"
blue = "#0000ff"
cyan = "#00e5e5"
green = "#00d900"
magenta = "#e500e5"
red = "#e50000"
white = "#e5e5e5"
yellow = "#e5e500"
[colors.cursor]
cursor = "0x4d4d4c"
text = "0xffffff"
[colors.normal]
black = "#000000"
blue = "#0000b2"
cyan = "#00a6b2"
green = "#00a600"
magenta = "#b200b2"
red = "#990000"
white = "#bfbfbf"
yellow = "#999900"
[colors.primary]
background = "#f0f0f0"
foreground = "#000000"

128
.config/dunst/dunstrc Normal file
View File

@ -0,0 +1,128 @@
[global]
### Display ###
# Display notifications on monitor with mouse focus
follow = mouse
# Set {width}x{height} and {x_pos}+{y_pos}
geometry = "300x30-5+60"
# Show number of hidden notifications
indicate_hidden = yes
# Shrink window if smaller than width
shrink = no
# Set transparency of notifications
transparency = 0
# Height of whole notification
notification_height = 0
# Height of seperators
separator_height = 2
# Text and seperator padding
padding = 8
# Horizontal padding
horizontal_padding = 8
# Width of frame around window
frame_width = 1
# Color of frame around window
frame_color = "#595959"
# Sort messages by urgency
sort = yes
# Idle seconds
idle_threshold = 0
### Text ###
# Set font of notifications
font = Iosevka 10
# Spacing between lines
line-height = 0
# Markup parsing
markup = full
# Message format:
# %a - appname
# %s - summary
# %b - body
# %i - iconname (with path)
# %I - iconname (without path)
# %p - progress value (if set)
# %n - progress value no extra characters
# %% - literal %
format = "<b>%a</b>\n<i>%s</i>\n%b"
# Align message text horizontally
alignment = center
# Align message text vertically
vertical_alignment = center
# Show age of message if message is older than x seconds
show_age_threshold = -1
# Split notifications into multiple lines
word_wrap = no
# If message too long, add ellipsize to...
ellipsize = middle
# Ignore newlines in notifications
ignore_newline = no
# Stack duplicate notifications
stack_duplicates = true
# Hide number of duplicate notifications
hide_duplicate_count = true
# Show indicatiors for urls and actions
show_indicators = no
### Icons ###
# Disable icons
icon_position = off
### History ###
# Length of history
history_length = 20
### Misc ###
# Dmenu path
dmenu = /usr/bin/dmenu -p dunst:
# Browser
browser = /usr/bin/firefox -new-tab
# Always run scripts
always_run_script = true
# Title of notification
title = Dunst
# Notification class
class = Dunst
# Print notification on startup
startup_notification = false
# Dunst verbosity
verbosity = mesg
# Corner radius of dunst
corner_radius = 15
# Ignore dbus closeNotification message
ignore_dbusclose = false
### Mouse ###
# Left click
mouse_left_click = close_current
# Middle click
mouse_middle_click = do_action
# Right click
mouse_right_click = do_action
[shortcuts]
# Close one notification
close = ctrl+space
# Close all notifications
close_all = ctrl+shift+space
[urgency_normal]
# Normal urgency notifications
background = "#202632"
foreground = "#ffffff"
timeout = 5
[urgency_critical]
# High urgency notifications
background = "#ffffff"
foreground = "#db0101"
timeout = 0

193
.config/gSnap/layouts.json Normal file
View File

@ -0,0 +1,193 @@
{
"workspaces": [
[
{
"current": 2
},
{
"current": 3
}
],
[
{
"current": 2
},
{
"current": 3
}
]
],
"definitions": [
{
"name": "None",
"type": 0,
"length": 100,
"items": []
},
{
"name": "Default Monitor 0",
"type": 0,
"length": 100,
"items": [
{
"length": 33.358974358974365,
"items": []
},
{
"length": 66.64102564102564,
"items": []
}
]
},
{
"name" : "Default Monitor 1",
"type" : 1,
"length": 100,
"items" : [
{
"length": 38
},
{
"length" : 62
}
]
},
{
"name": "2 Column Split",
"type": 0,
"length": 100,
"items": [
{
"type": 1,
"length": 50,
"items": []
},
{
"type": 1,
"length": 50,
"items": []
}
]
},
{
"name": "3 Column",
"type": 0,
"length": 100,
"items": [
{
"type": 1,
"length": 33,
"items": []
},
{
"type": 1,
"length": 34,
"items": []
},
{
"type": 1,
"length": 33,
"items": []
}
]
},
{
"name": "3 Column (Focused)",
"type": 0,
"length": 100,
"items": [
{
"type": 1,
"length": 25,
"items": []
},
{
"type": 1,
"length": 50,
"items": []
},
{
"type": 1,
"length": 25,
"items": []
}
]
},
{
"name": "3 Columns (Custom)",
"type": 0,
"length": 100,
"items": [
{
"type": 1,
"length": 42,
"items": []
},
{
"type": 1,
"length": 16,
"items": [
{
"type": 0,
"length": 33,
"items": []
},
{
"type": 0,
"length": 34,
"items": []
},
{
"type": 0,
"length": 33,
"items": []
}
]
},
{
"type": 1,
"length": 42,
"items": []
}
]
},
{
"name" : "1920x1080 Centered",
"type" : 0,
"length" : 100,
"items" : [
{
"type" : 0,
"length" : 21.9,
"items" : []
},
{
"type" : 1,
"length" : 56.2,
"items" : [
{
"type" : 1,
"length" : 9.8,
"items" : []
},
{
"type" : 1,
"length" : 80.4,
"items" : []
},
{
"type" : 1,
"length" : 9.8,
"items" : []
}
]
},
{
"type" : 0,
"length" : 21.9,
"items" : []
}
]
}
]
}

2
.config/gdb/gdbinit Normal file
View File

@ -0,0 +1,2 @@
add-auto-load-safe-path /home/paul/code/ma/repo/scripts/gdb/vmlinux-gdb.py
add-auto-load-safe-path /home/paul/code/ma/morsel-linux-kernel/scripts/gdb/vmlinux-gdb.py

340
.config/hypr/hyprland.conf Normal file
View File

@ -0,0 +1,340 @@
# This is an example Hyprland config file.
# Refer to the wiki for more information.
# https://wiki.hyprland.org/Configuring/Configuring-Hyprland/
# Please note not all available settings / options are set here.
# For a full list, see the wiki
# You can split this configuration into multiple files
# Create your files separately and then link them to this file like this:
# source = ~/.config/hypr/myColors.conf
################
### MONITORS ###
################
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=DP-2,3440x1440@144,auto,auto
monitor=DP-3,1920x1080,-1080x-550,1,transform,1
###################
### MY PROGRAMS ###
###################
# See https://wiki.hyprland.org/Configuring/Keywords/
# Set programs that you use
$terminal = alacritty
$fileManager = nautilus --new-window
$browser = firefox
#################
### AUTOSTART ###
#################
# Autostart necessary processes (like notifications daemons, status bars, etc.)
# Or execute your favorite apps at launch like this:
exec-once = hyprpaper
exec-once = waybar
exec-once = systemctl --user start hyprpolkitagent
exec-once = dunst
exec-once = wl-paste --type text --watch cliphist store # Stores only text data
exec-once = [ workspace special:term silent] $terminal
exec-once = [ workspace special:browser silent] $browser -url "https://web.whatsapp.com"
exec-once = [ workspace special:music silent] spotify
# Script to make bitwarden firefox extension windows launch in floating mode
exec-once = ~/.config/hypr/scripts/float-bitwarden.sh
#############################
### ENVIRONMENT VARIABLES ###
#############################
# See https://wiki.hyprland.org/Configuring/Environment-variables/
env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24
env = LIBVA_DRIVER_NAME,nvidia
env = XDG_SESSION_TYPE,wayland
env = GBM_BACKEND,nvidia-drm
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
cursor {
no_hardware_cursors = true
}
#####################
### LOOK AND FEEL ###
#####################
# Refer to https://wiki.hyprland.org/Configuring/Variables/
# https://wiki.hyprland.org/Configuring/Variables/#general
general {
gaps_in = 5
gaps_out = 10,20,20,20
border_size = 2
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.inactive_border = rgba(595959aa)
# Set to true enable resizing windows by clicking and dragging on borders and gaps
resize_on_border = false
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false
layout = dwindle
}
# https://wiki.hyprland.org/Configuring/Variables/#decoration
decoration {
rounding = 10
# Change transparency of focused and unfocused windows
active_opacity = 1.0
inactive_opacity = 1.0
drop_shadow = true
shadow_range = 4
shadow_render_power = 3
col.shadow = rgba(1a1a1aee)
# https://wiki.hyprland.org/Configuring/Variables/#blur
blur {
enabled = true
size = 3
passes = 1
vibrancy = 0.1696
}
}
# https://wiki.hyprland.org/Configuring/Variables/#animations
animations {
enabled = true
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 7, myBezier
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
}
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
dwindle {
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true # You probably want this
}
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
master {
new_status = master
}
# https://wiki.hyprland.org/Configuring/Variables/#misc
misc {
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
}
#############
### INPUT ###
#############
# https://wiki.hyprland.org/Configuring/Variables/#input
input {
kb_layout = de
kb_variant =
kb_model =
kb_options =
kb_rules =
follow_mouse = 2
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
touchpad {
natural_scroll = false
}
}
# https://wiki.hyprland.org/Configuring/Variables/#gestures
gestures {
workspace_swipe = false
}
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
device {
name = epic-mouse-v1
sensitivity = -0.5
}
# cursor {
# no_warps = true
# }
###################
### KEYBINDINGS ###
###################
# See https://wiki.hyprland.org/Configuring/Keywords/
$mainMod = SUPER # Sets "Windows" key as main modifier
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, T, exec, $terminal
bind = $mainMod, B, exec, $browser
bind = $mainMod, Return, exec, tofi-drun | xargs hyprctl dispatch exec --
bind = $mainMod, Q, killactive,
bind = $mainMod, F, fullscreen,
bind = $mainMod, M, exit,
bind = $mainMod, E, exec, $fileManager
bind = SUPER, V, exec, cliphist list | tofi | cliphist decode | wl-copy
bind = $mainMod, X, togglefloating,
bind = $mainMod, P, exec, bash -c ~/.config/hypr/presets/'$(ls ~/.config/hypr/presets | tofi)' # profile presets
bind = $mainMod, J, togglesplit, # dwindle
bind = $mainMod SHIFT, S, exec, hyprshot -m region
bind = $mainMod, PRINT, exec, hyprshot -m window
bind = $mainMod SHIFT, B, exec, pkill waybar & hyprctl dispatch exec waybar
# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
# Move windows with mainMod + SHIFT + arrow keys
bind = $mainMod SHIFT, left, movewindow, l
bind = $mainMod SHIFT, right, movewindow, r
bind = $mainMod SHIFT, up, movewindow, u
bind = $mainMod SHIFT, down, movewindow, d
# Switch workspaces of primary monitor with mainMod + [1-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
# Switch workspaces of secondary monitor with mainMod + [F1-9]
bind = $mainMod, F1, workspace, 11
bind = $mainMod, F2, workspace, 12
bind = $mainMod, F3, workspace, 13
bind = $mainMod, F4, workspace, 14
bind = $mainMod, F5, workspace, 15
bind = $mainMod, F6, workspace, 16
bind = $mainMod, F7, workspace, 17
bind = $mainMod, F8, workspace, 18
bind = $mainMod, F9, workspace, 19
# Move active window to a workspace with mainMod + SHIFT + [1-9] (primary monitor)
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
# Move active window to a workspace with mainMod + SHIFT + [F1-F9] (secondary monitor)
bind = $mainMod SHIFT, F1, movetoworkspace, 11
bind = $mainMod SHIFT, F2, movetoworkspace, 12
bind = $mainMod SHIFT, F3, movetoworkspace, 13
bind = $mainMod SHIFT, F4, movetoworkspace, 14
bind = $mainMod SHIFT, F5, movetoworkspace, 15
bind = $mainMod SHIFT, F6, movetoworkspace, 16
bind = $mainMod SHIFT, F7, movetoworkspace, 17
bind = $mainMod SHIFT, F8, movetoworkspace, 18
bind = $mainMod SHIFT, F9, movetoworkspace, 19
# Special workspaces (scratchpad)
bind = $mainMod, F10, togglespecialworkspace, term
bind = $mainMod SHIFT, F10, movetoworkspace, special:term
bind = $mainMod, F11, togglespecialworkspace, browser
bind = $mainMod SHIFT, F11, movetoworkspace, special:browser
bind = $mainMod, F12, togglespecialworkspace, music
bind = $mainMod SHIFT, F12, movetoworkspace, special:music
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
# Laptop multimedia keys for volume and LCD brightness
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+
bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%-
# Requires playerctl
bindl = , XF86AudioNext, exec, playerctl next
bindl = , XF86AudioPause, exec, playerctl play-pause
bindl = , XF86AudioPlay, exec, playerctl play-pause
bindl = , XF86AudioPrev, exec, playerctl previous
##############################
### WINDOWS AND WORKSPACES ###
##############################
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# Ignore maximize requests from apps. You'll probably like this.
windowrulev2 = suppressevent maximize, class:.*
# Fix some dragging issues with XWayland
windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
# Window rules to assign windows to workspaces
windowrulev2 = float,title:^(.*Extension: Bitwarden.*)$
# Open audio settings in floating mode
windowrulev2 = float, size 1000 1000, move 50 50, class:org.pulseaudio.pavucontrol
windowrulev2 = size 900 500, class:org.pulseaudio.pavucontrol
windowrulev2 = move 2464 61, class:org.pulseaudio.pavucontrol
# Workspace rules to assign workspaces to monitors
workspace = 1, monitor:DP-2
workspace = 2, monitor:DP-2
workspace = 3, monitor:DP-2
workspace = 4, monitor:DP-2
workspace = 5, monitor:DP-2
workspace = 11, monitor:DP-3
workspace = 12, monitor:DP-3
workspace = 13, monitor:DP-3
workspace = 14, monitor:DP-3
workspace = 15, monitor:DP-3

View File

@ -0,0 +1,2 @@
preload = /home/paul/downloads/gnome-background.webp
wallpaper = , /home/paul/downloads/gnome-background.webp

View File

@ -0,0 +1,7 @@
#!/bin/bash
hyprctl dispatch exec "[ workspace 11 ]" "firefox -n"
hyprctl dispatch exec "[ workspace 12 silent ]" "clickup"
hyprctl dispatch exec "[ workspace 1 ]" "firefox -n"
hyprctl dispatch exec "[ workspace 1 ]" "code ~/code/wasteside/app"

View File

@ -0,0 +1,33 @@
#!/bin/bash
timeout=0
handle() {
case $1 in
windowtitle*)
# Extract the window ID from the line
window_id=${1#*>>}
# Fetch the list of windows and parse it using jq to find the window by its decimal ID
window_info=$(hyprctl clients -j | jq --arg id "0x$window_id" '.[] | select(.address == ($id))')
# Extract the title from the window info
window_title=$(echo "$window_info" | jq -r '.title')
# Check if the title matches the characteristics of the Bitwarden popup window
if [[ "$window_title" == *"(Bitwarden"*"Password Manager) - Bitwarden"* ]]; then
# in case of double rename only allow once per second
if ((SECONDS < timeout)); then
return
fi
timeout=$((SECONDS + 1))
# echo "$window_id", "$window_title"
hyprctl --batch "dispatch togglefloating address:0x$window_id; dispatch resizewindowpixel exact 20% 54%,address:0x$window_id; dispatch centerwindow"
fi
;;
esac
}
# Listen to the Hyprland socket for events and process each line with the handle function
socat -U - UNIX-CONNECT:"$XDG_RUNTIME_DIR"/hypr/"$HYPRLAND_INSTANCE_SIGNATURE"/.socket2.sock | while read -r line; do handle "$line"; done

193
.config/i3/config Normal file
View File

@ -0,0 +1,193 @@
# This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout some time, delete
# this file and re-run i3-config-wizard(1).
#
# i3 config file (v4)
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
set $mod Mod1
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
# font pango:monospace 8
# This font is widely installed, provides lots of unicode glyphs, right-to-left
# text rendering and scalability on retina/hidpi displays (thanks to pango).
font pango:DejaVu Sans Mono 8
# Start XDG autostart .desktop files using dex. See also
# https://wiki.archlinux.org/index.php/XDG_Autostart
exec --no-startup-id dex --autostart --environment i3
# The combination of xss-lock, nm-applet and pactl is a popular choice, so
# they are included here as an example. Modify as you see fit.
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
# screen before suspend. Use loginctl lock-session to lock your screen.
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
# NetworkManager is the most popular way to manage wireless networks on Linux,
# and nm-applet is a desktop environment-independent system tray GUI for it.
exec --no-startup-id nm-applet
# Use pactl to adjust volume in PulseAudio.
set $refresh_i3status killall -SIGUSR1 i3status
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# move tiling windows via drag & drop by left-clicking into the title bar,
# or left-clicking anywhere into the window while holding the floating modifier.
tiling_drag modifier titlebar
# start a terminal
bindsym $mod+Return exec i3-sensible-terminal
# kill focused window
bindsym $mod+Shift+q kill
# start dmenu (a program launcher)
bindsym $mod+d exec --no-startup-id dmenu_run
# A more modern dmenu replacement is rofi:
# bindcode $mod+40 exec "rofi -modi drun,run -show drun"
# There also is i3-dmenu-desktop which only displays applications shipping a
# .desktop file. It is a wrapper around dmenu, so you need that installed.
# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop
# change focus
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+l focus up
bindsym $mod+odiaeresis focus right
# alternatively, you can use the cursor keys:
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+j move left
bindsym $mod+Shift+k move down
bindsym $mod+Shift+l move up
bindsym $mod+Shift+odiaeresis move right
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# split in horizontal orientation
bindsym $mod+h split h
# split in vertical orientation
bindsym $mod+v split v
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# 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
# focus the child container
#bindsym $mod+d focus child
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
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"
# 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
# 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
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
# 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 j resize shrink width 10 px or 10 ppt
bindsym k resize grow height 10 px or 10 ppt
bindsym l resize shrink height 10 px or 10 ppt
bindsym odiaeresis resize grow width 10 px or 10 ppt
# same bindings, but for the arrow keys
bindsym Left resize shrink width 10 px or 10 ppt
bindsym Down resize grow height 10 px or 10 ppt
bindsym Up resize shrink height 10 px or 10 ppt
bindsym Right resize grow width 10 px or 10 ppt
# back to normal: Enter or Escape or $mod+r
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+r mode "default"
}
bindsym $mod+r mode "resize"
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
status_command i3status
}
gaps inner 10

View File

@ -0,0 +1,2 @@
gui:
mouseEvents: false

18
.config/tofi/config Normal file
View File

@ -0,0 +1,18 @@
prompt-text = "> "
text-color = #cdd6f4
prompt-color = #585b70
selection-color = #33ccff
background-color = #181825aa
width = 100%
padding-left = 25%
padding-top = 30%
height = 100%
border-width = 0
outline-width = 0
result-spacing = 14
num-results = 8
font = Cantarell
font-variations = "wght 600"
font-size = 14

111
.config/waybar/config.jsonc Normal file
View File

@ -0,0 +1,111 @@
{
"layer": "top",
"output" : "DP-2",
"modules-left": [
"custom/power",
"hyprland/workspaces",
"custom/spotify"
],
"modules-center": [
"clock",
],
"modules-right": [
"privacy",
"pulseaudio",
"cpu",
"memory",
"bluetooth",
// "network",
"custom/wireguard"
],
"custom/power": {
"format": "⏻",
"tooltip": false,
},
"hyprland/workspaces": {
"format": "{name}",
"tooltip": false,
"all-outputs": true,
"on-click": "none"
},
"clock": {
"format": "{0:%H:%M:%S}",
"interval": 1,
"tooltip": true,
"tooltip-format": "{0:%A, %d.%m.%Y W%W}"
},
"custom/spotify": {
"exec": "/usr/bin/python3 /home/paul/downloads/repos/Waybar/resources/custom_modules/mediaplayer.py",
"format": "{}",
"return-type": "json",
"on-click": "playerctl play-pause",
"on-scroll-up": "playerctl next",
"on-scroll-down": "playerctl previous"
},
"privacy": {
"icon-spacing": 4,
"icon-size": 12,
"transition-duration": 250,
"modules": [
{
"type": "screenshare",
"tooltip": true,
"tooltip-icon-size": 24
},
{
"type": "audio-in",
"tooltip": true,
"tooltip-icon-size": 24
}
]
},
"cpu": {
"format": " {usage}%",
"interval": 5,
"on-click": "hyprctl dispatch exec 'resources -t cpu'"
},
"memory": {
"format": " {percentage}% ({used}G)",
"interval": 5,
"on-click": "hyprctl dispatch exec 'resources -t memory'"
},
"pulseaudio": {
"format": "{icon} {volume}%",
"format-muted": "",
"tooltip": false,
"format-icons": {
"headphone": "",
"default": [
"",
"",
"󰕾",
"󰕾",
"󰕾",
"",
"",
""
]
},
"scroll-step": 1,
"on-click": "pavucontrol"
},
"bluetooth": {
"format": " {status}",
"format-disabled": "", // an empty format will hide the module
"format-connected": " {num_connections}",
"tooltip-format": "{device_enumerate}",
"tooltip-format-enumerate-connected": "{device_alias} {device_address}",
"on-click": "hyprctl dispatch exec overskride"
},
// "network": {
// "format": " {ifname}",
// "format-ethernet": " {ipaddr}/{cidr}",
// "tooltip": false,
// },
"custom/wireguard": {
"exec": "/usr/bin/python3 /home/paul/.config/waybar/scripts/wireguard.py wasteside",
"format": "󰒄 {}",
"return-type": "json",
"interval": 5
}
}

View File

@ -0,0 +1,23 @@
from argparse import ArgumentParser
from json import dumps
from subprocess import run
if __name__ == "__main__":
parser = ArgumentParser()
parser.add_argument("interfaces", nargs="+", help="one or more names of interfaces to watch")
args = parser.parse_args()
watch = set(args.interfaces)
ifconfig = run(["ifconfig", "-s"], capture_output=True, text=True).stdout
interfaces = {line.split()[0] for line in ifconfig.splitlines()[1:]}
active = interfaces.intersection(watch)
result = {
"text": "active" if len(active) > 0 else "inactive",
"tooltip": "\n".join(active),
}
print(dumps(result))

114
.config/waybar/style.css Normal file
View File

@ -0,0 +1,114 @@
* {
border: none;
font-family: 'Fira Sans Semibold', 'Symbols Nerd Font Mono';
font-size: 16px;
font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
}
window#waybar {
background: transparent;
}
/* All modules */
/* Module on the left */
.modules-left {
color: #cdd6f4;
margin-top: 4px;
margin-left: 10px;
}
#custom-power {
background-color: rgba(255, 255, 255, 0.2);
color: white;
padding: 0px 9px;
border-radius: 100px;
font-weight: 800;
}
#custom-power:hover {
background-color: #33ccff;
color: #107091;
}
#workspaces {
margin-left: 10px;
font-size: 12px;
border-radius: 100px;
background-color: rgba(255, 255, 255, 0.2);
padding: 2px;
}
#workspaces button {
color: white;
animation: gradient_f 20s ease-in infinite;
transition: all 0.2s ease-in;
border-radius: 100px;
padding: 0px 4px;
margin: 0px 2px;
}
#workspaces button:hover {
background: none;
background-color: black;
color: white;
box-shadow: inherit;
text-shadow: inherit;
}
#workspaces button.active {
background-color: #33ccff;
color: #167797;
border-radius: 100px;
padding: 0px 10px;
}
#custom-spotify {
margin-left: 20px;
}
/* Module in the middle */
#clock {
color: #cdd6f4;
margin-top: 3px;
padding-left: 10px;
padding-right: 10px;
margin-right: 15px;
}
/* Module on the right */
.modules-right {
color: black;
margin-top: 3px;
margin-right: 10px;
}
#custom-wireguard, #memory {
background-color: rgba(255, 255, 255, 0.8);
border-radius: 0px 100px 100px 0px;
padding-right: 7px;
}
#bluetooth, #cpu {
background-color: rgba(255, 255, 255, 0.8);
border-radius: 100px 0px 0px 100px;
padding: 0px 7px;
}
#memory {
margin-right: 7px;
}
#pulseaudio {
color: white;
margin-right: 7px;
}
#privacy {
background-color: rgba(17, 17, 27, 0.15);
padding: 0px 10px;
border-radius: 100px;
color: white;
margin-right: 7px;
}

5
.gitignore vendored
View File

@ -1,2 +1,5 @@
# scripts to fetch config files
getconfig.sh
getconfig.sh
# sensitive data
.Renviron

View File

@ -3,7 +3,13 @@ unbind-key C-b
set-option -g prefix C-a
bind-key C-a send-prefix
# split panes using |<7C>(vertically) and - (horizontally)
# use command prompt shortcut similar to vscode
bind-key -n C-p command-prompt
# since tmux prefix is now ctrl+a, use ctrl+b to send ctrl+a to program
bind-key -n C-b send C-a
# split panes using | (vertically) and - (horizontally)
bind / split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
bind c new-window -c "#{pane_current_path}"
@ -13,9 +19,15 @@ unbind %
# reload on r
bind r source-file ~/.tmux.conf \; display "Reloaded config!"
# number of scrollback lines
set-option -g history-limit 5000
# enable mouse mode
set -g mouse on
# stop window to stop jump to bottom when selection something
unbind-key -T copy-mode-vi MouseDragEnd1Pane
# start numbering panes at 1
set -g base-index 1
setw -g pane-base-index 1
@ -33,4 +45,4 @@ set -g status-right-length 50
set -g status-left-length 10
setw -g window-status-current-style "fg=black bg=color6"
setw -g window-status-current-format " #I #W #F "
setw -g window-status-format " #I #[fg=colour7]#W #[fg=colour1]#F "
setw -g window-status-format " #I #[fg=colour7]#W #[fg=colour1]#F "

3
.zprofile Normal file
View File

@ -0,0 +1,3 @@
export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

View File

@ -65,12 +65,15 @@ DISABLE_UNTRACKED_FILES_DIRTY="true"
# Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder
# Force pyenv to stop complaining about non-interactive shells
ZSH_PYENV_QUIET="true"
# Which plugins would you like to load?
# Standard plugins can be found in $ZSH/plugins/
# Custom plugins may be added to $ZSH_CUSTOM/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(git zsh-autosuggestions macos pip pyenv docker autojump colorize copyfile brew)
plugins=(git zsh-autosuggestions zsh-syntax-highlighting fast-syntax-highlighting macos pip pyenv docker colorize copyfile brew)
source $ZSH/oh-my-zsh.sh
@ -81,11 +84,20 @@ source $ZSH/oh-my-zsh.sh
# You may need to manually set your language environment
# export LANG=en_US.UTF-8
# Usually, vscode returns immediately after being run. This makes it not
# suitable for things like crontab or git, which wait until the editor has
# closed to continue. In such cases, we use the -w option to make it wait.
codewait="/usr/local/bin/code-wait.sh"
if [ ! -e $codewait ]; then
echo "Waiting version of vscode is missing."
fi
# Preferred editor for local and remote sessions
if [[ -n $SSH_CONNECTION ]]; then
export EDITOR='nano'
else
export EDITOR='code'
export EDITOR=$codewait
export VISUAL=$codewait
fi
# Compilation flags
@ -100,10 +112,13 @@ fi
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
# Reboot to Windows
reboot_windows()
{
windows_title=$(grep -i windows /boot/grub/grub.cfg | cut -d "'" -f 2)
sudo grub-reboot "$windows_title" && sudo reboot
}
alias reboot-windows='reboot_windows'
# Command aliases
alias py=python3
@ -121,9 +136,15 @@ alias zshconfig="$EDITOR ~/.zshrc"
alias zshreload="source ~/.zshrc"
alias zshsource="source ~/.zshrc"
alias home="cd ~"
alias userchrome="$EDITOR /Users/paul/Library/Application\ Support/Firefox/Profiles/k37hu3wo.default-release/chrome/userChrome.css"
alias userchrome="$EDITOR ~/.mozilla/firefox/jcjwalyb.default-release/chrome/userChrome.css"
alias kw='echo Current Week: $((10#$(date +"%V")))'
alias wol=wakeonlan
alias ge=gnome-extensions
alias open="xdg-open"
alias lg="lazygit"
alias wstmux="cd ~/code/wasteside/app && tmux new -A -s wasteside"
alias R="R --no-save"
# Python tkinter stuff
export PATH="/usr/local/opt/tcl-tk/bin:$PATH"
@ -131,21 +152,14 @@ export PATH="/usr/local/opt/tcl-tk/bin:$PATH"
# autojump
[ -f /opt/homebrew/etc/profile.d/autojump.sh ] && . /opt/homebrew/etc/profile.d/autojump.sh
# spicetify
alias sba="spicetify backup apply"
# bitwarden-cli
alias bw='NODE_OPTIONS="--no-deprecation" bw'
# connect to smb shares
alias mount-ds='[ -e "/Volumes/pauls-dateien" ] || open "smb://paul@192.168.193.68/pauls-dateien"'
# vscode shortcuts
alias ma="code --folder-uri=vscode-remote://ssh-remote+sralab/home/2021/pau.aumann/ma"
alias ws="code ~/Code/wasteside-v2"
alias ws="cd ~/code/wasteside/app && code . && tmux new -A -s wasteside"
# iTerm2 integration
source ~/.iterm2_shell_integration.zsh
# Fix ls colors for synology directories
LS_COLORS+=':ow=01;33'
# Fix colors for ssh sessions
TERM=xterm-256color
# history
HISTFILE=~/.histfile
@ -157,4 +171,12 @@ eval "$(zoxide init --cmd cd zsh)"
# SDKMAN & Java
export SDKMAN_DIR="$HOME/.sdkman"
[[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh"
[[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh"
# Yarn
export PATH="$HOME/.yarn/bin:$PATH"
# pyenv stuff (make sure this is at the end of the file)
export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"