Compare commits
10 Commits
e158eaa82d
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 0d71726eca | |||
| 1bb979d7d3 | |||
| 1321ace4a0 | |||
| 1ba1c7625f | |||
| cbe2f91b38 | |||
| 7b8b85aea8 | |||
| 6e9f9457b6 | |||
| d80c6b2d2f | |||
| f218d9b26c | |||
| a70e965e2c |
41
.config/Code - Insiders/User/settings.json
Normal file
41
.config/Code - Insiders/User/settings.json
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"window.autoDetectColorScheme": true,
|
||||
"workbench.preferredLightColorTheme": "Abyss",
|
||||
"workbench.iconTheme": "material-icon-theme",
|
||||
"workbench.colorCustomizations": {
|
||||
/* Hintergrundfarben (Tiefes Wald-Lila) */
|
||||
"editor.background": "#191024",
|
||||
"sideBar.background": "#191024",
|
||||
"activityBar.background": "#191024",
|
||||
"titleBar.activeBackground": "#191024",
|
||||
"terminal.background": "#191024",
|
||||
|
||||
/* Textfarben (Warmes Weiß) */
|
||||
"editor.foreground": "#fce8e1",
|
||||
"titleBar.activeForeground": "#fce8e1",
|
||||
"sideBar.foreground": "#fce8e1",
|
||||
|
||||
/* Akzente & Rahmen (Dunkles Magenta & Sonnen-Orange) */
|
||||
"sideBar.border": "#3b1d3d",
|
||||
"editorGroup.border": "#3b1d3d",
|
||||
"activityBar.foreground": "#ff7b3b",
|
||||
"activityBarBadge.background": "#e0274a",
|
||||
|
||||
/* Tabs (Wie in Firefox) */
|
||||
"tab.activeBackground": "#3b1d3d",
|
||||
"tab.inactiveBackground": "#191024",
|
||||
"tab.activeBorderTop": "#ff7b3b",
|
||||
"tab.activeForeground": "#ffffff",
|
||||
"tab.inactiveForeground": "#fce8e1",
|
||||
|
||||
/* Statusleiste unten */
|
||||
"statusBar.background": "#3b1d3d",
|
||||
"statusBar.foreground": "#fce8e1",
|
||||
"statusBar.border": "#ff7b3b",
|
||||
|
||||
/* Ausgewählte Dateien/Listen (Pink/Rot aus den Wolken) */
|
||||
"list.activeSelectionBackground": "#e0274a",
|
||||
"list.activeSelectionForeground": "#ffffff",
|
||||
"list.hoverBackground": "#3b1d3d"
|
||||
}
|
||||
}
|
||||
71
.config/dunst/dunstrc
Normal file
71
.config/dunst/dunstrc
Normal file
@@ -0,0 +1,71 @@
|
||||
[global]
|
||||
### Anzeige & Geometrie ###
|
||||
monitor = 1
|
||||
follow = none
|
||||
width = 300
|
||||
height = (0, 300)
|
||||
origin = top-right
|
||||
offset = (15, 15)
|
||||
scale = 0
|
||||
notification_limit = 5
|
||||
|
||||
### Design & Abstände ###
|
||||
font = Fira Code 11
|
||||
corner_radius = 12
|
||||
frame_width = 2
|
||||
gap_size = 5
|
||||
padding = 12
|
||||
horizontal_padding = 12
|
||||
text_icon_padding = 10
|
||||
separator_height = 2
|
||||
separator_color = frame
|
||||
|
||||
### Fortschrittsbalken (für Lautstärke/Helligkeit) ###
|
||||
progress_bar = true
|
||||
progress_bar_height = 8
|
||||
progress_bar_frame_width = 0
|
||||
progress_bar_min_width = 150
|
||||
progress_bar_max_width = 300
|
||||
progress_bar_corner_radius = 4
|
||||
|
||||
### Text ###
|
||||
markup = full
|
||||
format = "<b>%s</b>\n%b"
|
||||
alignment = left
|
||||
vertical_alignment = center
|
||||
show_indicators = no
|
||||
word_wrap = yes
|
||||
|
||||
### Icons ###
|
||||
enable_recursive_icon_lookup = true
|
||||
icon_theme = "Papirus-Dark" # Falls du ein anderes Icon-Theme nutzt, hier eintragen
|
||||
icon_position = left
|
||||
min_icon_size = 32
|
||||
max_icon_size = 64
|
||||
|
||||
### Wayland / Hyprland ###
|
||||
layer = top
|
||||
force_xwayland = false
|
||||
|
||||
### FARBEN - WATCH TOWER SUNSET THEME ###
|
||||
|
||||
[urgency_low]
|
||||
# Unwichtige Meldungen (z.B. Spotify Songwechsel)
|
||||
background = "#191024" # Tiefes Wald-Lila
|
||||
foreground = "#fce8e1" # Warmes Weiß
|
||||
frame_color = "#3b1d3d" # Dunkles Magenta (sehr dezent)
|
||||
timeout = 5
|
||||
|
||||
[urgency_normal]
|
||||
# Normale Meldungen (z.B. Chat-Nachrichten)
|
||||
background = "#191024"
|
||||
foreground = "#fce8e1"
|
||||
frame_color = "#ff7b3b" # Leuchtendes Sonnen-Orange als Rahmen
|
||||
timeout = 10
|
||||
|
||||
[urgency_critical]
|
||||
# Kritische Meldungen (z.B. Akku fast leer)
|
||||
background = "#191024"
|
||||
foreground = "#ffffff" # Reines Weiß für maximalen Kontrast
|
||||
frame_color = "#e0274a" # Warnendes Pink/Rot aus den Wolken
|
||||
timeout = 0 # 0 = Bleibt stehen, bis du klickst
|
||||
@@ -26,6 +26,22 @@ monitor=DP-1, 2560x1440@144, 0x0, 1
|
||||
monitor=DP-2, 1920x1200@60, 2560x0, 1
|
||||
|
||||
|
||||
##################
|
||||
### GPU NVIDIA ###
|
||||
##################
|
||||
|
||||
env = NVD_BACKEND,direct
|
||||
env = LIBVA_DRIVER_NAME,nvidia
|
||||
env = XDG_SESSION_TYPE,wayland
|
||||
env = GBM_BACKEND,nvidia-drm
|
||||
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
|
||||
|
||||
env = XDG_CURRENT_DESKTOP,Hyprland
|
||||
env = XDG_SESSION_TYPE,wayland
|
||||
env = XDG_SESSION_DESKTOP,Hyprland
|
||||
env = QT_QPA_PLATFORMTHEME,hyprqt6engine
|
||||
|
||||
|
||||
###################
|
||||
### MY PROGRAMS ###
|
||||
###################
|
||||
@@ -49,6 +65,7 @@ exec-once = $terminal
|
||||
exec-once = waybar
|
||||
exec-once = hyprpaper
|
||||
exec-once = hypridle
|
||||
exec-once = pass-secret-service
|
||||
# exec-once = $terminal
|
||||
# exec-once = nm-applet &
|
||||
# exec-once = waybar & hyprpaper & firefox
|
||||
@@ -189,6 +206,28 @@ animations {
|
||||
# rounding = 0
|
||||
# }
|
||||
|
||||
# --- Workspaces an Monitore binden ---
|
||||
|
||||
# Ungerade Workspaces auf den linken Monitor (DP-1)
|
||||
workspace = 1, monitor:DP-1
|
||||
workspace = 3, monitor:DP-1
|
||||
workspace = 5, monitor:DP-1
|
||||
workspace = 7, monitor:DP-1
|
||||
workspace = 9, monitor:DP-1
|
||||
|
||||
# Gerade Workspaces auf den rechten Monitor (DP-2)
|
||||
workspace = 2, monitor:DP-2
|
||||
workspace = 4, monitor:DP-2
|
||||
workspace = 6, monitor:DP-2
|
||||
workspace = 8, monitor:DP-2
|
||||
workspace = 10, monitor:DP-2
|
||||
|
||||
# Discord immer auf Workspace 2
|
||||
windowrule = workspace 2, match:class ^(discord)$
|
||||
# Steam immer auf Workspace 5
|
||||
windowrule = workspace 5, match:class ^(steam)$, match:title ^(Steam)$
|
||||
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Dwindle-Layout/ for more
|
||||
dwindle {
|
||||
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
@@ -294,8 +333,16 @@ bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
||||
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
||||
|
||||
# Example special workspace (scratchpad)
|
||||
bind = $mainMod, S, togglespecialworkspace, magic
|
||||
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
|
||||
bind = $mainMod, A, togglespecialworkspace, magic
|
||||
bind = $mainMod SHIFT, A, movetoworkspace, special:magic
|
||||
|
||||
# --- Screenshots ---
|
||||
# 1. Bereich auswählen -> Direkt in die Zwischenablage kopieren (wie Shift+Win+S)
|
||||
bind = $mainMod SHIFT, S, exec, grim -g "$(slurp)" - | wl-copy
|
||||
# 2. Bereich auswählen -> Im Editor (Swappy) öffnen (für Pfeile, Text, Speichern)
|
||||
bind = , Print, exec, grim -g "$(slurp)" - | swappy -f -
|
||||
# 3. Den kompletten Bildschirm sofort fotografieren und in Bilder speichern
|
||||
bind = SHIFT, Print, exec, grim ~/Bilder/Screenshots/Screenshot_$(date +'%Y%m%d_%H%M%S').png
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll
|
||||
bind = $mainMod, mouse_down, workspace, e+1
|
||||
@@ -319,6 +366,8 @@ bindl = , XF86AudioPause, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPrev, exec, playerctl previous
|
||||
|
||||
bind = $mainMod SHIFT, R, exec, ~/.config/hypr/toggle_remote.sh
|
||||
|
||||
##############################
|
||||
### WINDOWS AND WORKSPACES ###
|
||||
##############################
|
||||
|
||||
271
.config/hypr/hyprland.lua
Normal file
271
.config/hypr/hyprland.lua
Normal file
@@ -0,0 +1,271 @@
|
||||
------------------------------------------
|
||||
-- Hyprland
|
||||
------------------------------------------
|
||||
|
||||
------------------------------------------
|
||||
-- My Programs
|
||||
------------------------------------------
|
||||
|
||||
local terminal = "kitty"
|
||||
local fileManager = "dolphin"
|
||||
local menu = "wofi"
|
||||
|
||||
local webBrowser = "firefox"
|
||||
local codeEditor = "code-insiders"
|
||||
local discordSpecial = "discord"
|
||||
local discordWorkspace = "special:" .. discordSpecial
|
||||
|
||||
------------------------------------------
|
||||
local mainMod = "SUPER"
|
||||
|
||||
------------------------------------------
|
||||
-- Monitor
|
||||
------------------------------------------
|
||||
|
||||
hl.monitor({
|
||||
output = "DP-1",
|
||||
mode = "2560x1440@144",
|
||||
position = "0x0",
|
||||
scale = 1
|
||||
})
|
||||
|
||||
hl.monitor({
|
||||
output = "DP-2",
|
||||
mode = "1920x1200@60",
|
||||
position = "2560x0",
|
||||
scale = 1
|
||||
})
|
||||
|
||||
------------------------------------------
|
||||
-- GPU NVIDIA
|
||||
------------------------------------------
|
||||
|
||||
local env_vars = {
|
||||
NVD_BACKEND = "direct",
|
||||
LIBVA_DRIVER_NAME = "nvidia",
|
||||
XDG_SESSION_TYPE = "wayland",
|
||||
GBM_BACKEND = "nvidia-drm",
|
||||
__GLX_VENDOR_LIBRARY_NAME = "nvidia",
|
||||
|
||||
XDG_CURRENT_DESKTOP = "Hyprland",
|
||||
XDG_SESSION_DESKTOP = "Hyprland",
|
||||
QT_QPA_PLATFORMTHEME = "hyprqt6engine",
|
||||
|
||||
-- Cursor size
|
||||
XCURSOR_SIZE = "24",
|
||||
HYPRCURSOR_SIZE = "24"
|
||||
}
|
||||
|
||||
for key, val in pairs(env_vars) do
|
||||
hl.env(key, val)
|
||||
end
|
||||
|
||||
------------------------------------------
|
||||
-- Autostart
|
||||
------------------------------------------
|
||||
|
||||
-- In 0.55 werden Autostarts am besten über das `hyprland.start` Event ausgeführt
|
||||
hl.on("hyprland.start", function()
|
||||
hl.exec_cmd(terminal)
|
||||
hl.exec_cmd("waybar")
|
||||
hl.exec_cmd("hyprpaper")
|
||||
hl.exec_cmd("hypridle")
|
||||
hl.exec_cmd("pass-secret-service")
|
||||
end)
|
||||
|
||||
-- ==========================================
|
||||
-- ALLGEMEINE KONFIGURATION
|
||||
-- ==========================================
|
||||
hl.config({
|
||||
general = {
|
||||
gaps_in = 5,
|
||||
gaps_out = 10,
|
||||
border_size = 2,
|
||||
|
||||
col = {
|
||||
active_border = { colors = {"rgba(ff7b3bee)", "rgba(e0274aee)"}, angle = 45 },
|
||||
inactive_border = "rgba(595959aa)",
|
||||
},
|
||||
|
||||
resize_on_border = false,
|
||||
allow_tearing = false,
|
||||
layout = "dwindle"
|
||||
},
|
||||
decoration = {
|
||||
rounding = 10,
|
||||
rounding_power = 2,
|
||||
active_opacity = 1.0,
|
||||
inactive_opacity = 1.0,
|
||||
shadow = {
|
||||
enabled = true,
|
||||
range = 4,
|
||||
render_power = 3,
|
||||
color = "rgba(1a1a1aee)"
|
||||
},
|
||||
blur = {
|
||||
enabled = true,
|
||||
size = 3,
|
||||
passes = 1,
|
||||
vibrancy = 0.1696
|
||||
}
|
||||
},
|
||||
animations = {
|
||||
enabled = true,
|
||||
beziers = {
|
||||
{"easeOutQuint", 0.23, 1, 0.32, 1},
|
||||
{"easeInOutCubic", 0.65, 0.05, 0.36, 1},
|
||||
{"linear", 0, 0, 1, 1},
|
||||
{"almostLinear", 0.5, 0.5, 0.75, 1},
|
||||
{"quick", 0.15, 0, 0.1, 1}
|
||||
},
|
||||
animations = {
|
||||
{"global", true, 10, "default"},
|
||||
{"border", true, 5.39, "easeOutQuint"},
|
||||
{"windows", true, 4.79, "easeOutQuint"},
|
||||
{"windowsIn", true, 4.1, "easeOutQuint", "popin 87%"},
|
||||
{"windowsOut", true, 1.49, "linear", "popin 87%"},
|
||||
{"fadeIn", true, 1.73, "almostLinear"},
|
||||
{"fadeOut", true, 1.46, "almostLinear"},
|
||||
{"fade", true, 3.03, "quick"},
|
||||
{"layers", true, 3.81, "easeOutQuint"},
|
||||
{"layersIn", true, 4, "easeOutQuint", "fade"},
|
||||
{"layersOut", true, 1.5, "linear", "fade"},
|
||||
{"fadeLayersIn", true, 1.79, "almostLinear"},
|
||||
{"fadeLayersOut", true, 1.39, "almostLinear"},
|
||||
{"workspaces", true, 1.94, "almostLinear", "fade"},
|
||||
{"workspacesIn", true, 1.21, "almostLinear", "fade"},
|
||||
{"workspacesOut", true, 1.94, "almostLinear", "fade"},
|
||||
{"zoomFactor", true, 7, "quick"}
|
||||
}
|
||||
},
|
||||
dwindle = {
|
||||
preserve_split = true
|
||||
-- Hinweis: 'pseudotile' existiert ab v0.55 nicht mehr und wurde entfernt!
|
||||
},
|
||||
master = {
|
||||
new_status = "master"
|
||||
},
|
||||
misc = {
|
||||
force_default_wallpaper = 0,
|
||||
disable_hyprland_logo = true
|
||||
},
|
||||
input = {
|
||||
kb_layout = "de",
|
||||
follow_mouse = 1,
|
||||
sensitivity = 0,
|
||||
touchpad = {
|
||||
natural_scroll = false
|
||||
}
|
||||
},
|
||||
devices = {
|
||||
{ name = "epic-mouse-v1", sensitivity = -0.5 }
|
||||
}
|
||||
})
|
||||
|
||||
-- Swipes und Gesten
|
||||
hl.gesture({
|
||||
fingers = 3,
|
||||
direction = "horizontal",
|
||||
action = "workspace"
|
||||
})
|
||||
|
||||
-- ==========================================
|
||||
-- WORKSPACE BINDINGS
|
||||
-- ==========================================
|
||||
-- Ungerade Workspaces auf DP-1
|
||||
for _, ws in ipairs({1, 3, 5, 7, 9}) do
|
||||
hl.workspace_rule({ workspace = tostring(ws), monitor = "DP-1" })
|
||||
end
|
||||
|
||||
-- Gerade Workspaces auf DP-2
|
||||
for _, ws in ipairs({2, 4, 6, 8, 10}) do
|
||||
hl.workspace_rule({ workspace = tostring(ws), monitor = "DP-2" })
|
||||
end
|
||||
|
||||
hl.workspace_rule({ workspace = discordWorkspace, monitor = "DP-2" })
|
||||
|
||||
-- ==========================================
|
||||
-- KEYBINDS
|
||||
-- ==========================================
|
||||
-- Die neue hl.bind()-Funktion kombiniert Modifier und Taste per String
|
||||
|
||||
hl.bind(mainMod .. " + D", hl.dsp.exec_cmd("~/.config/hypr/scripts/toggle_discord.sh"))
|
||||
hl.bind(mainMod .. " + Q", hl.dsp.exec_cmd(terminal))
|
||||
hl.bind(mainMod .. " + C", hl.dsp.window.close())
|
||||
hl.bind(mainMod .. " + M", hl.dsp.exec_cmd("command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch 'hl.dsp.exit()'"))
|
||||
hl.bind(mainMod .. " + E", hl.dsp.exec_cmd(fileManager))
|
||||
hl.bind(mainMod .. " + V", hl.dsp.window.float({ action = "toggle" }))
|
||||
hl.bind(mainMod .. " + R", hl.dsp.exec_cmd(menu .. " --show drun --conf ~/.config/wofi/config --style ~/.config/wofi/style.css"))
|
||||
hl.bind(mainMod .. " + P", hl.dsp.window.pseudo())
|
||||
hl.bind(mainMod .. " + J", hl.dsp.layout("togglesplit"))
|
||||
|
||||
hl.bind(mainMod .. " + SHIFT + B", hl.dsp.exec_cmd("~/.config/waybar/refrech.sh"))
|
||||
hl.bind(mainMod .. " + L", hl.dsp.exec_cmd("hyprlock"))
|
||||
hl.bind(mainMod .. " + SHIFT + L", hl.dsp.exec_cmd("systemctl suspend"))
|
||||
hl.bind(mainMod .. " + SHIFT + R", hl.dsp.exec_cmd("~/.config/hypr/scripts/toggle_remote.sh"))
|
||||
|
||||
-- Move focus with mainMod + arrow keys
|
||||
hl.bind(mainMod .. " + left", hl.dsp.focus({ direction = "left" }))
|
||||
hl.bind(mainMod .. " + right", hl.dsp.focus({ direction = "right" }))
|
||||
hl.bind(mainMod .. " + up", hl.dsp.focus({ direction = "up" }))
|
||||
hl.bind(mainMod .. " + down", hl.dsp.focus({ direction = "down" }))
|
||||
|
||||
-- Switch workspaces with mainMod + [0-9]
|
||||
-- Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
for i = 1, 10 do
|
||||
local key = i % 10 -- 10 maps to key 0
|
||||
-- Führt ab sofort unser cleveres Switch-Skript aus!
|
||||
hl.bind(mainMod .. " + " .. key, hl.dsp.exec_cmd("~/.config/hypr/scripts/switch_ws.sh " .. i))
|
||||
hl.bind(mainMod .. " + SHIFT + " .. key, hl.dsp.window.move({ workspace = i }))
|
||||
end
|
||||
|
||||
-- Scratchpad
|
||||
hl.bind(mainMod .. " + A", hl.dsp.workspace.toggle_special("magic"))
|
||||
hl.bind(mainMod .. " + SHIFT + A", hl.dsp.window.move({ workspace = "special:magic" }))
|
||||
|
||||
-- Screenshots
|
||||
hl.bind(mainMod .. " + SHIFT + S", hl.dsp.exec_cmd([[grim -g "$(slurp)" - | wl-copy]]))
|
||||
hl.bind("Print", hl.dsp.exec_cmd([[grim -g "$(slurp)" - | swappy -f -]]))
|
||||
hl.bind("SHIFT + Print", hl.dsp.exec_cmd([[grim ~/Bilder/Screenshots/Screenshot_$(date +'%Y%m%d_%H%M%S').png]]))
|
||||
|
||||
-- Mausrad-Workspaces
|
||||
hl.bind(mainMod .. " + mouse_down", hl.dsp.focus({ workspace = "e+1" }))
|
||||
hl.bind(mainMod .. " + mouse_up", hl.dsp.focus({ workspace = "e-1" }))
|
||||
|
||||
-- Maus-Verschieben/Vergrößern (mouse:272 = LMB, mouse:273 = RMB)
|
||||
hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true })
|
||||
hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
|
||||
|
||||
-- Laptop multimedia keys for volume and LCD brightness
|
||||
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"), { locked = true, repeating = true })
|
||||
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"), { locked = true, repeating = true })
|
||||
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"), { locked = true, repeating = true })
|
||||
hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"), { locked = true, repeating = true })
|
||||
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%+"), { locked = true, repeating = true })
|
||||
hl.bind("XF86MonBrightnessDown",hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%-"), { locked = true, repeating = true })
|
||||
|
||||
-- Requires playerctl
|
||||
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl next"), { locked = true })
|
||||
hl.bind("XF86AudioPause", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
|
||||
hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
|
||||
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"), { locked = true })
|
||||
|
||||
|
||||
-- ==========================================
|
||||
-- FENSTERREGELN (hl.window_rule)
|
||||
-- ==========================================
|
||||
-- In v0.55 nutzt du für Fensterregeln eine saubere Table-Struktur für Matches
|
||||
hl.window_rule({ match = { class = "^(discord)$" }, workspace = discordWorkspace })
|
||||
hl.window_rule({ match = { class = "^(steam)$", title = "^(Steam)$" }, workspace = "5" })
|
||||
|
||||
-- Maximize-Events von allen Apps unterdrücken
|
||||
hl.window_rule({ match = { class = ".*" }, suppress_event = "maximize" })
|
||||
|
||||
-- XWayland Dragging-Fix
|
||||
hl.window_rule({
|
||||
match = { class = "^$", title = "^$", xwayland = true, float = true, fullscreen = false, pin = false },
|
||||
no_focus = true
|
||||
})
|
||||
|
||||
-- hyprland-run Modifikationen
|
||||
hl.window_rule({ match = { class = "hyprland-run" }, float = true, move = "20 monitor_h-120" })
|
||||
18
.config/hypr/scripts/switch_ws.sh
Executable file
18
.config/hypr/scripts/switch_ws.sh
Executable file
@@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
TARGET_WS=$1
|
||||
|
||||
# 1. WICHTIG: Zuerst zum gewählten Workspace wechseln!
|
||||
# Dadurch springt unser Fokus sicher auf den richtigen Monitor (z.B. DP-2).
|
||||
hyprctl dispatch 'hl.dsp.focus({ workspace = '"$TARGET_WS"' })'
|
||||
|
||||
# 2. Ist der Ziel-Workspace eine gerade Zahl (2, 4, 6, 8, 10)?
|
||||
if [[ "$TARGET_WS" =~ ^(2|4|6|8|10)$ ]]; then
|
||||
|
||||
# 3. Prüfen: Ist das Discord-Overlay offen?
|
||||
if hyprctl monitors | grep -iq "special.*workspace.*discord"; then
|
||||
|
||||
# 4. Zuklappen! (Da wir jetzt sicher auf DP-2 fokussiert sind, bleibt es auch dort)
|
||||
hyprctl dispatch 'hl.dsp.workspace.toggle_special("discord")'
|
||||
fi
|
||||
fi
|
||||
14
.config/hypr/scripts/toggle_discord.sh
Executable file
14
.config/hypr/scripts/toggle_discord.sh
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# 1. Prüfen, ob der Discord-Prozess (egal ob groß/klein geschrieben) läuft
|
||||
if ! pgrep -i "discord" > /dev/null; then
|
||||
# Starten, falls nicht
|
||||
discord > /dev/null 2>&1 &
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# 2. Zuerst zwingend DP-2 fokussieren (angepasst an deine Lua-Syntax)
|
||||
hyprctl dispatch 'hl.dsp.focus({ monitor = "DP-2" })'
|
||||
|
||||
# 3. Dein funktionierender Befehl zum Ein-/Ausklappen!
|
||||
hyprctl dispatch 'hl.dsp.workspace.toggle_special("discord")'
|
||||
13
.config/hypr/scripts/toggle_remote.sh
Executable file
13
.config/hypr/scripts/toggle_remote.sh
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
|
||||
SECOND_MONITOR="DP-2"
|
||||
|
||||
if hyprctl monitors | grep -q "$SECOND_MONITOR"; then
|
||||
# Monitor ausschalten (Offizielle Lua-Syntax: disabled = true)
|
||||
hyprctl eval "hl.monitor({ output = '$SECOND_MONITOR', disabled = true })"
|
||||
notify-send "RustDesk Modus" "DP-2 deaktiviert"
|
||||
else
|
||||
# Monitor wieder einschalten (mit explizitem disabled = false zur Sicherheit)
|
||||
hyprctl eval "hl.monitor({ output = '$SECOND_MONITOR', mode = '1920x1200@60', position = '2560x0', scale = 1, disabled = false })"
|
||||
notify-send "Desktop Modus" "DP-2 aktiviert"
|
||||
fi
|
||||
2
.gnupg/gpg-agent.conf
Normal file
2
.gnupg/gpg-agent.conf
Normal file
@@ -0,0 +1,2 @@
|
||||
default-cache-ttl 3600
|
||||
max-cache-ttl 28800
|
||||
41
README.MD
41
README.MD
@@ -38,7 +38,46 @@ sudo pacman -S pass gnupg
|
||||
|
||||
---
|
||||
|
||||
## 📂 Wichtige Dateien im Repo
|
||||
## <EFBFBD> VS Code & Electron Keyring (Hyprland)
|
||||
|
||||
Da unter Hyprland kein Standard-Keyring läuft, VS Code diesen aber zwingend benötigt (z. B. für GitHub Copilot, Settings-Sync oder Git), nutzen wir eine Brücke. Diese stellt die D-Bus Secret Service API bereit und speichert die Geheimnisse direkt in unserer bestehenden pass-Datenbank.
|
||||
|
||||
### 1. Installation der Brücke
|
||||
```fish
|
||||
# Installiert den pass-secret-service über das AUR
|
||||
paru -S pass-secret-service-bin
|
||||
```
|
||||
|
||||
### 2. Dienst aktivieren
|
||||
Damit die Brücke im Hintergrund läuft, aktivieren wir den zugehörigen Systemd-User-Service:
|
||||
```fish
|
||||
systemctl --user enable --now pass-secret-service
|
||||
```
|
||||
|
||||
### 3. VS Code konfigurieren
|
||||
VS Code muss angewiesen werden, die D-Bus Schnittstelle zu nutzen.
|
||||
In VS Code die Command Palette öffnen (Strg + Shift + P), nach Preferences: Configure Runtime Arguments suchen und den folgenden Eintrag in der argv.json setzen:
|
||||
```json
|
||||
"password-store": "gnome-libsecret"
|
||||
```
|
||||
|
||||
*(Hinweis: gnome-libsecret ist hier lediglich das Electron-Schlagwort für die D-Bus-Schnittstelle, die wir mit pass gekapert haben).*
|
||||
|
||||
### 4. GPG-Agent Cache konfigurieren (Empfohlen)
|
||||
Damit VS Code nicht bei jedem Sync-Vorgang im Hintergrund ein Passwort-Popup triggert, sollte der GPG-Cache erhöht werden. Dazu die Datei `~/.gnupg/gpg-agent.conf` anpassen:
|
||||
```
|
||||
default-cache-ttl 3600
|
||||
max-cache-ttl 28800
|
||||
```
|
||||
|
||||
Anschließend den Agenten neu laden:
|
||||
```fish
|
||||
gpg-connect-agent reloadagent /bye
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## <20>📂 Wichtige Dateien im Repo
|
||||
* **Hyprland:** `~/.config/hypr/hyprland.conf` (Keybinds & Window-Rules)
|
||||
* **Hyprpaper:** `~/.config/hypr/hyprpaper.conf` (Neue Block-Syntax!)
|
||||
* **Waybar/Wofi:** Styles und Configs für Topbar und Launcher.
|
||||
|
||||
Reference in New Issue
Block a user