add stuff
This commit is contained in:
@ -390,7 +390,7 @@
|
||||
"command": "-workbench.action.gotoLine"
|
||||
},
|
||||
{
|
||||
"key": "ctrl+g",
|
||||
"key": "alt+space",
|
||||
"command": "relative-goto.goto"
|
||||
},
|
||||
{
|
||||
|
||||
@ -1,126 +1,132 @@
|
||||
{
|
||||
//
|
||||
// Appearance
|
||||
"workbench.colorTheme": "Monokai Pro",
|
||||
"workbench.iconTheme": "Monokai Pro Icons",
|
||||
"editor.fontFamily": "Fira Code, Menlo, Monaco, 'Courier New', monospace",
|
||||
"editor.fontSize": 18,
|
||||
"editor.fontWeight": "normal",
|
||||
"editor.fontLigatures": true,
|
||||
"editor.stickyScroll.enabled": true,
|
||||
"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": {
|
||||
"**/.classpath": true,
|
||||
"**/.project": true,
|
||||
"**/.settings": true,
|
||||
"**/.factorypath": true
|
||||
},
|
||||
"files.watcherExclude": {
|
||||
"**/.bloop": true,
|
||||
"**/.metals": true,
|
||||
"**/.ammonite": true
|
||||
},
|
||||
//
|
||||
// File associations with languages
|
||||
"files.associations": {
|
||||
"*.pgpass" : "yaml",
|
||||
},
|
||||
//
|
||||
// Settings Sync
|
||||
"settingsSync.ignoredSettings": [
|
||||
"sshfs.configs",
|
||||
"editor.fontFamily"
|
||||
],
|
||||
//
|
||||
// Remote SSH
|
||||
"remote.SSH.remotePlatform": {
|
||||
"lab-pc07": "linux",
|
||||
"lab-pc28": "linux",
|
||||
"lab-pc01": "linux",
|
||||
"wasteside": "linux",
|
||||
"sralab": "linux"
|
||||
},
|
||||
"remote.SSH.serverInstallPath": {
|
||||
"sralab": "/srv/scratch/paul.aumann",
|
||||
"lab-pc00": "/srv/scratch/paul.aumann",
|
||||
"lab-pc44": "/srv/scratch/paul.aumann",
|
||||
},
|
||||
//
|
||||
// Python
|
||||
"python.languageServer": "Default",
|
||||
"python.createEnvironment.trigger": "off",
|
||||
"[python]": {
|
||||
"editor.formatOnSave": true,
|
||||
"editor.rulers": [
|
||||
120
|
||||
],
|
||||
"editor.defaultFormatter": "ms-python.black-formatter",
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.organizeImports": "explicit"
|
||||
}
|
||||
},
|
||||
"black-formatter.args": [
|
||||
"--line-length",
|
||||
"120"
|
||||
],
|
||||
//
|
||||
// Jupyter Notebooks
|
||||
"notebook.cellToolbarLocation": {
|
||||
"default": "right",
|
||||
"jupyter-notebook": "left"
|
||||
},
|
||||
"workbench.editorAssociations": {
|
||||
"*.ipynb": "jupyter-notebook"
|
||||
},
|
||||
//
|
||||
// R
|
||||
"r.lsp.diagnostics": false,
|
||||
//
|
||||
// JSON
|
||||
"[json][jsonc]": {
|
||||
"editor.defaultFormatter": "vscode.json-language-features",
|
||||
},
|
||||
"prettier.singleQuote": true,
|
||||
//
|
||||
// Webdev
|
||||
"[typescript][typescriptreact][javascript][html]": {
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
||||
"editor.formatOnSave": true,
|
||||
"editor.indentSize": "tabSize",
|
||||
"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,
|
||||
"git.blame.editorDecoration.enabled": true,
|
||||
"python.analysis.typeCheckingMode": "basic",
|
||||
"workbench.editor.empty.hint": "hidden",
|
||||
"python.defaultInterpreterPath": "/home/paul/.pyenv/versions/3.12.5/envs/wasteside-tools",
|
||||
"editor.lineNumbers": "relative",
|
||||
"github.copilot.nextEditSuggestions.enabled": true,
|
||||
{
|
||||
"workbench.iconTheme": "Default Light Modern Icons",
|
||||
"editor.fontFamily": "JetBrains Mono Semibold, Fira Code, Menlo, Monaco, 'Courier New', monospace",
|
||||
"editor.fontSize": 18,
|
||||
"editor.fontWeight": "normal",
|
||||
"editor.fontLigatures": true,
|
||||
"editor.stickyScroll.enabled": true,
|
||||
"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": {
|
||||
"**/.classpath": true,
|
||||
"**/.project": true,
|
||||
"**/.settings": true,
|
||||
"**/.factorypath": true
|
||||
},
|
||||
"files.watcherExclude": {
|
||||
"**/.bloop": true,
|
||||
"**/.metals": true,
|
||||
"**/.ammonite": true
|
||||
},
|
||||
//
|
||||
// File associations with languages
|
||||
"files.associations": {
|
||||
"*.pgpass" : "yaml",
|
||||
},
|
||||
//
|
||||
// Settings Sync
|
||||
"settingsSync.ignoredSettings": [
|
||||
"sshfs.configs",
|
||||
"editor.fontFamily"
|
||||
],
|
||||
//
|
||||
// Remote SSH
|
||||
"remote.SSH.remotePlatform": {
|
||||
"lab-pc07": "linux",
|
||||
"lab-pc28": "linux",
|
||||
"lab-pc01": "linux",
|
||||
"wasteside": "linux",
|
||||
"sralab": "linux"
|
||||
},
|
||||
"remote.SSH.serverInstallPath": {
|
||||
"sralab": "/srv/scratch/paul.aumann",
|
||||
"lab-pc00": "/srv/scratch/paul.aumann",
|
||||
"lab-pc44": "/srv/scratch/paul.aumann",
|
||||
},
|
||||
//
|
||||
// Python
|
||||
"python.languageServer": "Default",
|
||||
"python.createEnvironment.trigger": "off",
|
||||
"[python]": {
|
||||
"editor.formatOnSave": true,
|
||||
"editor.rulers": [
|
||||
120
|
||||
],
|
||||
"editor.defaultFormatter": "ms-python.black-formatter",
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.organizeImports": "explicit"
|
||||
}
|
||||
},
|
||||
"black-formatter.args": [
|
||||
"--line-length",
|
||||
"120"
|
||||
],
|
||||
//
|
||||
// Jupyter Notebooks
|
||||
"notebook.cellToolbarLocation": {
|
||||
"default": "right",
|
||||
"jupyter-notebook": "left"
|
||||
},
|
||||
"workbench.editorAssociations": {
|
||||
"*.ipynb": "jupyter-notebook"
|
||||
},
|
||||
//
|
||||
// R
|
||||
"r.lsp.diagnostics": false,
|
||||
//
|
||||
// JSON
|
||||
"[json][jsonc]": {
|
||||
"editor.defaultFormatter": "vscode.json-language-features",
|
||||
},
|
||||
"prettier.singleQuote": true,
|
||||
//
|
||||
// Webdev
|
||||
"[typescript][typescriptreact][javascript][html]": {
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
||||
"editor.formatOnSave": true,
|
||||
"editor.indentSize": "tabSize",
|
||||
"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,
|
||||
"git.blame.editorDecoration.enabled": true,
|
||||
"python.analysis.typeCheckingMode": "basic",
|
||||
"workbench.editor.empty.hint": "hidden",
|
||||
"python.defaultInterpreterPath": "/home/paul/.pyenv/versions/3.12.5/envs/wasteside-tools",
|
||||
"editor.lineNumbers": "relative",
|
||||
"github.copilot.nextEditSuggestions.enabled": true,
|
||||
"json.schemaDownload.trustedDomains": {
|
||||
"https://schemastore.azurewebsites.net/": true,
|
||||
"https://raw.githubusercontent.com/": true,
|
||||
"https://www.schemastore.org/": true,
|
||||
"https://json.schemastore.org/": true,
|
||||
"https://json-schema.org/": true,
|
||||
"https://vicinae.com/schemas/config.json": true
|
||||
},
|
||||
"workbench.colorTheme": "Monokai Pro",
|
||||
}
|
||||
1
.config/_default.jsonc
Symbolic link
1
.config/_default.jsonc
Symbolic link
@ -0,0 +1 @@
|
||||
vicinae/_default.jsonc
|
||||
1
.config/appeareance.jsonc
Symbolic link
1
.config/appeareance.jsonc
Symbolic link
@ -0,0 +1 @@
|
||||
vicinae/appeareance.jsonc
|
||||
@ -1,2 +1,2 @@
|
||||
--enable-features=UseOzonePlatform
|
||||
# --enable-features=UseOzonePlatform
|
||||
--ozone-platform=wayland
|
||||
|
||||
3
.config/darkman/config.yaml
Normal file
3
.config/darkman/config.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
lat: 52.375893
|
||||
lng: 9.732010
|
||||
dbusserver: true
|
||||
@ -4,7 +4,7 @@
|
||||
### Display ###
|
||||
|
||||
# Which monitor should the notifications be displayed on.
|
||||
monitor = DP-2
|
||||
monitor = DP-1
|
||||
|
||||
# Display notification on focused monitor. Possible modes are:
|
||||
# mouse: follow mouse pointer
|
||||
@ -196,7 +196,8 @@
|
||||
max_icon_size = 50
|
||||
|
||||
# Paths to default icons.
|
||||
icon_path = /usr/share/icons/Adwaita/16x16/mimetypes/:/usr/share/icons/Papirus-Dark/16x16/actions/
|
||||
icon_path = "/usr/share/icons/Adwaita/symbolic/actions:/home/paul/.config/dunst/icons"
|
||||
# enable_recursive_icon_lookup = true
|
||||
|
||||
default_icon = "/home/paul/.config/dunst/default.svg"
|
||||
|
||||
|
||||
1
.config/dunst/icons/homeassistant.svg
Normal file
1
.config/dunst/icons/homeassistant.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="#fff" d="M22.939 10.627L13.061.749a1.505 1.505 0 0 0-2.121 0l-9.879 9.878C.478 11.21 0 12.363 0 13.187v9c0 .826.675 1.5 1.5 1.5h9.227l-4.063-4.062a2 2 0 0 1-.664.113c-1.13 0-2.05-.92-2.05-2.05s.92-2.05 2.05-2.05s2.05.92 2.05 2.05c0 .233-.041.456-.113.665l3.163 3.163V9.928a2.05 2.05 0 0 1-1.15-1.84c0-1.13.92-2.05 2.05-2.05s2.05.92 2.05 2.05a2.05 2.05 0 0 1-1.15 1.84v8.127l3.146-3.146A2.05 2.05 0 0 1 18 12.239c1.13 0 2.05.92 2.05 2.05s-.92 2.05-2.05 2.05a2 2 0 0 1-.709-.13L12.9 20.602v3.088h9.6c.825 0 1.5-.675 1.5-1.5v-9c0-.825-.477-1.977-1.061-2.561z"/></svg>
|
||||
|
After Width: | Height: | Size: 659 B |
1
.config/general.jsonc
Symbolic link
1
.config/general.jsonc
Symbolic link
@ -0,0 +1 @@
|
||||
vicinae/general.jsonc
|
||||
@ -16,8 +16,8 @@
|
||||
################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||
monitor=DP-2,3440x1440@144,auto,auto
|
||||
monitor=DP-3,1920x1080,-1080x-550,1,transform,1
|
||||
monitor=DP-1,3440x1440@144,auto,auto
|
||||
monitor=DP-2,1920x1080,-1080x-550,1,transform,1
|
||||
monitor=HDMI-A-1,3440x1440@144,auto,auto
|
||||
|
||||
|
||||
@ -31,6 +31,8 @@ monitor=HDMI-A-1,3440x1440@144,auto,auto
|
||||
$terminal = alacritty
|
||||
$fileManager = nautilus --new-window
|
||||
$browser = firefox
|
||||
$launcher = vicinae toggle
|
||||
# $launcher = tofi-drun | xargs hyprctl dispatch exec --
|
||||
|
||||
|
||||
#################
|
||||
@ -44,14 +46,17 @@ exec-once = hyprpaper
|
||||
exec-once = hypridle
|
||||
exec-once = systemctl --user start hyprpolkitagent
|
||||
exec-once = dunst
|
||||
exec-once = wl-paste --type text --watch cliphist store # Stores only text data
|
||||
# exec-once = wl-paste --type text --watch cliphist store # Stores only text data
|
||||
exec-once = waybar
|
||||
exec-once = darkman run
|
||||
exec-once = vicinae server
|
||||
|
||||
# Open programs on special workspaces
|
||||
exec-once = [ workspace special:term silent] $terminal
|
||||
exec-once = [ workspace special:browser silent] $browser "https://web.whatsapp.com" "https://mail.google.com/mail/u/0/\##inbox/\##wasteside\##container-wasteside"
|
||||
exec-once = [ workspace special:browser silent] $browser "ext+container:name=Meta&url=https://web.whatsapp.com" "ext+container:name=Wasteside&url=https://mail.google.com"
|
||||
exec-once = [ workspace special:browser silent] gnome-calendar
|
||||
exec-once = [ workspace special:music silent] $terminal -e spotify_player
|
||||
exec-once = [ workspace special:music silent] $terminal -e wiremix
|
||||
exec-once = [ workspace special:todo silent] clickup
|
||||
exec-once = [ workspace special:files silent] $fileManager
|
||||
exec-once = [ workspace special:files silent] localsend
|
||||
@ -66,6 +71,9 @@ exec-once = ratbagctl list
|
||||
exec-once = hyprpm enable Hyprspace
|
||||
exec-once = hyprpm reload
|
||||
|
||||
# Custom scripts
|
||||
exec-once = ~/code/ha-notifications/ha-notifications
|
||||
|
||||
#############################
|
||||
### ENVIRONMENT VARIABLES ###
|
||||
#############################
|
||||
@ -74,10 +82,7 @@ exec-once = hyprpm reload
|
||||
|
||||
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
|
||||
env = HYPRSHOT_DIR,/home/paul/screenshots
|
||||
|
||||
cursor {
|
||||
@ -119,7 +124,7 @@ decoration {
|
||||
active_opacity = 1.0
|
||||
inactive_opacity = 1.0
|
||||
|
||||
dim_special = 0.9
|
||||
dim_special = 0.7
|
||||
|
||||
# Deprecated v0.45 ?
|
||||
# drop_shadow = true
|
||||
@ -143,15 +148,16 @@ animations {
|
||||
|
||||
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||
|
||||
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
|
||||
bezier = bz, 0.05, 0.9, 0.1, 1.05
|
||||
|
||||
animation = windows, 1, 7, myBezier
|
||||
animation = windowsOut, 1, 7, default, popin 80%
|
||||
animation = windows, 1, 4, bz
|
||||
animation = windowsOut, 1, 4, default, popin 80%
|
||||
animation = border, 1, 10, default
|
||||
animation = borderangle, 1, 8, default
|
||||
animation = fade, 1, 7, default
|
||||
animation = workspaces, 1, 6, default
|
||||
animation = specialWorkspaceIn, 1, 2, default
|
||||
animation = workspaces, 1, 3, default
|
||||
|
||||
animation = specialWorkspace, 1, 2, default, fade
|
||||
}
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||
@ -169,6 +175,8 @@ master {
|
||||
misc {
|
||||
force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers
|
||||
disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :(
|
||||
|
||||
close_special_on_empty = false
|
||||
}
|
||||
|
||||
|
||||
@ -183,14 +191,11 @@ input {
|
||||
kb_model =
|
||||
kb_options =
|
||||
kb_rules =
|
||||
numlock_by_default = true
|
||||
|
||||
follow_mouse = 2
|
||||
|
||||
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
||||
|
||||
touchpad {
|
||||
natural_scroll = false
|
||||
}
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#gestures
|
||||
@ -205,6 +210,10 @@ device {
|
||||
sensitivity = -0.5
|
||||
}
|
||||
|
||||
binds {
|
||||
hide_special_on_workspace_change = true
|
||||
}
|
||||
|
||||
# cursor {
|
||||
# no_warps = true
|
||||
# }
|
||||
@ -220,14 +229,15 @@ $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, Return, exec, $launcher
|
||||
bind = $mainMod, Q, killactive,
|
||||
bind = $mainMod, F, fullscreen,
|
||||
bind = $mainMod, M, splitratio, exact 0.6,
|
||||
bind = $mainMod, mouse_down, splitratio, 0.1
|
||||
bind = $mainMod, mouse_up, splitratio, -0.1
|
||||
bind = $mainMod, E, exec, $fileManager
|
||||
bind = $mainMod, V, exec, cliphist list | tofi | cliphist decode | wl-copy
|
||||
# bind = $mainMod, V, exec, cliphist list | tofi | cliphist decode | wl-copy
|
||||
bind = $mainMod, V, exec, vicinae vicinae://extensions/vicinae/clipboard/history
|
||||
bind = $mainMod, X, togglefloating,
|
||||
bind = $mainMod, P, pin, active
|
||||
bind = $mainMod, J, togglesplit, # dwindle
|
||||
@ -250,7 +260,7 @@ 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]
|
||||
# Switch workspaces of primary monitor with mainMod + [1-7]
|
||||
bind = $mainMod, 1, workspace, 1
|
||||
bind = $mainMod, 2, workspace, 2
|
||||
bind = $mainMod, 3, workspace, 3
|
||||
@ -260,7 +270,7 @@ bind = $mainMod, 6, workspace, 6
|
||||
bind = $mainMod, 7, workspace, 7
|
||||
bind = $mainMod, 8, workspace, 8
|
||||
|
||||
# Switch workspaces of secondary monitor with mainMod + [F1-9]
|
||||
# Switch workspaces of secondary monitor with mainMod + [F1-7]
|
||||
bind = $mainMod, F1, workspace, 11
|
||||
bind = $mainMod, F2, workspace, 12
|
||||
bind = $mainMod, F3, workspace, 13
|
||||
@ -268,9 +278,8 @@ 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
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [1-9] (primary monitor)
|
||||
# Move active window to a workspace with mainMod + SHIFT + [1-7] (primary monitor)
|
||||
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
||||
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
||||
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
||||
@ -279,7 +288,7 @@ bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
||||
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
||||
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [F1-F9] (secondary monitor)
|
||||
# Move active window to a workspace with mainMod + SHIFT + [F1-F7] (secondary monitor)
|
||||
bind = $mainMod SHIFT, F1, movetoworkspace, 11
|
||||
bind = $mainMod SHIFT, F2, movetoworkspace, 12
|
||||
bind = $mainMod SHIFT, F3, movetoworkspace, 13
|
||||
@ -289,14 +298,20 @@ bind = $mainMod SHIFT, F6, movetoworkspace, 16
|
||||
bind = $mainMod SHIFT, F7, movetoworkspace, 17
|
||||
|
||||
# Special workspaces (scratchpad)
|
||||
# Special workspaces should only be opened on the primary monitor.
|
||||
bind = $mainMod, F12, focusmonitor, DP-1
|
||||
bind = $mainMod, F12, togglespecialworkspace, term
|
||||
bind = $mainMod SHIFT, F12, movetoworkspace, special:term
|
||||
bind = $mainMod, F11, focusmonitor, DP-1
|
||||
bind = $mainMod, F11, togglespecialworkspace, browser
|
||||
bind = $mainMod SHIFT, F11, movetoworkspace, special:browser
|
||||
bind = $mainMod, F10, focusmonitor, DP-1
|
||||
bind = $mainMod, F10, togglespecialworkspace, music
|
||||
bind = $mainMod SHIFT, F10, movetoworkspace, special:music
|
||||
bind = $mainMod, F9, focusmonitor, DP-1
|
||||
bind = $mainMod, F9, togglespecialworkspace, todo
|
||||
bind = $mainMod SHIFT, F9, movetoworkspace, special:todo
|
||||
bind = $mainMod, F8, focusmonitor, DP-1
|
||||
bind = $mainMod, F8, togglespecialworkspace, files
|
||||
bind = $mainMod SHIFT, F8, movetoworkspace, special:files
|
||||
|
||||
@ -314,8 +329,8 @@ 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 = , XF86AudioPause, exec, playerctl play-pause -a
|
||||
bindl = , XF86AudioPlay, exec, playerctl play-pause -a
|
||||
bindl = , XF86AudioPrev, exec, playerctl previous
|
||||
|
||||
##############################
|
||||
@ -326,49 +341,103 @@ bindl = , XF86AudioPrev, exec, playerctl previous
|
||||
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
|
||||
|
||||
# Ignore maximize requests from apps. You'll probably like this.
|
||||
windowrulev2 = suppressevent maximize, class:.*
|
||||
windowrule = match:class .*, suppress_event maximize
|
||||
|
||||
# Fix some dragging issues with XWayland
|
||||
windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
|
||||
# windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
|
||||
|
||||
# Window rules to assign windows to workspaces
|
||||
windowrulev2 = float,title:^(.*Extension: Bitwarden.*)$
|
||||
windowrule = match:title ^(.*Extension: Bitwarden.*)$, float 1
|
||||
|
||||
# Always center ClickUp command bar
|
||||
windowrulev2 = center, title:ClickUp Command Bar
|
||||
windowrule = match:title ClickUp Command Bar, center 1
|
||||
|
||||
# Dont use floating mode for freerdp
|
||||
windowrulev2 = tile, class:xfreerdp
|
||||
windowrule = match:class ^(xfreerdp)$, tile 1
|
||||
|
||||
# Open audio settings in floating mode
|
||||
windowrulev2 = float, class:org.pulseaudio.pavucontrol
|
||||
windowrulev2 = size 500 1000, class:org.pulseaudio.pavucontrol
|
||||
windowrulev2 = move 2841 61, class:org.pulseaudio.pavucontrol
|
||||
windowrulev2 = pin, class:org.pulseaudio.pavucontrol
|
||||
windowrule = match:class org.pulseaudio.pavucontrol, float 1, size 500 1000, move 2841 61, pin 1
|
||||
|
||||
# Same for bluetooth settings
|
||||
windowrulev2 = float, initialTitle:overskride
|
||||
windowrulev2 = size 765 765, initialTitle:overskride
|
||||
windowrulev2 = move 2653 44, initialTitle:overskride
|
||||
windowrulev2 = pin, initialTitle:overskride
|
||||
windowrule = match:title overskride, float 1, size 765 765, move 2653 44, pin 1
|
||||
|
||||
# Change border color of pinned windows
|
||||
windowrulev2 = bordercolor rgb(CC34A4) rgb(4B2D70), pinned:1
|
||||
windowrule = match:pin 1, border_color rgb(CC34A4) rgb(4B2D70)
|
||||
|
||||
# Share Picker is always floating
|
||||
windowrule = match:class com.paulaumann.hyprland-share-picker, float 1, center 1
|
||||
|
||||
# Waydroid is always floating and exact size
|
||||
windowrule {
|
||||
name = "waydroid"
|
||||
match:initial_class = Waydroid
|
||||
|
||||
float = 1
|
||||
size = 576 1024
|
||||
}
|
||||
|
||||
# Vicinae is always floating and exact size
|
||||
windowrule {
|
||||
name = "vicinae"
|
||||
match:initial_class = vicinae-server
|
||||
float = 1
|
||||
pin = 1
|
||||
stay_focused = on
|
||||
dim_around = on
|
||||
no_anim = on
|
||||
}
|
||||
|
||||
# Notification animation style
|
||||
layerrule = animation slide, notifications
|
||||
layerrule = match:namespace notifications, animation slide
|
||||
|
||||
# Fixes black border around screenshots due to animation after selection
|
||||
layerrule {
|
||||
name = no_anim_for_selection
|
||||
match:namespace = selection
|
||||
no_anim = on
|
||||
}
|
||||
|
||||
# Blur behind certain layers
|
||||
layerrule {
|
||||
name = blur_waybar
|
||||
match:namespace = waybar
|
||||
blur = on
|
||||
}
|
||||
|
||||
layerrule {
|
||||
name = blur_tofi
|
||||
match:namespace = launcher
|
||||
blur = on
|
||||
}
|
||||
|
||||
# layerrule {
|
||||
# name = blur_vicinae
|
||||
# match:namespace = vicinae
|
||||
# blur = on
|
||||
# ignore_alpha = on
|
||||
# dim_around = on
|
||||
# }
|
||||
|
||||
# layerrule {
|
||||
# name = no_animation_for_vicinae
|
||||
# match:namespace = vicinae
|
||||
# no_anim = on
|
||||
# }
|
||||
|
||||
# Workspace rules to assign workspaces to monitors
|
||||
workspace = 1, monitor:DP-2, default:true
|
||||
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, default:true
|
||||
workspace = 12, monitor:DP-3
|
||||
workspace = 13, monitor:DP-3
|
||||
workspace = 14, monitor:DP-3
|
||||
workspace = 15, monitor:DP-3
|
||||
workspace = 1, monitor:DP-1, default:true
|
||||
workspace = 2, monitor:DP-1
|
||||
workspace = 3, monitor:DP-1
|
||||
workspace = 4, monitor:DP-1
|
||||
workspace = 5, monitor:DP-1
|
||||
workspace = 11, monitor:DP-2, default:true
|
||||
workspace = 12, monitor:DP-2
|
||||
workspace = 13, monitor:DP-2
|
||||
workspace = 14, monitor:DP-2
|
||||
workspace = 15, monitor:DP-2
|
||||
|
||||
workspace = special:music, gapsout:40 1800 50 50
|
||||
workspace = special:music, monitor:DP-2
|
||||
workspace = special:term, gapsout:64
|
||||
workspace = special:browser, gapsout:64
|
||||
workspace = special:music, gapsout:64
|
||||
workspace = special:todo, gapsout:64
|
||||
workspace = special:files, gapsout:64
|
||||
@ -1,2 +1,13 @@
|
||||
preload = ~/.config/hypr/img/gnome-background.webp
|
||||
wallpaper = , ~/.config/hypr/img/gnome-background.webp
|
||||
wallpaper {
|
||||
monitor = DP-1
|
||||
path = ~/.config/hypr/img/gnome-background.webp
|
||||
fit_mode = cover
|
||||
}
|
||||
|
||||
wallpaper {
|
||||
monitor = DP-2
|
||||
path = ~/.config/hypr/img/gnome-background.webp
|
||||
fit_mode = cover
|
||||
}
|
||||
|
||||
splash = false
|
||||
1
.config/settings.json
Symbolic link
1
.config/settings.json
Symbolic link
@ -0,0 +1 @@
|
||||
vicinae/settings.json
|
||||
51
.config/spotify-player/app.toml
Normal file
51
.config/spotify-player/app.toml
Normal file
@ -0,0 +1,51 @@
|
||||
theme = "dracula"
|
||||
client_id = "7fed45e8d6ec4ff1b50e5464852fe136"
|
||||
client_port = 8080
|
||||
login_redirect_uri = "http://127.0.0.1:8989/login"
|
||||
playback_format = """
|
||||
{status} {track} • {artists} {liked}
|
||||
{album}
|
||||
{metadata}"""
|
||||
notify_timeout_in_secs = 0
|
||||
tracks_playback_limit = 50
|
||||
app_refresh_duration_in_ms = 32
|
||||
playback_refresh_duration_in_ms = 0
|
||||
page_size_in_rows = 20
|
||||
play_icon = "▶"
|
||||
pause_icon = "▌▌"
|
||||
liked_icon = "♥"
|
||||
border_type = "Plain"
|
||||
progress_bar_type = "Rectangle"
|
||||
cover_img_length = 9
|
||||
cover_img_width = 5
|
||||
cover_img_scale = 1.0
|
||||
cover_img_pixels = 64
|
||||
enable_media_control = true
|
||||
enable_streaming = "Always"
|
||||
enable_notify = true
|
||||
enable_cover_image_cache = true
|
||||
default_device = "spotify-player"
|
||||
notify_streaming_only = false
|
||||
seek_duration_secs = 5
|
||||
sort_artist_albums_by_type = false
|
||||
|
||||
[notify_format]
|
||||
summary = "{track} • {artists}"
|
||||
body = "{album}"
|
||||
|
||||
[layout]
|
||||
playback_window_position = "Top"
|
||||
playback_window_height = 6
|
||||
|
||||
[layout.library]
|
||||
playlist_percent = 40
|
||||
album_percent = 40
|
||||
|
||||
[device]
|
||||
name = "spotify-player"
|
||||
device_type = "speaker"
|
||||
volume = 70
|
||||
bitrate = 320
|
||||
audio_cache = false
|
||||
normalization = false
|
||||
autoplay = false
|
||||
11
.config/vicinae/.vscode/settings.json
vendored
Normal file
11
.config/vicinae/.vscode/settings.json
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
{
|
||||
"[json]": {
|
||||
"editor.formatOnSave": true,
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.fixAll": "explicit"
|
||||
}
|
||||
},
|
||||
"[jsonc]": {
|
||||
"editor.formatOnSave": true
|
||||
},
|
||||
}
|
||||
186
.config/vicinae/_default.jsonc
Normal file
186
.config/vicinae/_default.jsonc
Normal file
@ -0,0 +1,186 @@
|
||||
{
|
||||
"$schema": "https://vicinae.com/schemas/config.json",
|
||||
|
||||
// A list of paths pointed to separate configuration files to source during loading.
|
||||
// Note that values defined in the main configuration file always take precedence over imported
|
||||
// files.
|
||||
// Relative paths are accepted, and are relative to the configuration directory in which the importing configuration file is located.
|
||||
"imports": [],
|
||||
|
||||
// Whether root search should also search files directly.
|
||||
// File search is performed asynchrounously: files may take an instant to appear after a query is entered.
|
||||
// Turning this on results in an increase in CPU usage when searching.
|
||||
// Note that vicinae has a built-in file search command that can be used to perform file search in isolation, accompanied with
|
||||
// rich content preview. This should be more than enough for most users.
|
||||
"search_files_in_root": false,
|
||||
|
||||
// What vicinae should do when the "escape" key is pressed
|
||||
// Supports "navigate_back" or "close_window"
|
||||
"escape_key_behavior": "navigate_back",
|
||||
|
||||
// If the layer shell protocol is used to position the window and the keyboard interactivity is
|
||||
// set to "exclusive" (the default) then this setting will have no effect. Either switch to "on_demand" interactivity
|
||||
// or disable layer shell.
|
||||
"close_on_focus_loss": false,
|
||||
|
||||
// Whether IME preedit strings should be searched in real time.
|
||||
"consider_preedit": false,
|
||||
|
||||
// Reset the navigation state every time the window is closed
|
||||
"pop_to_root_on_close": false,
|
||||
|
||||
// What favicon service to use when loading favicons is needed.
|
||||
// Available values are: 'twenty' | 'google' | 'none'
|
||||
// If this is set to 'none', favicon loading is disabled and a placeholder icon will be used when a favicon is expected.
|
||||
"favicon_service": "twenty",
|
||||
|
||||
// EXPERIMENTAL!
|
||||
// Enable specific editing motions in the main search bar and during navigation.
|
||||
// This will probably be changed in future updates.
|
||||
// Supports: 'default' | 'emacs'
|
||||
"keybinding": "default",
|
||||
|
||||
"font": {
|
||||
// The font family to use for the general vicinae UI.
|
||||
// "auto" (recommended): uses the bundled Inter font
|
||||
// "system": uses the system/platform default font
|
||||
// Or specify any font family name (e.g. "Fira Sans")
|
||||
"normal": {
|
||||
"family": "auto",
|
||||
// The point size of the font (unlike pixel size, the point size scales with resolution)
|
||||
"size": 10.5
|
||||
}
|
||||
},
|
||||
|
||||
// The general vicinae theme as well as the system icon theme (used for applications and file icons) can be customized
|
||||
// according to the system appearance.
|
||||
// When editing the current theme through the vicinae GUI, it will modify the value that maps to the current system appearance.
|
||||
"theme": {
|
||||
"light": {
|
||||
"name": "vicinae-light",
|
||||
"icon_theme": "auto"
|
||||
},
|
||||
"dark": {
|
||||
"name": "vicinae-dark",
|
||||
"icon_theme": "auto"
|
||||
}
|
||||
},
|
||||
|
||||
"launcher_window": {
|
||||
// Control the opacity of the main window.
|
||||
// Opacity for other surfaces are controlled by the active theme.
|
||||
"opacity": 0.95,
|
||||
|
||||
// Blur the window background.
|
||||
// Only suported on Hyprland for now.
|
||||
// May require a server restart to disable properly.
|
||||
"blur": {
|
||||
"enabled": true
|
||||
},
|
||||
|
||||
// Dims everything behind the vicinae window.
|
||||
// Only supported on Hyprland for now.
|
||||
// May require a server restart to disable properly.
|
||||
"dim_around": true,
|
||||
|
||||
// You can turn client side decorations off if you want to let your compositor draw the rounded
|
||||
// borders and such. This usually gives better results, but is more complicated to setup, if at all possible.
|
||||
"client_side_decorations": {
|
||||
"enabled": true,
|
||||
"rounding": 10,
|
||||
"border_width": 2
|
||||
},
|
||||
|
||||
// In compact mode, vicinae only shows a search bar in the root search if no query is entered, only expanding to its full size when searching.
|
||||
// WARNING: compact mode works best when vicinae is rendered as a layer surface (the default if available), as opposed to a regular floating window.
|
||||
// That's because the part that is not rendered in compact mode is still part of the full window size, allowing the window to be gracefully expanded without having to deal
|
||||
// with a compositor window resize which can generate a lot of visual noise. Server side borders and blur will look notably out of place.
|
||||
"compact_mode": {
|
||||
"enabled": false
|
||||
},
|
||||
|
||||
// The vicinae UI is designed to work best at the default size. If you change this it is highly recommended
|
||||
// that you preserve a similar aspect ratio.
|
||||
"size": {
|
||||
"width": 770,
|
||||
"height": 480
|
||||
},
|
||||
|
||||
// EXPERIMENTAL - X11 ONLY!
|
||||
// The name of the screen (as provided by a tool like xrandr) on which the vicinae window
|
||||
// needs to be shown.
|
||||
// e.g "eDP1", "DP-1"
|
||||
"screen": "auto",
|
||||
|
||||
// Only for wayland compositors that support the 'wlr-layer-shell' protocol (https://wayland.app/protocols/wlr-layer-shell-unstable-v1)
|
||||
// NOTE: layer shell support for the cosmic compositor is explicitly disabled as it is currently broken
|
||||
"layer_shell": {
|
||||
"enabled": true,
|
||||
|
||||
// 'exclusive' | 'on_demand'
|
||||
// WARNING: 'exclusive' is known to break mouse stuff on popups (such as the action panel) on Hyprland
|
||||
"keyboard_interactivity": "on_demand",
|
||||
|
||||
// either 'overlay' or 'top'.
|
||||
// Other layers are not supported as they are unsuitable for a launcher.
|
||||
// 'top' is recommended as using 'overlay' will make the vicinae window appear on top of IME popovers in some scenarios.
|
||||
"layer": "top"
|
||||
}
|
||||
},
|
||||
|
||||
// How much memory (in MB) can be used to cache small image assets in memory directly
|
||||
// The higher this value is the more memory vicinae will use. In exchange for this, you get lower cpu usage.
|
||||
"pixmap_cache_mb": 50,
|
||||
|
||||
// Keybinds are serialized using a custom format.
|
||||
// It is recommended to edit them through the settings GUI, which will write them to this file.
|
||||
"keybinds": {
|
||||
// common shortcuts
|
||||
"open-search-filter": "control+P",
|
||||
"open-settings": "control+,",
|
||||
"toggle-action-panel": "control+B",
|
||||
|
||||
// used to assign shortcuts to generic actions
|
||||
// if an extension provides a specific kind of action, it is encouraged to use shortcuts as defined here.
|
||||
"action.copy": "control+shift+C",
|
||||
"action.copy-name": "control+shift+.",
|
||||
"action.copy-path": "control+shift+,",
|
||||
"action.dangerous-remove": "control+shift+X",
|
||||
"action.duplicate": "control+D",
|
||||
"action.edit": "control+E",
|
||||
"action.edit-secondary": "control+shift+E",
|
||||
"action.move-down": "control+shift+ARROWDOWN",
|
||||
"action.move-up": "control+shift+ARROWUP",
|
||||
"action.new": "control+N",
|
||||
"action.open": "control+O",
|
||||
"action.pin": "control+shift+P",
|
||||
"action.refresh": "control+R",
|
||||
"action.remove": "control+X",
|
||||
"action.save": "control+S"
|
||||
},
|
||||
|
||||
// List of entrypoints that are tagged as "favorite".
|
||||
// They show up on the very top of the root search when no search query is active.
|
||||
// Each value is a serialized entrypoint ID.
|
||||
"favorites": [
|
||||
"clipboard:history"
|
||||
],
|
||||
|
||||
// List of entrypoints to suggest as a fallback when no result matches the
|
||||
// provided search query.
|
||||
// Each value is a serialized entrypoint ID.
|
||||
"fallbacks": [
|
||||
"files:search"
|
||||
],
|
||||
|
||||
// Every item that can be activated from the vicinae root search is referred as an entrypoint, or sometimes, in the case of extensions, as a "command".
|
||||
// Entrypoints are always grouped under a provider.
|
||||
// e,g applications entrypoints are all grouped under the "applications" provider
|
||||
//
|
||||
// The best way to interact with providers and entrypoints is through the graphical interface provided by the
|
||||
// settings window ("extensions" tab). Every time a change is made through this GUI, the relevant values will be
|
||||
// written to the "providers" object below (password preferences excluded).
|
||||
//
|
||||
// The exact list of available providers depends on what extensions have been installed.
|
||||
"providers": {}
|
||||
}
|
||||
22
.config/vicinae/appeareance.jsonc
Normal file
22
.config/vicinae/appeareance.jsonc
Normal file
@ -0,0 +1,22 @@
|
||||
{
|
||||
"$schema": "https://vicinae.com/schemas/config.json",
|
||||
"launcher_window": {
|
||||
// You can turn client side decorations off if you want to let your compositor draw the rounded
|
||||
// borders and such. This usually gives better results, but is more complicated to setup, if at all possible.
|
||||
"client_side_decorations": {
|
||||
"enabled": false
|
||||
},
|
||||
// Only for wayland compositors that support the 'wlr-layer-shell' protocol (https://wayland.app/protocols/wlr-layer-shell-unstable-v1)
|
||||
// NOTE: layer shell support for the cosmic compositor is explicitly disabled as it is currently broken
|
||||
"layer_shell": {
|
||||
"enabled": false,
|
||||
// 'exclusive' | 'on_demand'
|
||||
// WARNING: 'exclusive' is known to break mouse stuff on popups (such as the action panel) on Hyprland
|
||||
"keyboard_interactivity": "on_demand",
|
||||
// either 'overlay' or 'top'.
|
||||
// Other layers are not supported as they are unsuitable for a launcher.
|
||||
// 'top' is recommended as using 'overlay' will make the vicinae window appear on top of IME popovers in some scenarios.
|
||||
"layer": "top"
|
||||
}
|
||||
}
|
||||
}
|
||||
7
.config/vicinae/general.jsonc
Normal file
7
.config/vicinae/general.jsonc
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"$schema": "https://vicinae.com/schemas/config.json",
|
||||
// If the layer shell protocol is used to position the window and the keyboard interactivity is
|
||||
// set to "exclusive" (the default) then this setting will have no effect. Either switch to "on_demand" interactivity
|
||||
// or disable layer shell.
|
||||
"close_on_focus_loss": false
|
||||
}
|
||||
17
.config/vicinae/settings.json
Normal file
17
.config/vicinae/settings.json
Normal file
@ -0,0 +1,17 @@
|
||||
// This configuration is merged with the default vicinae configuration file, which you can obtain by running the `vicinae config default` command.
|
||||
// Every item defined in this file takes precedence over the values defined in the default config or any other imported file.
|
||||
//
|
||||
// You can make manual edits to this file, however you should keep in mind that this file may be written to by vicinae when a configuration change is made through the GUI.
|
||||
// When that happens, any custom comments or formatting will be lost.
|
||||
//
|
||||
// If you want to maintain a configuration file with your own comments and formatting, you should create a separate file and add it to the 'imports' array.
|
||||
//
|
||||
// Learn more about configuration at https://docs.vicinae.com/config
|
||||
|
||||
{
|
||||
"$schema": "https://vicinae.com/schemas/config.json",
|
||||
"imports": [
|
||||
"appeareance.jsonc",
|
||||
"general.jsonc"
|
||||
]
|
||||
}
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"layer": "top",
|
||||
"output": "DP-2",
|
||||
"output": "DP-1",
|
||||
"modules-left": [
|
||||
"custom/power",
|
||||
"hyprland/workspaces",
|
||||
|
||||
51
.config/winapps/compose.yaml
Normal file
51
.config/winapps/compose.yaml
Normal file
@ -0,0 +1,51 @@
|
||||
# For documentation, FAQ, additional configuration options and technical help, visit: https://github.com/dockur/windows
|
||||
|
||||
name: "winapps" # Docker Compose Project Name.
|
||||
# volumes:
|
||||
# Create Volume 'data'.
|
||||
# Located @ '/var/lib/docker/volumes/winapps_data/_data' (Docker).
|
||||
# Located @ '/var/lib/containers/storage/volumes/winapps_data/_data' or '~/.local/share/containers/storage/volumes/winapps_data/_data' (Podman).
|
||||
# data:
|
||||
|
||||
services:
|
||||
windows:
|
||||
image: ghcr.io/dockur/windows:latest
|
||||
container_name: winapps # Created Docker VM Name.
|
||||
environment:
|
||||
# Version of Windows to configure. For valid options, visit:
|
||||
# https://github.com/dockur/windows?tab=readme-ov-file#how-do-i-select-the-windows-version
|
||||
# https://github.com/dockur/windows?tab=readme-ov-file#how-do-i-install-a-custom-image
|
||||
VERSION: "11"
|
||||
RAM_SIZE: "8G" # RAM allocated to the Windows VM.
|
||||
CPU_CORES: "4" # CPU cores allocated to the Windows VM.
|
||||
DISK_SIZE: "64G" # Size of the primary hard disk.
|
||||
# DISK2_SIZE: "32G" # Uncomment to add an additional hard disk to the Windows VM. Ensure it is mounted as a volume below.
|
||||
USERNAME: "paul" # Edit here to set a custom Windows username. The default is 'MyWindowsUser'.
|
||||
PASSWORD: "nicerdicer" # Edit here to set a password for the Windows user. The default is 'MyWindowsPassword'.
|
||||
HOME: "${HOME}" # Set path to Linux user home folder.
|
||||
ARGUMENTS: "-cpu host,arch_capabilities=off"
|
||||
ports:
|
||||
- 8006:8006 # Map '8006' on Linux host to '8006' on Windows VM --> For VNC Web Interface @ http://127.0.0.1:8006.
|
||||
- 3389:3389/tcp # Map '3389' on Linux host to '3389' on Windows VM --> For Remote Desktop Protocol (RDP).
|
||||
- 3389:3389/udp # Map '3389' on Linux host to '3389' on Windows VM --> For Remote Desktop Protocol (RDP).
|
||||
cap_add:
|
||||
- NET_ADMIN # Add network permission
|
||||
stop_grace_period: 120s # Wait 120 seconds before sending SIGTERM when attempting to shut down the Windows VM.
|
||||
restart: on-failure # Restart the Windows VM if the exit code indicates an error.
|
||||
volumes:
|
||||
- ~/.winapps:/storage # Mount local folder 'data' to use as Windows 'C:' drive.
|
||||
- ${HOME}:/shared # Mount Linux user home directory @ '\\host.lan\Data'.
|
||||
#- /path/to/second/hard/disk:/storage2 # Uncomment to create a virtual second hard disk and mount it within the Windows VM. Ensure 'DISK2_SIZE' is specified above.
|
||||
- ./oem:/oem # Enables automatic post-install execution of 'oem/install.bat', applying Windows registry modifications contained within 'oem/RDPApps.reg'.
|
||||
#- /path/to/windows/install/media.iso:/custom.iso # Uncomment to use a custom Windows ISO. If specified, 'VERSION' (e.g. 'tiny11') will be ignored.
|
||||
devices:
|
||||
- /dev/kvm # Enable KVM.
|
||||
- /dev/net/tun # Enable tuntap
|
||||
# Uncomment to mount a disk directly within the Windows VM.
|
||||
# WARNING: /dev/sdX paths may change after reboot. Use persistent identifiers!
|
||||
# NOTE: 'disk1' will be mounted as the main drive. THIS DISK WILL BE FORMATTED BY DOCKER.
|
||||
# All following disks (disk2, ...) WILL NOT BE FORMATTED.
|
||||
# - /dev/disk/by-id/<id>:/disk1
|
||||
# - /dev/disk/by-id/<id>:/disk2
|
||||
# group_add: # uncomment this line and the next one for using rootless podman containers
|
||||
# - keep-groups # to make /dev/kvm work with podman. needs "crun" installed, "runc" will not work! Add your user to the 'kvm' group or another that can access /dev/kvm.
|
||||
1794
.config/winapps/setup.sh
Executable file
1794
.config/winapps/setup.sh
Executable file
File diff suppressed because it is too large
Load Diff
139
.config/winapps/winapps.conf
Normal file
139
.config/winapps/winapps.conf
Normal file
@ -0,0 +1,139 @@
|
||||
##################################
|
||||
# WINAPPS CONFIGURATION FILE #
|
||||
##################################
|
||||
|
||||
# INSTRUCTIONS
|
||||
# - Leading and trailing whitespace are ignored.
|
||||
# - Empty lines are ignored.
|
||||
# - Lines starting with '#' are ignored.
|
||||
# - All characters following a '#' are ignored.
|
||||
|
||||
# [WINDOWS USERNAME]
|
||||
RDP_USER="paul"
|
||||
|
||||
# [WINDOWS PASSWORD]
|
||||
# NOTES:
|
||||
# - If using FreeRDP v3.9.0 or greater, you *have* to set a password
|
||||
RDP_PASS="nicerdicer"
|
||||
|
||||
# [WINDOWS DOMAIN]
|
||||
# DEFAULT VALUE: '' (BLANK)
|
||||
RDP_DOMAIN=""
|
||||
|
||||
# [WINDOWS IPV4 ADDRESS]
|
||||
# NOTES:
|
||||
# - If using 'libvirt', 'RDP_IP' will be determined by WinApps at runtime if left unspecified.
|
||||
# DEFAULT VALUE:
|
||||
# - 'docker': '127.0.0.1'
|
||||
# - 'podman': '127.0.0.1'
|
||||
# - 'libvirt': '' (BLANK)
|
||||
RDP_IP="127.0.0.1"
|
||||
|
||||
# [VM NAME]
|
||||
# NOTES:
|
||||
# - Only applicable when using 'libvirt'
|
||||
# - The libvirt VM name must match so that WinApps can determine VM IP, start the VM, etc.
|
||||
# DEFAULT VALUE: 'RDPWindows'
|
||||
VM_NAME="RDPWindows"
|
||||
|
||||
# [WINAPPS BACKEND]
|
||||
# DEFAULT VALUE: 'docker'
|
||||
# VALID VALUES:
|
||||
# - 'docker'
|
||||
# - 'podman'
|
||||
# - 'libvirt'
|
||||
# - 'manual'
|
||||
WAFLAVOR="docker"
|
||||
|
||||
# [DISPLAY SCALING FACTOR]
|
||||
# NOTES:
|
||||
# - If an unsupported value is specified, a warning will be displayed.
|
||||
# - If an unsupported value is specified, WinApps will use the closest supported value.
|
||||
# DEFAULT VALUE: '100'
|
||||
# VALID VALUES:
|
||||
# - '100'
|
||||
# - '140'
|
||||
# - '180'
|
||||
RDP_SCALE="100"
|
||||
|
||||
# [MOUNTING REMOVABLE PATHS FOR FILES]
|
||||
# NOTES:
|
||||
# - By default, `udisks` (which you most likely have installed) uses /run/media for mounting removable devices.
|
||||
# This improves compatibility with most desktop environments (DEs).
|
||||
# ATTENTION: The Filesystem Hierarchy Standard (FHS) recommends /media instead. Verify your system's configuration.
|
||||
# - To manually mount devices, you may optionally use /mnt.
|
||||
# REFERENCE: https://wiki.archlinux.org/title/Udisks#Mount_to_/media
|
||||
REMOVABLE_MEDIA="/run/media"
|
||||
|
||||
# [ADDITIONAL FREERDP FLAGS & ARGUMENTS]
|
||||
# NOTES:
|
||||
# - You can try adding /network:lan to these flags in order to increase performance, however, some users have faced issues with this.
|
||||
# DEFAULT VALUE: '/cert:tofu /sound /microphone +home-drive'
|
||||
# VALID VALUES: See https://github.com/awakecoding/FreeRDP-Manuals/blob/master/User/FreeRDP-User-Manual.markdown
|
||||
RDP_FLAGS="/cert:tofu /sound /microphone +home-drive"
|
||||
|
||||
# [DEBUG WINAPPS]
|
||||
# NOTES:
|
||||
# - Creates and appends to ~/.local/share/winapps/winapps.log when running WinApps.
|
||||
# DEFAULT VALUE: 'true'
|
||||
# VALID VALUES:
|
||||
# - 'true'
|
||||
# - 'false'
|
||||
DEBUG="true"
|
||||
|
||||
# [AUTOMATICALLY PAUSE WINDOWS]
|
||||
# NOTES:
|
||||
# - This is currently INCOMPATIBLE with 'docker' and 'manual'.
|
||||
# - See https://github.com/dockur/windows/issues/674
|
||||
# DEFAULT VALUE: 'off'
|
||||
# VALID VALUES:
|
||||
# - 'on'
|
||||
# - 'off'
|
||||
AUTOPAUSE="off"
|
||||
|
||||
# [AUTOMATICALLY PAUSE WINDOWS TIMEOUT]
|
||||
# NOTES:
|
||||
# - This setting determines the duration of inactivity to tolerate before Windows is automatically paused.
|
||||
# - This setting is ignored if 'AUTOPAUSE' is set to 'off'.
|
||||
# - The value must be specified in seconds (to the nearest 10 seconds e.g., '30', '40', '50', etc.).
|
||||
# - For RemoteApp RDP sessions, there is a mandatory 20-second delay, so the minimum value that can be specified here is '20'.
|
||||
# - Source: https://techcommunity.microsoft.com/t5/security-compliance-and-identity/terminal-services-remoteapp-8482-session-termination-logic/ba-p/246566
|
||||
# DEFAULT VALUE: '300'
|
||||
# VALID VALUES: >=20
|
||||
AUTOPAUSE_TIME="300"
|
||||
|
||||
# [FREERDP COMMAND]
|
||||
# NOTES:
|
||||
# - WinApps will attempt to automatically detect the correct command to use for your system.
|
||||
# DEFAULT VALUE: '' (BLANK)
|
||||
# VALID VALUES: The command required to run FreeRDPv3 on your system (e.g., 'xfreerdp', 'xfreerdp3', etc.).
|
||||
FREERDP_COMMAND=""
|
||||
|
||||
# [TIMEOUTS]
|
||||
# NOTES:
|
||||
# - These settings control various timeout durations within the WinApps setup.
|
||||
# - Increasing the timeouts is only necessary if the corresponding errors occur.
|
||||
# - Ensure you have followed all the Troubleshooting Tips in the error message first.
|
||||
|
||||
# PORT CHECK
|
||||
# - The maximum time (in seconds) to wait when checking if the RDP port on Windows is open.
|
||||
# - Corresponding error: "NETWORK CONFIGURATION ERROR" (exit status 13).
|
||||
# DEFAULT VALUE: '5'
|
||||
PORT_TIMEOUT="5"
|
||||
|
||||
# RDP CONNECTION TEST
|
||||
# - The maximum time (in seconds) to wait when testing the initial RDP connection to Windows.
|
||||
# - Corresponding error: "REMOTE DESKTOP PROTOCOL FAILURE" (exit status 14).
|
||||
# DEFAULT VALUE: '30'
|
||||
RDP_TIMEOUT="30"
|
||||
|
||||
# APPLICATION SCAN
|
||||
# - The maximum time (in seconds) to wait for the script that scans for installed applications on Windows to complete.
|
||||
# - Corresponding error: "APPLICATION QUERY FAILURE" (exit status 15).
|
||||
# DEFAULT VALUE: '60'
|
||||
APP_SCAN_TIMEOUT="60"
|
||||
|
||||
# WINDOWS BOOT
|
||||
# - The maximum time (in seconds) to wait for the Windows VM to boot if it is not running, before attempting to launch an application.
|
||||
# DEFAULT VALUE: '120'
|
||||
BOOT_TIMEOUT="120"
|
||||
30
.local/share/darkman/gtk-theme.py
Executable file
30
.local/share/darkman/gtk-theme.py
Executable file
@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import subprocess
|
||||
from argparse import ArgumentParser
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = ArgumentParser(description="GTK theme switcher")
|
||||
parser.add_argument(
|
||||
"mode",
|
||||
help="The mode to switch the GTK theme to (e.g., 'dark' or 'light')",
|
||||
)
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.mode not in ["dark", "light"]:
|
||||
print("Invalid mode. Please choose 'dark' or 'light'.")
|
||||
exit(1)
|
||||
|
||||
gtk_theme = "Adwaita-dark" if args.mode == "dark" else "Adwaita"
|
||||
color_scheme = "prefer-dark" if args.mode == "dark" else "prefer-light"
|
||||
|
||||
# Set the GTK theme using gsettings
|
||||
subprocess.run(
|
||||
["gsettings", "set", "org.gnome.desktop.interface", "gtk-theme", gtk_theme],
|
||||
check=True,
|
||||
)
|
||||
subprocess.run(
|
||||
["gsettings", "set", "org.gnome.desktop.interface", "color-scheme", color_scheme],
|
||||
check=True,
|
||||
)
|
||||
|
||||
39
.local/share/darkman/vscode-theme.py
Executable file
39
.local/share/darkman/vscode-theme.py
Executable file
@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import re
|
||||
from argparse import ArgumentParser
|
||||
from pathlib import Path
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = ArgumentParser(description="VS Code theme switcher")
|
||||
parser.add_argument(
|
||||
"mode",
|
||||
help="The mode to switch the VS Code theme to (e.g., 'dark' or 'light')",
|
||||
)
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.mode not in ["dark", "light"]:
|
||||
print("Invalid mode. Please choose 'dark' or 'light'.")
|
||||
exit(1)
|
||||
|
||||
settings = Path.home() / ".config/Code/User/settings.json"
|
||||
|
||||
if not settings.exists():
|
||||
print(f"VS Code settings file not found at {settings}")
|
||||
exit(1)
|
||||
|
||||
# We just replace the theme name in the settings file using regex,
|
||||
# this way we don't have to worry about jsonc parsing.
|
||||
theme = "Monokai Pro" if args.mode == "dark" else "Monokai Pro Light"
|
||||
|
||||
with settings.open("r") as f:
|
||||
content = f.read()
|
||||
|
||||
new_content = re.sub(
|
||||
r'"workbench\.colorTheme"\s*:\s*".*?"',
|
||||
f'"workbench.colorTheme": "{theme}"',
|
||||
content,
|
||||
)
|
||||
|
||||
with settings.open("w") as f:
|
||||
f.write(new_content)
|
||||
7
.zshrc
7
.zshrc
@ -142,13 +142,14 @@ alias open="xdg-open"
|
||||
alias lg="lazygit"
|
||||
alias ccat="pygmentize -g -O style=monokai,linenos=1"
|
||||
alias rm="echo Use the full path i.e. '/bin/rm', consider using: trash"
|
||||
alias explain="gh copilot explain"
|
||||
alias explain="copilot explain"
|
||||
alias csv="csvlens"
|
||||
|
||||
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"
|
||||
|
||||
@ -158,6 +159,8 @@ export PATH="/usr/local/opt/tcl-tk/bin:$PATH"
|
||||
# ws shortcuts
|
||||
alias wsproddb="psql -h ep-shiny-brook-a23l5gzv-pooler.eu-central-1.aws.neon.tech -d neondb -U neondb_owner"
|
||||
alias wsdevdb="psql -h ep-bitter-queen-a2jgwcaj-pooler.eu-central-1.aws.neon.tech -d verceldb -U default"
|
||||
alias wsrecupdb="psql -h ep-icy-dew-aggbrr4l-pooler.c-2.eu-central-1.aws.neon.tech -d neondb -U neondb_owner"
|
||||
alias wsrecupdevdb="psql -h ep-broad-base-ag8vy0hl-pooler.c-2.eu-central-1.aws.neon.tech -d neondb -U neondb_owner"
|
||||
|
||||
# Fix ls colors for synology directories
|
||||
LS_COLORS+=':ow=01;33'
|
||||
@ -170,6 +173,8 @@ HISTFILE=~/.histfile
|
||||
HISTSIZE=10000
|
||||
SAVEHIST=10000
|
||||
|
||||
export XDG_DATA_DIRS="$HOME/.local/share:$XDG_DATA_DIRS"
|
||||
|
||||
# Android tools
|
||||
export ANDROID_SDK_ROOT="$HOME/.local/opt/android-sdk"
|
||||
export ANDROID_HOME="$ANDROID_SDK_ROOT"
|
||||
|
||||
Reference in New Issue
Block a user