Compare commits
1 Commits
aebf67c2fd
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 6543643da9 |
@@ -40,10 +40,7 @@ packages:
|
|||||||
# Thunderbolt
|
# Thunderbolt
|
||||||
- bolt
|
- bolt
|
||||||
# Hyprland
|
# Hyprland
|
||||||
- hypridle
|
|
||||||
- hyprland
|
- hyprland
|
||||||
- hyprlock
|
|
||||||
- hyprpaper
|
|
||||||
- xdg-desktop-portal
|
- xdg-desktop-portal
|
||||||
- xdg-desktop-portal-gtk
|
- xdg-desktop-portal-gtk
|
||||||
- xdg-desktop-portal-hyprland
|
- xdg-desktop-portal-hyprland
|
||||||
@@ -116,10 +113,11 @@ packages:
|
|||||||
- librewolf-bin
|
- librewolf-bin
|
||||||
- meld
|
- meld
|
||||||
- nemo
|
- nemo
|
||||||
|
- nemo-fileroller
|
||||||
- neovim
|
- neovim
|
||||||
- network-manager-applet
|
|
||||||
- networkmanager
|
- networkmanager
|
||||||
- nm-connection-editor
|
- nm-connection-editor
|
||||||
|
- network-manager-applet
|
||||||
- nodejs
|
- nodejs
|
||||||
- npm
|
- npm
|
||||||
- nvm
|
- nvm
|
||||||
@@ -140,6 +138,9 @@ packages:
|
|||||||
- hunspell-de
|
- hunspell-de
|
||||||
- hunspell-en_gb
|
- hunspell-en_gb
|
||||||
- hunspell-en_us
|
- hunspell-en_us
|
||||||
|
- qalculate-gtk
|
||||||
|
# VIM
|
||||||
|
- lua-language-server
|
||||||
intel_graphics_i915:
|
intel_graphics_i915:
|
||||||
yay:
|
yay:
|
||||||
- intel-media-driver
|
- intel-media-driver
|
||||||
|
|||||||
@@ -12,3 +12,8 @@
|
|||||||
type: file
|
type: file
|
||||||
url: https://raw.githubusercontent.com/catppuccin/btop/refs/heads/main/themes/catppuccin_macchiato.theme
|
url: https://raw.githubusercontent.com/catppuccin/btop/refs/heads/main/themes/catppuccin_macchiato.theme
|
||||||
refreshPeriod: 168h
|
refreshPeriod: 168h
|
||||||
|
|
||||||
|
.config/DankMaterialShell/catppuccin.json:
|
||||||
|
type: file
|
||||||
|
url: https://raw.githubusercontent.com/catppuccin/dankmaterialshell/refs/heads/main/catppuccin.json
|
||||||
|
refreshPeriod: 168h
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"currentThemeName": "custom",
|
"currentThemeName": "custom",
|
||||||
"currentThemeCategory": "custom",
|
"currentThemeCategory": "custom",
|
||||||
"customThemeFile": "/home/frank/Downloads/catppuccin.json",
|
"customThemeFile": "/home/frank/.config/DankMaterialShell/catppuccin.json",
|
||||||
"registryThemeVariants": {
|
"registryThemeVariants": {
|
||||||
"catppuccin": {
|
"catppuccin": {
|
||||||
"dark": {
|
"dark": {
|
||||||
@@ -63,7 +63,7 @@
|
|||||||
"m3ElevationCustomColor": "#000000",
|
"m3ElevationCustomColor": "#000000",
|
||||||
"modalElevationEnabled": true,
|
"modalElevationEnabled": true,
|
||||||
"popoutElevationEnabled": true,
|
"popoutElevationEnabled": true,
|
||||||
"barElevationEnabled": true,
|
"barElevationEnabled": false,
|
||||||
"blurEnabled": true,
|
"blurEnabled": true,
|
||||||
"blurForegroundLayers": true,
|
"blurForegroundLayers": true,
|
||||||
"blurLayerOutlineOpacity": 0.12,
|
"blurLayerOutlineOpacity": 0.12,
|
||||||
@@ -389,15 +389,6 @@
|
|||||||
"fadeToDpmsEnabled": true,
|
"fadeToDpmsEnabled": true,
|
||||||
"fadeToDpmsGracePeriod": 5,
|
"fadeToDpmsGracePeriod": 5,
|
||||||
"launchPrefix": "uwsm-app -- ",
|
"launchPrefix": "uwsm-app -- ",
|
||||||
"brightnessDevicePins": {},
|
|
||||||
"wifiNetworkPins": {
|
|
||||||
"preferredWifi": [
|
|
||||||
"wifi.zechert.net"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"bluetoothDevicePins": {},
|
|
||||||
"audioInputDevicePins": {},
|
|
||||||
"audioOutputDevicePins": {},
|
|
||||||
"gtkThemingEnabled": false,
|
"gtkThemingEnabled": false,
|
||||||
"qtThemingEnabled": false,
|
"qtThemingEnabled": false,
|
||||||
"syncModeWithPortal": true,
|
"syncModeWithPortal": true,
|
||||||
@@ -562,7 +553,9 @@
|
|||||||
"updaterIgnoredPackages": [],
|
"updaterIgnoredPackages": [],
|
||||||
"displayNameMode": "model",
|
"displayNameMode": "model",
|
||||||
"screenPreferences": {
|
"screenPreferences": {
|
||||||
"wallpaper": []
|
"wallpaper": [
|
||||||
|
"all"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"showOnLastDisplay": {},
|
"showOnLastDisplay": {},
|
||||||
"niriOutputSettings": {},
|
"niriOutputSettings": {},
|
||||||
@@ -669,10 +662,10 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"spacing": 4,
|
"spacing": 4,
|
||||||
"innerPadding": 4,
|
"innerPadding": 6,
|
||||||
"barInsetPadding": 4,
|
"barInsetPadding": 4,
|
||||||
"bottomGap": 0,
|
"bottomGap": 0,
|
||||||
"transparency": 0.09,
|
"transparency": 0,
|
||||||
"widgetTransparency": 1,
|
"widgetTransparency": 1,
|
||||||
"squareCorners": false,
|
"squareCorners": false,
|
||||||
"noBackground": false,
|
"noBackground": false,
|
||||||
@@ -827,5 +820,5 @@
|
|||||||
"barInsetPaddingShared": -1,
|
"barInsetPaddingShared": -1,
|
||||||
"barInsetPaddingSyncAll": false,
|
"barInsetPaddingSyncAll": false,
|
||||||
"frameBarInsetPadding": -1,
|
"frameBarInsetPadding": -1,
|
||||||
"configVersion": 12
|
"configVersion": 13
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1 +1,5 @@
|
|||||||
|
file:///home/frank/Documents Documents
|
||||||
|
file:///home/frank/Downloads Downloads
|
||||||
|
file:///home/frank/Pictures Pictures
|
||||||
|
file:///home/frank/Projects Projects
|
||||||
smb://10.10.10.5/ HOMESERVER
|
smb://10.10.10.5/ HOMESERVER
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
[Settings]
|
||||||
|
gtk-theme-name=Colloid-Dark-Catppuccin
|
||||||
|
gtk-icon-theme-name=Papirus-Dark
|
||||||
|
gtk-font-name=Inter 11
|
||||||
|
gtk-cursor-theme-name=Breeze_Light
|
||||||
|
gtk-cursor-theme-size=24
|
||||||
|
gtk-application-prefer-dark-theme=1
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
/usr/share/themes/Colloid-Dark-Catppuccin/gtk-4.0/assets
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
/usr/share/themes/Colloid-Dark-Catppuccin/gtk-4.0/gtk-dark.css
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
/usr/share/themes/Colloid-Dark-Catppuccin/gtk-4.0/gtk.css
|
||||||
@@ -1 +0,0 @@
|
|||||||
-- Optional per-user keybind overrides (managed by DMS). Loaded after default binds.
|
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"workspace": {
|
||||||
|
"library": [
|
||||||
|
"/usr/share/hypr/stubs"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -10,4 +10,12 @@
|
|||||||
-- hl.exec_cmd("waybar & hyprpaper & firefox")
|
-- hl.exec_cmd("waybar & hyprpaper & firefox")
|
||||||
-- end)
|
-- end)
|
||||||
|
|
||||||
|
hl.on("hyprland.start", function()
|
||||||
|
hl.exec_cmd("librewolf", { workspace = 9 })
|
||||||
|
|
||||||
|
hl.exec_cmd("thunderbird", { workspace = 10 })
|
||||||
|
hl.timer(function()
|
||||||
|
hl.exec_cmd("signal-desktop", { workspace = 10 })
|
||||||
|
hl.exec_cmd("Telegram", { workspace = 10 })
|
||||||
|
end, { timeout = 1000, type = "oneshot" })
|
||||||
|
end)
|
||||||
|
|||||||
@@ -0,0 +1,167 @@
|
|||||||
|
local launchPrefix = "uwsm app -- "
|
||||||
|
|
||||||
|
local function is_ipc_call(command)
|
||||||
|
-- check if this is an ipc call to a running programm
|
||||||
|
is_dms_ipc = starts_with(command, "dms ipc")
|
||||||
|
is_hyprctl = starts_with(command, "hyprctl")
|
||||||
|
is_ipc = any({is_dms_ipc, is_hyprctl}, function(v) return v end)
|
||||||
|
return is_ipc
|
||||||
|
end
|
||||||
|
|
||||||
|
function create_launcher(command)
|
||||||
|
if is_ipc_call(command) then
|
||||||
|
return command
|
||||||
|
end
|
||||||
|
return launchPrefix .. command
|
||||||
|
end
|
||||||
|
|
||||||
|
function execute(command)
|
||||||
|
return hl.dsp.exec_cmd(create_launcher(command))
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Program Launchers
|
||||||
|
hl.bind("SUPER + Return", execute(programs.terminal), { description = "Open Terminal" })
|
||||||
|
hl.bind("SUPER + Space", execute(programs.menu), { description = "Open Application Menu" })
|
||||||
|
hl.bind("SUPER + W", execute(programs.browser), { description = "Start Webbrowser"})
|
||||||
|
hl.bind("SUPER + E", execute(programs.explorer), { description = "Start Webbrowser"})
|
||||||
|
hl.bind("CTRL + SHIFT + Escape", execute("dms ipc call processlist focusOrToggle"), { description = "Process Manager" })
|
||||||
|
hl.bind("SUPER + Comma", execute("dms ipc call settings focusOrToggle"), { description = "Open DMS Settings" })
|
||||||
|
hl.bind("SUPER + Escape", execute("dms ipc call powermenu toggle"), { description = "Open Power Menu" })
|
||||||
|
hl.bind("SUPER + Plus", execute(programs.calculator), { description = "Open Calculator" })
|
||||||
|
hl.bind("SUPER + B", execute("dms ipc call night toggle"), { description = "Toggle Night Mode" })
|
||||||
|
hl.bind("SUPER + SHIFT + I", execute("dms ipc call inhibit toggle"), { description = "Toggle Idle Inhibitor" })
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- Workspaces
|
||||||
|
for i = 1, 10 do
|
||||||
|
local workspace_num = i%10
|
||||||
|
local workspace_name = i
|
||||||
|
hl.bind("SUPER + " .. workspace_num, hl.dsp.focus({ workspace = workspace_name}), { description = "Focus Workspace "..workspace_name })
|
||||||
|
end
|
||||||
|
|
||||||
|
hl.bind("SUPER + Page_Down", hl.dsp.focus({ workspace = "e+1" }), { description = "Focus Next Workspace" })
|
||||||
|
hl.bind("SUPER + mouse_down", hl.dsp.focus({ workspace = "e+1" }), { description = "Focus Next Workspace" })
|
||||||
|
hl.bind("SUPER + Page_Up", hl.dsp.focus({ workspace = "e-1" }), { description = "Focus Previous Workspace" })
|
||||||
|
hl.bind("SUPER + mouse_up", hl.dsp.focus({ workspace = "e-1" }), { description = "Focus Previous Workspace" })
|
||||||
|
|
||||||
|
-- Windows
|
||||||
|
hl.bind("SUPER + Q", hl.dsp.window.close() , { description = "Close Window" })
|
||||||
|
hl.bind("SUPER + SHIFT + Q", hl.dsp.window.kill() , { description = "Close Window" })
|
||||||
|
hl.bind("SUPER + F", hl.dsp.window.fullscreen({ mode = "maximized", action = "toggle" }), { description = "Maximize Window"})
|
||||||
|
hl.bind("SUPER + SHIFT + F", hl.dsp.window.fullscreen({ mode = "fullscreen", action = "toggle" }), { description = "Fullscreen Window"})
|
||||||
|
hl.bind("SUPER + V", function()
|
||||||
|
hl.dispatch(hl.dsp.window.float({action="float"}))
|
||||||
|
hl.dispatch(hl.dsp.window.center())
|
||||||
|
end, { description = "Flaot & Center Window"})
|
||||||
|
hl.bind("SUPER + C", hl.dsp.window.center(), { description = "Center Window" })
|
||||||
|
hl.bind("SUPER + G", hl.dsp.group.toggle(), { description = "Toggle Group" })
|
||||||
|
hl.bind("SUPER + S", hl.dsp.window.pin({action="toggle"}), { description = "Pin Window (Sticky)" })
|
||||||
|
|
||||||
|
hl.bind("SUPER + mouse:272", hl.dsp.window.drag(), { description = "Move Window", mouse = true })
|
||||||
|
hl.bind("SUPER + mouse:273", hl.dsp.window.resize(), { description = "Resize Window", mouse = true })
|
||||||
|
|
||||||
|
local function smart_focus(direction)
|
||||||
|
local window = hl.get_active_window()
|
||||||
|
if not window then return end
|
||||||
|
|
||||||
|
local group = window.group
|
||||||
|
if not group or not group.members or #group.members == 0 then
|
||||||
|
hl.dispatch(hl.dsp.focus({direction=direction}))
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
-- when in a group, try to focus next grouped window
|
||||||
|
local members = group.members or {}
|
||||||
|
local index = nil
|
||||||
|
for i, member in ipairs(members) do
|
||||||
|
if member.address == window.address then
|
||||||
|
index = i
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if not index then
|
||||||
|
hl.dispatch(hl.dsp.focus({direction=direction}))
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
next = members[direction == "left" and index - 1 or index + 1]
|
||||||
|
if next then
|
||||||
|
hl.dispatch(hl.dsp.focus({ window = next }))
|
||||||
|
return
|
||||||
|
end
|
||||||
|
hl.dispatch(hl.dsp.focus({direction=direction}))
|
||||||
|
end
|
||||||
|
hl.bind("SUPER + H", function() smart_focus("left") end, { description = "Move Focus Left" })
|
||||||
|
hl.bind("SUPER + J", hl.dsp.focus({direction="down"}), { description = "Move Focus Down" })
|
||||||
|
hl.bind("SUPER + K", hl.dsp.focus({direction="up"}), { description = "Move Focus Up" })
|
||||||
|
hl.bind("SUPER + L", function() smart_focus("right") end, { description = "Move Focus Right" })
|
||||||
|
|
||||||
|
hl.bind("SUPER + SHIFT + H", hl.dsp.window.move({direction="left", group_aware = true}), { description = "Move Window Left" })
|
||||||
|
hl.bind("SUPER + SHIFT + J", hl.dsp.window.move({direction="down", group_aware = true}), { description = "Move Window Down" })
|
||||||
|
hl.bind("SUPER + SHIFT + K", hl.dsp.window.move({direction="up", group_aware = true}), { description = "Move Window Up" })
|
||||||
|
hl.bind("SUPER + SHIFT + L", hl.dsp.window.move({direction="right", group_aware = true}), { description = "Move Window Right" })
|
||||||
|
|
||||||
|
for i = 1, 10 do
|
||||||
|
local workspace_num = i%10
|
||||||
|
local workspace_name = i
|
||||||
|
|
||||||
|
hl.bind("SUPER + SHIFT + " .. workspace_num, hl.dsp.window.move({ workspace = workspace_name, follow = true}), { description = "Move Window to Workspace " .. workspace_name })
|
||||||
|
hl.bind("SUPER + CTRL + SHIFT + " .. workspace_num, hl.dsp.window.move({ workspace = workspace_name, follow = false}), { description = "Move Window to Workspace " .. workspace_name .. " (silent)" })
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Resizing Submap
|
||||||
|
local resizeSubmapName = "Resize Window: [hjkl]"
|
||||||
|
hl.bind("SUPER + R", hl.dsp.submap(resizeSubmapName), { description = "Resize..." })
|
||||||
|
hl.define_submap(resizeSubmapName, function()
|
||||||
|
hl.bind("h", hl.dsp.window.resize({ x = -10, y = 0, relative = true}), { repeating = true })
|
||||||
|
hl.bind("j", hl.dsp.window.resize({ x = 0, y = -10, relative = true}), { repeating = true })
|
||||||
|
hl.bind("k", hl.dsp.window.resize({ x = 0, y = 10, relative = true}), { repeating = true })
|
||||||
|
hl.bind("l", hl.dsp.window.resize({ x = 10, y = 0, relative = true}), { repeating = true })
|
||||||
|
hl.bind("escape", hl.dsp.submap("reset"))
|
||||||
|
hl.bind("catchall", function() hl.dispatch(submap_toast) end)
|
||||||
|
end)
|
||||||
|
|
||||||
|
-- Move Workspaces
|
||||||
|
local workspaceSubmapName = "Workspace: [hjkl]"
|
||||||
|
hl.bind("SUPER + T", hl.dsp.submap(workspaceSubmapName), { description = "Workspace..." })
|
||||||
|
hl.define_submap(workspaceSubmapName, function()
|
||||||
|
hl.bind("escape", hl.dsp.submap("reset"))
|
||||||
|
hl.bind("catchall", function() hl.dispatch(submap_toast) end)
|
||||||
|
end)
|
||||||
|
|
||||||
|
-- Master Layout
|
||||||
|
hl.bind("SUPER + M", hl.dsp.layout("focusmaster"), { description = "Focus Master" })
|
||||||
|
hl.bind("SUPER + SHIFT + M", hl.dsp.layout("swapwithmaster ignoremaster"), { description = "Swap With Master" })
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- Clipboard
|
||||||
|
hl.bind("SUPER + SHIFT + V", execute("dms ipc call clipboard toggle"), { description = "Open Clipboard Manager" })
|
||||||
|
|
||||||
|
-- Screenshot
|
||||||
|
hl.bind("Print", execute("dms screenshot region -d ~/Pictures/Screenshots"), { description = "Screenshot" })
|
||||||
|
hl.bind("CTRL + Print", execute("dms screenshot full -d ~/Pictures/Screenshots"), { description = "Full Screenshot" })
|
||||||
|
hl.bind("ALT + Print", execute("dms screenshot window -d ~/Pictures/Screenshots"), { description = "Window Screenshot" })
|
||||||
|
|
||||||
|
-- Notifications
|
||||||
|
hl.bind("SUPER + N", execute("dms ipc call notifications toggle"), { description = "Toggle Notifications" })
|
||||||
|
hl.bind("SUPER + SHIFT + N", execute("dms ipc call notifications clearAll"), { description = "Toggle Notifications" })
|
||||||
|
|
||||||
|
-- Multimedia
|
||||||
|
hl.bind("XF86AudioRaiseVolume", execute("dms ipc call audio increment 1"), { description = "Increase Volume", repeating = true })
|
||||||
|
hl.bind("XF86AudioLowerVolume", execute("dms ipc call audio decrement 1"), { description = "Decrease Volume", repeating = true })
|
||||||
|
hl.bind("CTRL + XF86AudioRaiseVolume", execute("dms ipc call mpris increment 1"), { description = "Increase Player Volume", repeating = true })
|
||||||
|
hl.bind("CTRL + XF86AudioLowerVolume", execute("dms ipc call mpris decrement 1"), { description = "Decrease Player Volume", repeating = true })
|
||||||
|
hl.bind("XF86AudioMute", execute("dms ipc call audio mute"), { description = "Mute Audio"})
|
||||||
|
hl.bind("XF86AudioMicMute", execute("dms ipc call audio micmute"), { description = "Mute Microphone"})
|
||||||
|
hl.bind("XF86AudioPause", execute("dms ipc call mpris playPause"), { description = "Play / Pause"})
|
||||||
|
hl.bind("XF86AudioPlay", execute("dms ipc call mpris playPause"), { description = "Play / Pause"})
|
||||||
|
hl.bind("XF86AudioPrev", execute("dms ipc call mpris previous"), { description = "Previous"})
|
||||||
|
hl.bind("XF86AudioNext", execute("dms ipc call mpris next"), { description = "Next"})
|
||||||
|
hl.bind("XF86MonBrightnessUp", execute("dms ipc call brightness increment 5 \"\""), { description = "Increase Brightness", repeating = true, locked = true})
|
||||||
|
hl.bind("XF86MonBrightnessDown", execute("dms ipc call brightness decrement 5 \"\""), { description = "Decrease Brightness", repeating = true, locked = true})
|
||||||
|
|
||||||
|
-- Hyprland
|
||||||
|
hl.bind("SUPER + SHIFT + ALT + CTRL + Escape", hl.dsp.exit(), { description = "Exit Hyprland" })
|
||||||
@@ -1,5 +1,2 @@
|
|||||||
-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Environment-variables/
|
-- environment variables should usually go in ~/.config/uwsm/env
|
||||||
|
-- hyprland specific ones should usually go in ~/.config/uwsm/env-hyprland
|
||||||
hl.env("XCURSOR_SIZE", "24")
|
|
||||||
hl.env("HYPRCURSOR_SIZE", "24")
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,50 +1,267 @@
|
|||||||
-- Home Monitor Setup
|
-- Monitor configuration and automatic and manual switching--
|
||||||
hl.monitor({
|
|
||||||
output = "desc:GIGA-BYTE TECHNOLOGY CO. LTD. M34WQ 0x00000B52",
|
|
||||||
mode = "3440x1440@60",
|
|
||||||
position = "0x0",
|
|
||||||
scale = "1"
|
|
||||||
})
|
|
||||||
|
|
||||||
hl.monitor({
|
------------------
|
||||||
output = "desc:Dell Inc. DELL U2414H 292K475V26JL",
|
---- PROFILES ----
|
||||||
mode = "1920x1080@60",
|
------------------
|
||||||
position = "760x-1080",
|
|
||||||
scale = "1"
|
|
||||||
})
|
|
||||||
|
|
||||||
hl.monitor({
|
-- Profiles:
|
||||||
output = "desc:Dell Inc. DELL U2724D DL7R834",
|
-- Key of the profile is the name of the profile
|
||||||
mode = "2560x1440@60",
|
-- Profiles are ordered by priority, higher number takes precedence over smaller number
|
||||||
position = "3440x0",
|
-- First (by priority) profile that matches will be applied, all others will be ignored
|
||||||
scale = "1"
|
--
|
||||||
})
|
-- A profile matches the current setup if _ALL_ of its match criteria are fulfilled
|
||||||
|
-- If there are no match criteria, it will match always
|
||||||
|
local PROFILES = {
|
||||||
|
-- The most basic fallback if nothing else ever works
|
||||||
|
fallback = {
|
||||||
|
priority = -999,
|
||||||
|
matches = {},
|
||||||
|
monitors = {
|
||||||
|
{
|
||||||
|
output = "",
|
||||||
|
mode = "preferred",
|
||||||
|
position = "auto",
|
||||||
|
scale = 1,
|
||||||
|
disabled = false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
laptop = {
|
||||||
|
priority = 0,
|
||||||
|
matches = {{ output = "eDP-1" }},
|
||||||
|
monitors = {
|
||||||
|
{
|
||||||
|
output = "eDP-1",
|
||||||
|
mode = "1920x1200@120",
|
||||||
|
position = "0x0",
|
||||||
|
scale = 1,
|
||||||
|
disabled = false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
home_docked = {
|
||||||
|
priority = 10,
|
||||||
|
matches = {
|
||||||
|
{ output = "desc:GIGA-BYTE TECHNOLOGY CO. LTD. M34WQ 0x00000B52" },
|
||||||
|
{ output = "desc:Dell Inc. DELL U2414H 292K475V26JL" },
|
||||||
|
{ output = "desc:Dell Inc. DELL U2724D DL7R834" },
|
||||||
|
},
|
||||||
|
monitors = {
|
||||||
|
{
|
||||||
|
output = "eDP-1",
|
||||||
|
mode = "preferred",
|
||||||
|
position = "0x0",
|
||||||
|
scale = 1,
|
||||||
|
disabled = true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
output = "desc:GIGA-BYTE TECHNOLOGY CO. LTD. M34WQ 0x00000B52",
|
||||||
|
mode = "3440x1440@60",
|
||||||
|
position = "0x0",
|
||||||
|
scale = 1,
|
||||||
|
disabled = false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
output = "desc:Dell Inc. DELL U2414H 292K475V26JL",
|
||||||
|
mode = "1920x1080@60",
|
||||||
|
position = "760x-1080",
|
||||||
|
scale = 1,
|
||||||
|
disabled = false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
output = "desc:Dell Inc. DELL U2724D DL7R834",
|
||||||
|
mode = "2560x1440@60",
|
||||||
|
position = "3440x0",
|
||||||
|
scale = 1,
|
||||||
|
disabled = false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
postprocess = function()
|
||||||
|
debug_notify("now applying workspace rules")
|
||||||
|
for i = 1,5 do
|
||||||
|
hl.workspace_rule({ workspace = string.format("%d", i), monitor = "desc:GIGA-BYTE TECHNOLOGY CO. LTD. M34WQ 0x00000B52"})
|
||||||
|
end
|
||||||
|
hl.workspace_rule({ workspace = "1", default = true, persistent = true})
|
||||||
|
for i = 6,9 do
|
||||||
|
hl.workspace_rule({ workspace = string.format("%d", i), monitor = "desc:Dell Inc. DELL U2724D DL7R834"})
|
||||||
|
end
|
||||||
|
hl.workspace_rule({ workspace = "9", default = true, persistent = true})
|
||||||
|
hl.workspace_rule({ workspace = "10", monitor = "desc:Dell Inc. DELL U2414H 292K475V26JL", default = true, persistent = true})
|
||||||
|
|
||||||
-- Integrated Laptop Monitor
|
hl.dispatch(hl.dsp.focus({workspace = 10}))
|
||||||
hl.monitor({
|
hl.dispatch(hl.dsp.focus({workspace = 9}))
|
||||||
output = "eDP-1",
|
hl.dispatch(hl.dsp.focus({workspace = 1}))
|
||||||
mode = "1920x1200@120",
|
end
|
||||||
position = "auto",
|
},
|
||||||
scale = "1"
|
}
|
||||||
})
|
|
||||||
|
|
||||||
-- Default for all other monitors
|
local function refresh_monitors()
|
||||||
hl.monitor({
|
hl.exec_cmd("hyprctl monitors all -j | jq -r '.[] | [.name, .description] | @tsv' > /tmp/hypr_monitors.tsv")
|
||||||
output = "",
|
end
|
||||||
mode = "preferred",
|
local function get_monitors()
|
||||||
position = "auto",
|
-- FIXME: Use hl.get_monitors({all=true}) as soon as it is released
|
||||||
scale = "auto",
|
local handle = io.open("/tmp/hypr_monitors.tsv", "r")
|
||||||
})
|
if handle ~= nil then
|
||||||
|
local out = handle:read("*a")
|
||||||
|
handle:close()
|
||||||
|
|
||||||
-- In Clamshell Mode, deactivate the internal monitor
|
local result = {}
|
||||||
hl.bind("switch:on:Lid Switch", function()
|
for line in out:gmatch("[^\n]+") do
|
||||||
|
local name, desc = line:match("([^\t]+)\t(.+)")
|
||||||
|
table.insert(result, { name = name, description = desc })
|
||||||
|
end
|
||||||
|
return result
|
||||||
|
end
|
||||||
|
return {}
|
||||||
|
end
|
||||||
|
|
||||||
|
local function get_matching_profile()
|
||||||
|
local monitors = get_monitors()
|
||||||
|
local profiles = {} or {}
|
||||||
|
|
||||||
|
local monitor_debug = map(monitors, function(monitor)
|
||||||
|
return monitor.name .. ": "..monitor.description
|
||||||
|
end)
|
||||||
|
debug_notify("Currently " .. #monitors .. " connected: " .. table.concat(monitor_debug, "; "))
|
||||||
|
|
||||||
|
for profile_name, profile in pairs(PROFILES) do
|
||||||
|
profile.name = profile_name or "unknown"
|
||||||
|
table.insert(profiles, profile)
|
||||||
|
end
|
||||||
|
table.sort(profiles, function(a, b) return (a.priority or 0) > (b.priority or 0) end)
|
||||||
|
|
||||||
|
for _, profile in ipairs(profiles) do
|
||||||
|
local matches = profile.matches or {}
|
||||||
|
local has_matched = {}
|
||||||
|
for _, match in ipairs(matches) do
|
||||||
|
if starts_with(match.output, "desc:") then
|
||||||
|
table.insert(has_matched, any(monitors, function(m) return "desc:" .. m.description == match.output end))
|
||||||
|
else
|
||||||
|
table.insert(has_matched, any(monitors, function(m) return m.name == match.output end))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if #has_matched == 0 then
|
||||||
|
debug_notify("Monitor profile " .. profile.name .. " is active because it does not require any matches (fallback)")
|
||||||
|
return profile
|
||||||
|
elseif all(has_matched, function(v) return v end) then
|
||||||
|
return profile
|
||||||
|
else
|
||||||
|
local failed = map(has_matched, function(v, i)
|
||||||
|
if not v then
|
||||||
|
return matches[i].output
|
||||||
|
else
|
||||||
|
return ""
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
local failedmsg = table.concat(failed, " ")
|
||||||
|
debug_notify("Monitor profile " .. profile.name .. " does not match, could not match " .. failedmsg)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
|
local PROFILE_CHANGE_ONGOING = false
|
||||||
|
local PROFILE_CHANGE_RESET_TIMER = nil
|
||||||
|
local PROFILE_CHANGE_START_TIMER = nil
|
||||||
|
local POSTPROCESS_TIMER = nil
|
||||||
|
|
||||||
|
local function apply_profile(profile)
|
||||||
|
if PROFILE_CHANGE_ONGOING then
|
||||||
|
debug_notify("Monitor profile change is inprogress (debounce)")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if profile == nil then
|
||||||
|
debug_notify("No monitor profile available")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
debug_notify("Applying monitor profile " .. profile.name)
|
||||||
|
PROFILE_CHANGE_ONGOING = true
|
||||||
|
|
||||||
|
-- delay application of the profile for some time, as other monitor change events might still be arriving
|
||||||
|
PROFILE_CHANGE_START_TIMER = hl.timer(function()
|
||||||
|
|
||||||
|
-- after we have started applying our profile, we will generate monitor change events that we do not
|
||||||
|
-- want to process. Assume 5 seconds of non-interesting monitor events that we do not want to process
|
||||||
|
-- afterwards, reset the PROFILE_CHANGE_ONGOING flag for the next time we actually want to change
|
||||||
|
-- monitor profiles
|
||||||
|
PROFILE_CHANGE_RESET_TIMER = hl.timer(function()
|
||||||
|
PROFILE_CHANGE_ONGOING = false
|
||||||
|
debug_notify("Monitor Profile Change Debounce Finished")
|
||||||
|
PROFILE_CHANGE_RESET_TIMER = nil
|
||||||
|
end, { timeout = 5000, type = "oneshot" })
|
||||||
|
|
||||||
|
local monitors = profile.monitors
|
||||||
|
for _, monitor in ipairs(monitors) do
|
||||||
|
hl.monitor(monitor)
|
||||||
|
end
|
||||||
|
|
||||||
|
debug_notify("Monitor Profile " .. profile.name .. " successfully applied")
|
||||||
|
|
||||||
|
-- start any post processing
|
||||||
|
if profile.postprocess ~= nil then
|
||||||
|
POSTPROCESS_TIMER = hl.timer(function()
|
||||||
|
if profile.postprocess ~= nil then
|
||||||
|
profile.postprocess()
|
||||||
|
end
|
||||||
|
|
||||||
|
PROFILE_CHANGE_START_TIMER = nil
|
||||||
|
POSTPROCESS_TIMER = nil
|
||||||
|
end, { timeout = 200, type = "oneshot" })
|
||||||
|
else
|
||||||
|
PROFILE_CHANGE_START_TIMER = nil
|
||||||
|
end
|
||||||
|
end, { timeout = 500, type = "oneshot" })
|
||||||
|
end
|
||||||
|
|
||||||
|
local function apply_current_profile()
|
||||||
|
apply_profile(get_matching_profile())
|
||||||
|
end
|
||||||
|
|
||||||
|
local function force_refresh_profile()
|
||||||
|
if PROFILE_CHANGE_RESET_TIMER ~= nil then PROFILE_CHANGE_RESET_TIMER:set_enabled(false) end
|
||||||
|
if POSTPROCESS_TIMER ~= nil then POSTPROCESS_TIMER:set_enabled(false) end
|
||||||
|
if PROFILE_CHANGE_START_TIMER ~= nil then PROFILE_CHANGE_START_TIMER:set_enabled(false) end
|
||||||
|
|
||||||
|
PROFILE_CHANGE_RESET_TIMER = nil
|
||||||
|
POSTPROCESS_TIMER = nil
|
||||||
|
PROFILE_CHANGE_START_TIMER = nil
|
||||||
|
PROFILE_CHANGE_ONGOING = false
|
||||||
|
|
||||||
|
debug_notify("Force applying monitor profile")
|
||||||
|
refresh_monitors()
|
||||||
|
apply_current_profile()
|
||||||
|
end
|
||||||
|
|
||||||
|
local function on_lid_close()
|
||||||
|
debug_notify("Lid was closed")
|
||||||
|
refresh_monitors()
|
||||||
hl.monitor({ output = "eDP-1", disabled = true })
|
hl.monitor({ output = "eDP-1", disabled = true })
|
||||||
end, { locked = true })
|
end
|
||||||
|
|
||||||
hl.bind("switch:off:Lid Switch", function()
|
|
||||||
hl.monitor({ output = "eDP-1", disabled = false })
|
|
||||||
end, { locked = true })
|
|
||||||
|
|
||||||
|
local function on_lid_open()
|
||||||
|
debug_notify("Lid was opened")
|
||||||
|
refresh_monitors()
|
||||||
|
apply_current_profile()
|
||||||
|
end
|
||||||
|
|
||||||
|
local function on_monitor_added(_event)
|
||||||
|
debug_notify("A monitor was added")
|
||||||
|
refresh_monitors()
|
||||||
|
apply_current_profile()
|
||||||
|
end
|
||||||
|
|
||||||
|
local function on_monitor_removed(_event)
|
||||||
|
debug_notify("A monitor was removed")
|
||||||
|
refresh_monitors()
|
||||||
|
apply_current_profile()
|
||||||
|
end
|
||||||
|
|
||||||
|
hl.bind("switch:on:Lid Switch", on_lid_close, { locked = true })
|
||||||
|
hl.bind("switch:off:Lid Switch", on_lid_open, { locked = true })
|
||||||
|
hl.bind("SUPER + P", function() force_refresh_profile() end, { locked = true, description = "Force Refresh Monitor Profile" })
|
||||||
|
hl.on("monitor.added", on_monitor_added)
|
||||||
|
hl.on("monitor.removed", on_monitor_removed)
|
||||||
|
hl.on("hyprland.start", function() refresh_monitors() end)
|
||||||
|
|||||||
@@ -1,16 +0,0 @@
|
|||||||
|
|
||||||
-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Permissions/
|
|
||||||
-- Please note permission changes here require a Hyprland restart and are not applied on-the-fly
|
|
||||||
-- for security reasons
|
|
||||||
|
|
||||||
-- hl.config({
|
|
||||||
-- ecosystem = {
|
|
||||||
-- enforce_permissions = true,
|
|
||||||
-- },
|
|
||||||
-- })
|
|
||||||
|
|
||||||
-- hl.permission("/usr/(bin|local/bin)/grim", "screencopy", "allow")
|
|
||||||
-- hl.permission("/usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland", "screencopy", "allow")
|
|
||||||
-- hl.permission("/usr/(bin|local/bin)/hyprpm", "plugin", "allow")
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1 +1,189 @@
|
|||||||
-- test
|
-- catppuccin color scheme --
|
||||||
|
-- macchiato
|
||||||
|
local cat_macchiato_rosewater = "#f4dbd6"
|
||||||
|
local cat_macchiato_flamingo = "#f0c6c6"
|
||||||
|
local cat_macchiato_pink = "#f5bde6"
|
||||||
|
local cat_macchiato_mauve = "#c6a0f6"
|
||||||
|
local cat_macchiato_red = "#ed8796"
|
||||||
|
local cat_macchiato_maroon = "#ee99a0"
|
||||||
|
local cat_macchiato_peach = "#f5a97f"
|
||||||
|
local cat_macchiato_yellow = "#eed49f"
|
||||||
|
local cat_macchiato_green = "#a6da95"
|
||||||
|
local cat_macchiato_teal = "#8bd5ca"
|
||||||
|
local cat_macchiato_sky = "#91d7e3"
|
||||||
|
local cat_macchiato_sapphire = "#7dc4e4"
|
||||||
|
local cat_macchiato_blue = "#8aadf4"
|
||||||
|
local cat_macchiato_lavender = "#b7bdf8"
|
||||||
|
local cat_macchiato_text = "#cad3f5"
|
||||||
|
local cat_macchiato_subtext1 = "#b8c0e0"
|
||||||
|
local cat_macchiato_subtext0 = "#a5adcb"
|
||||||
|
local cat_macchiato_overlay2 = "#939ab7"
|
||||||
|
local cat_macchiato_overlay1 = "#8087a2"
|
||||||
|
local cat_macchiato_overlay0 = "#6e738d"
|
||||||
|
local cat_macchiato_surface2 = "#5b6078"
|
||||||
|
local cat_macchiato_surface1 = "#494d64"
|
||||||
|
local cat_macchiato_surface0 = "#363a4f"
|
||||||
|
local cat_macchiato_base = "#24273a"
|
||||||
|
local cat_macchiato_mantle = "#1e2030"
|
||||||
|
local cat_macchiato_crust = "#181926"
|
||||||
|
|
||||||
|
-- colors to be used
|
||||||
|
local color_rosewater = cat_macchiato_rosewater
|
||||||
|
local color_flamingo = cat_macchiato_flamingo
|
||||||
|
local color_pink = cat_macchiato_pink
|
||||||
|
local color_mauve = cat_macchiato_mauve
|
||||||
|
local color_red = cat_macchiato_red
|
||||||
|
local color_maroon = cat_macchiato_maroon
|
||||||
|
local color_peach = cat_macchiato_peach
|
||||||
|
local color_yellow = cat_macchiato_yellow
|
||||||
|
local color_green = cat_macchiato_green
|
||||||
|
local color_teal = cat_macchiato_teal
|
||||||
|
local color_sky = cat_macchiato_sky
|
||||||
|
local color_sapphire = cat_macchiato_sapphire
|
||||||
|
local color_blue = cat_macchiato_blue
|
||||||
|
local color_lavender = cat_macchiato_lavender
|
||||||
|
local color_text = cat_macchiato_text
|
||||||
|
local color_subtext1 = cat_macchiato_subtext1
|
||||||
|
local color_subtext0 = cat_macchiato_subtext0
|
||||||
|
local color_overlay2 = cat_macchiato_overlay2
|
||||||
|
local color_overlay1 = cat_macchiato_overlay1
|
||||||
|
local color_overlay0 = cat_macchiato_overlay0
|
||||||
|
local color_surface2 = cat_macchiato_surface2
|
||||||
|
local color_surface1 = cat_macchiato_surface1
|
||||||
|
local color_surface0 = cat_macchiato_surface0
|
||||||
|
local color_base = cat_macchiato_base
|
||||||
|
local color_mantle = cat_macchiato_mantle
|
||||||
|
local color_crust = cat_macchiato_crust
|
||||||
|
|
||||||
|
-- configuration --
|
||||||
|
local FollowMouse = {
|
||||||
|
NEVER = 0,
|
||||||
|
ALWAYS = 1,
|
||||||
|
CLICK = 2,
|
||||||
|
SEPARATE_KEYBOARD_MOUSE_FOCUS = 3,
|
||||||
|
}
|
||||||
|
local FocusOnClose = {
|
||||||
|
NEXT = 0,
|
||||||
|
UNDER_CURSOR = 1,
|
||||||
|
MOST_RECENT = 2,
|
||||||
|
}
|
||||||
|
local DragLock = {
|
||||||
|
DISABLED = 0,
|
||||||
|
WITH_TIMEOUT = 1,
|
||||||
|
STICKY = 2,
|
||||||
|
}
|
||||||
|
local Vrr = {
|
||||||
|
OFF = 0,
|
||||||
|
ON = 1,
|
||||||
|
FULLSCREEN = 2,
|
||||||
|
FULLSCREEN_VIDEO_OR_GAME = 3,
|
||||||
|
}
|
||||||
|
local PreferHdr = {
|
||||||
|
OFF = 0,
|
||||||
|
ALWAYS = 1,
|
||||||
|
GAMES = 2
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
input = {
|
||||||
|
kb_model = "",
|
||||||
|
kb_layout = "de",
|
||||||
|
kb_variant = "nodeadkeys",
|
||||||
|
kb_options = "compose:rwin",
|
||||||
|
kb_rules = "",
|
||||||
|
numlock_by_default = true,
|
||||||
|
scroll_method = "2fg",
|
||||||
|
natural_scroll = false,
|
||||||
|
follow_mouse = FollowMouse.ALWAYS,
|
||||||
|
follow_mouse_threshold = 10.0,
|
||||||
|
focus_on_close = FocusOnClose.MOST_RECENT,
|
||||||
|
touchpad = {
|
||||||
|
disable_while_typing = true,
|
||||||
|
natural_scroll = false,
|
||||||
|
middle_button_emulation = false,
|
||||||
|
drag_lock = DragLock.WITH_TIMEOUT,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
general = {
|
||||||
|
border_size = 3,
|
||||||
|
gaps_in = 10,
|
||||||
|
gaps_out = 20,
|
||||||
|
float_gaps = 10,
|
||||||
|
gaps_workspaces = 0,
|
||||||
|
col = {
|
||||||
|
inactive_border = color_overlay0,
|
||||||
|
active_border = color_lavender,
|
||||||
|
nogroup_border = color_mauve,
|
||||||
|
nogroup_border_active = color_red,
|
||||||
|
},
|
||||||
|
layout = "master",
|
||||||
|
snap = {
|
||||||
|
enabled = true, -- floating windows should snap to each other
|
||||||
|
respect_gaps = true, -- respect gaps_in when snapping
|
||||||
|
window_gap = 20, -- distance between windows before snapping
|
||||||
|
},
|
||||||
|
},
|
||||||
|
decoration = {
|
||||||
|
rounding = 0,
|
||||||
|
active_opacity = 1.0,
|
||||||
|
inactive_opacity = 1.0,
|
||||||
|
fullscreen_opacity = 1.0,
|
||||||
|
dim_modal = true,
|
||||||
|
dim_inactive = true,
|
||||||
|
dim_strength = 0.1,
|
||||||
|
dim_special = 0.8,
|
||||||
|
},
|
||||||
|
group = {
|
||||||
|
col = {
|
||||||
|
border_active = color_green,
|
||||||
|
border_inactive = color_overlay0,
|
||||||
|
border_locked_active = color_green,
|
||||||
|
border_locked_inactive = color_overlay0,
|
||||||
|
},
|
||||||
|
groupbar = {
|
||||||
|
enabled = true,
|
||||||
|
font_size = 14,
|
||||||
|
font_weight_active = "bold",
|
||||||
|
height = 18,
|
||||||
|
text_color = color_text,
|
||||||
|
text_color_locked_active = color_red,
|
||||||
|
text_color_locked_inactive = color_red,
|
||||||
|
col = {
|
||||||
|
active = color_green,
|
||||||
|
inactive = color_overlay0,
|
||||||
|
locked_active = color_red,
|
||||||
|
locked_inactive = color_overlay0,
|
||||||
|
},
|
||||||
|
middle_click_close = false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
master = {
|
||||||
|
mfact = 0.7,
|
||||||
|
new_status = "slave",
|
||||||
|
new_on_top = false,
|
||||||
|
new_on_active = "none",
|
||||||
|
orientation = "left",
|
||||||
|
},
|
||||||
|
misc = {
|
||||||
|
disable_hyprland_logo = true,
|
||||||
|
disable_splash_rendering = true,
|
||||||
|
disable_scale_notification = false,
|
||||||
|
font_family = "Inter",
|
||||||
|
vrr = Vrr.FULLSCREEN_VIDEO_OR_GAME,
|
||||||
|
lockdead_screen_delay = 5000,
|
||||||
|
},
|
||||||
|
binds = {
|
||||||
|
workspace_back_and_forth = true,
|
||||||
|
},
|
||||||
|
cursor = {
|
||||||
|
inactive_timeout = 30,
|
||||||
|
},
|
||||||
|
ecosystem = {
|
||||||
|
no_update_news = false,
|
||||||
|
no_donation_nag = true,
|
||||||
|
enforce_permissions = false,
|
||||||
|
},
|
||||||
|
quirks = {
|
||||||
|
prefer_hdr = PreferHdr.OFF,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -0,0 +1,279 @@
|
|||||||
|
--- Possible Effects on Windows
|
||||||
|
--- Static Efects
|
||||||
|
local function float() return { float = true } end
|
||||||
|
local function tile() return { tile = true } end
|
||||||
|
local function fullscreen() return { fullscreen = true } end
|
||||||
|
local FullScreenState = {
|
||||||
|
NONE = 0,
|
||||||
|
MAXMIMIZE = 1,
|
||||||
|
FULLSCREEN = 2,
|
||||||
|
MAXIMIZE_AND_FULLSCREEN = 3,
|
||||||
|
}
|
||||||
|
local function fullscreen_state(internal, client)
|
||||||
|
local internal = internal or FullScreenState.NONE
|
||||||
|
local client = client or FullScreenState.NONE
|
||||||
|
return { fullscreen_state = string.format("%d %d", internal, client) }
|
||||||
|
end
|
||||||
|
local function move(location) return { move = location } end
|
||||||
|
local function size(width, height) return { size = {width, height} } end
|
||||||
|
local function center() return { center = true } end
|
||||||
|
local function pseudo() return { pseudo = true } end
|
||||||
|
local function monitor(monitor, silent)
|
||||||
|
if silent then
|
||||||
|
monitor = monitor .. " silent"
|
||||||
|
end
|
||||||
|
return { monitor = monitor }
|
||||||
|
end
|
||||||
|
local function workspace(workspace, silent)
|
||||||
|
if silent then
|
||||||
|
workspace = workspace .. " silent"
|
||||||
|
end
|
||||||
|
return { workspace = workspace }
|
||||||
|
end
|
||||||
|
local function no_initial_focus() return { no_initial_focus = true } end
|
||||||
|
local SuppressEvents = {
|
||||||
|
FULLSCREEN = "fullscreen",
|
||||||
|
MAXIMIZE = "maximize",
|
||||||
|
ACTIVATE = "activate",
|
||||||
|
ACTIVATE_FOCUS = "activatefocus",
|
||||||
|
FULLSCREEN_OUTPUT = "fullscreenoutput",
|
||||||
|
X11_CONFIG_REQUEST = "x11configrequest",
|
||||||
|
}
|
||||||
|
local function pin() return { pin = true } end
|
||||||
|
local function group() return { group = true } end
|
||||||
|
local function suppress_event(events)
|
||||||
|
events = events or {}
|
||||||
|
return { suppress_event = table.concat(events, " ") }
|
||||||
|
end
|
||||||
|
local ContentType = {
|
||||||
|
NONE = "none",
|
||||||
|
PHOTO = "photo",
|
||||||
|
VIDEO = "video",
|
||||||
|
GAME = "game",
|
||||||
|
}
|
||||||
|
local function content(content)
|
||||||
|
return { content = content }
|
||||||
|
end
|
||||||
|
local function no_close_for(milliseconds)
|
||||||
|
return { no_close_for = milliseconds }
|
||||||
|
end
|
||||||
|
local function scrolling_width(width)
|
||||||
|
return { scrolling_width = width }
|
||||||
|
end
|
||||||
|
-- Dynamic Effects
|
||||||
|
local function no_blur() return { no_blur = true } end
|
||||||
|
local function no_dim() return { no_dim = true } end
|
||||||
|
local function no_focus() return { no_focus = true } end
|
||||||
|
local function stay_focused() return { stay_focused = true } end
|
||||||
|
|
||||||
|
-- Matching Properties
|
||||||
|
local function matches_class(class)
|
||||||
|
return { class = class }
|
||||||
|
end
|
||||||
|
|
||||||
|
local function matches_title(title)
|
||||||
|
return { title = title }
|
||||||
|
end
|
||||||
|
local function matches_initial_class(class)
|
||||||
|
return { initial_class = class }
|
||||||
|
end
|
||||||
|
local function matches_initial_title(title)
|
||||||
|
return { initial_title = title }
|
||||||
|
end
|
||||||
|
local function has_tag(tag)
|
||||||
|
return { tag = tag }
|
||||||
|
end
|
||||||
|
local function is_xwayland()
|
||||||
|
return { xwayland = true }
|
||||||
|
end
|
||||||
|
local function is_not_xwayland()
|
||||||
|
return { xwalyand = false }
|
||||||
|
end
|
||||||
|
local function is_float()
|
||||||
|
return { float = true }
|
||||||
|
end
|
||||||
|
local function is_tiling()
|
||||||
|
return { float = false }
|
||||||
|
end
|
||||||
|
local function is_fullscreen()
|
||||||
|
return { fullscreen = true }
|
||||||
|
end
|
||||||
|
local function is_not_fullscreen()
|
||||||
|
return { fullscreen = false }
|
||||||
|
end
|
||||||
|
|
||||||
|
local function is_pinned()
|
||||||
|
return { pin = true }
|
||||||
|
end
|
||||||
|
local function is_not_pinned()
|
||||||
|
return { pin = false }
|
||||||
|
end
|
||||||
|
local function has_focus()
|
||||||
|
return { focus = true }
|
||||||
|
end
|
||||||
|
local function has_no_focus()
|
||||||
|
return { focus = false }
|
||||||
|
end
|
||||||
|
local function is_grouped()
|
||||||
|
return { group = true }
|
||||||
|
end
|
||||||
|
local function is_not_grouped()
|
||||||
|
return { group = false }
|
||||||
|
end
|
||||||
|
local function is_modal()
|
||||||
|
return { modal = true }
|
||||||
|
end
|
||||||
|
local function is_not_modal()
|
||||||
|
return { modal = false }
|
||||||
|
end
|
||||||
|
local function has_fullscreen_state_client(state)
|
||||||
|
return { fullscreen_state_client = state }
|
||||||
|
end
|
||||||
|
local function has_fullscreen_state_internal(state)
|
||||||
|
return { fullscreen_state_internal = state }
|
||||||
|
end
|
||||||
|
local function is_on_workspace(workspace)
|
||||||
|
return { workspace = workspace }
|
||||||
|
end
|
||||||
|
|
||||||
|
local function has_content(content)
|
||||||
|
return { content = content }
|
||||||
|
end
|
||||||
|
local function has_xdg_tag(tag)
|
||||||
|
return { xdg_tag = tag }
|
||||||
|
end
|
||||||
|
|
||||||
|
local function dump(t, indent)
|
||||||
|
indent = indent or 0
|
||||||
|
local prefix = string.rep(" ", indent)
|
||||||
|
|
||||||
|
if type(t) ~= "table" then
|
||||||
|
print(prefix .. tostring(t))
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
print(prefix .. "{")
|
||||||
|
for k, v in pairs(t) do
|
||||||
|
local key = tostring(k)
|
||||||
|
if type(v) == "table" then
|
||||||
|
print(prefix .. " " .. key .. " = ")
|
||||||
|
dump(v, indent + 1)
|
||||||
|
else
|
||||||
|
print(prefix .. " " .. key .. " = " .. tostring(v))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
print(prefix .. "}")
|
||||||
|
end
|
||||||
|
|
||||||
|
local function rule(matches, effects)
|
||||||
|
local flat_matches = {}
|
||||||
|
for _, match in ipairs(matches) do
|
||||||
|
for k, v in pairs(match) do
|
||||||
|
flat_matches[k] = v
|
||||||
|
end
|
||||||
|
end
|
||||||
|
local args = { match = flat_matches }
|
||||||
|
for _, effect in ipairs(effects) do
|
||||||
|
for k,v in pairs(effect) do
|
||||||
|
args[k] = v
|
||||||
|
end
|
||||||
|
end
|
||||||
|
hl.window_rule(args)
|
||||||
|
debug_notify(dump(args))
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Ignore maximize requests
|
||||||
|
rule(
|
||||||
|
{ matches_class("^.*$") },
|
||||||
|
{ suppress_event({SuppressEvents.MAXIMIZE}) }
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Do not dim full screen applications
|
||||||
|
rule(
|
||||||
|
{ is_fullscreen() },
|
||||||
|
{ no_dim(), no_blur() }
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Do not dim video content
|
||||||
|
rule(
|
||||||
|
{ has_content(ContentType.VIDEO) },
|
||||||
|
{ no_dim(), no_blur() }
|
||||||
|
)
|
||||||
|
|
||||||
|
-- System Utilities
|
||||||
|
rule(
|
||||||
|
{ matches_class("^(org.pulseaudio.pavucontrol)$") },
|
||||||
|
{ float(), center(), size(800, 600) }
|
||||||
|
)
|
||||||
|
rule(
|
||||||
|
{ matches_class("^(nm-connection-editor)$") },
|
||||||
|
{ float(), center(), size(800, 600) }
|
||||||
|
)
|
||||||
|
rule(
|
||||||
|
{ matches_class("^(xdg-desktop-portal)$") },
|
||||||
|
{ float(), center(), size(800, 600) }
|
||||||
|
)
|
||||||
|
rule(
|
||||||
|
{ matches_class("^(org.gnome.seahorse.Application)$") },
|
||||||
|
{ float(), center(), size(800, 600) }
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Nemo
|
||||||
|
rule(
|
||||||
|
{ matches_class("^(nemo)$") },
|
||||||
|
{ float(), center(), size(1200, 700) }
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Librewolf and Firefox
|
||||||
|
rule(
|
||||||
|
{ matches_class("^(firefox|librewolf)$"), matches_title("^(Picture-in-Picture)$") },
|
||||||
|
{ float() }
|
||||||
|
)
|
||||||
|
rule(
|
||||||
|
{ matches_class("^(firefox|librewolf)$"), matches_title("^.*(Youtube).*$") },
|
||||||
|
{ content(ContentType.VIDEO), no_dim(), no_blur() }
|
||||||
|
)
|
||||||
|
|
||||||
|
-- MPV
|
||||||
|
rule(
|
||||||
|
{ matches_class("^(mpv)$") },
|
||||||
|
{ content(ContentType.VIDEO), no_dim(), no_blur() }
|
||||||
|
)
|
||||||
|
-- Java
|
||||||
|
rule(
|
||||||
|
{ matches_class("^(net-sourceforge-jnlp-runtime-Boot)$"), matches_title("^$") },
|
||||||
|
{ float(), center() }
|
||||||
|
)
|
||||||
|
rule(
|
||||||
|
{ matches_class("^$"), matches_title("^(Java)$") },
|
||||||
|
{ float(), center() }
|
||||||
|
)
|
||||||
|
|
||||||
|
-- StellwerkSimulator
|
||||||
|
rule(
|
||||||
|
{ matches_title("^(StellwerkSim Kommunikator)$") },
|
||||||
|
{ tile() }
|
||||||
|
)
|
||||||
|
rule(
|
||||||
|
{ matches_class("^(java-lang-Thread|net-sourceforge-jnlp-runtime-Boot)$"), matches_title("^(BÜ Zeiten|Elementname|Verspätungsmeldung.*)$") },
|
||||||
|
{ float(), pin() }
|
||||||
|
)
|
||||||
|
rule(
|
||||||
|
{ matches_class("^(java-lang-Thread|net-sourceforge-jnlp-runtime-Boot)$"), matches_title("^(Verspätungsmeldung.*)$") },
|
||||||
|
{ stay_focused() }
|
||||||
|
)
|
||||||
|
rule(
|
||||||
|
{ matches_title("^(.*StellwerkSim.*)$") },
|
||||||
|
{ no_dim(), no_blur() }
|
||||||
|
)
|
||||||
|
rule(
|
||||||
|
{ matches_class("^(java-lang-Thread|net-sourceforge-jnlp-runtime-Boot)$"), matches_title("^(StellwerkSim Funktionstest|Downloading...|Wirklich schlie.*)$") },
|
||||||
|
{ float(), center() }
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Qualculate
|
||||||
|
rule(
|
||||||
|
{ matches_class("^(qalculate-gtk)$") },
|
||||||
|
{ float(), size(700, 600), center(), pin() }
|
||||||
|
)
|
||||||
|
|
||||||
@@ -1,31 +1,109 @@
|
|||||||
hl.config({ autogenerated = false })
|
hl.config({ autogenerated = false })
|
||||||
|
|
||||||
-- DMS_STARTUP_BEGIN
|
debug_flag = true
|
||||||
hl.on("hyprland.start", function()
|
|
||||||
hl.exec_cmd("dbus-update-activation-environment --systemd --all")
|
|
||||||
-- hl.exec_cmd("systemctl --user start hyprland-session.target")
|
|
||||||
end)
|
|
||||||
-- DMS_STARTUP_END
|
|
||||||
|
|
||||||
|
-------------------
|
||||||
|
---- FUNCTIONS ----
|
||||||
|
-------------------
|
||||||
|
function debug_notify(message)
|
||||||
|
if debug_flag and message ~= nil then
|
||||||
|
-- hl.notification.create({text = message, timeout = 30000})
|
||||||
|
hl.exec_cmd("echo '" .. message .. "' >> /tmp/hyprland-notify.log")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function map(list, fn)
|
||||||
|
local out = {}
|
||||||
|
for i, v in ipairs(list) do
|
||||||
|
out[i] = fn(v, i)
|
||||||
|
end
|
||||||
|
return out
|
||||||
|
end
|
||||||
|
|
||||||
|
function any(values, predicate)
|
||||||
|
if values == nil then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
for _, value in ipairs(values) do
|
||||||
|
if predicate(value) then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
function all(values, predicate)
|
||||||
|
return not any(values, function(v)
|
||||||
|
return not predicate(v)
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
function starts_with(haystack, needle)
|
||||||
|
if haystack == nil then
|
||||||
|
return false
|
||||||
|
elseif needle == nil then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
return string.sub(haystack, 1, #needle) == needle
|
||||||
|
end
|
||||||
|
|
||||||
|
---------------
|
||||||
|
---- HOOKS ----
|
||||||
|
---------------
|
||||||
|
|
||||||
|
function on_start()
|
||||||
|
hl.exec_cmd("dbus-update-activation-environment --systemd --all")
|
||||||
|
end
|
||||||
|
|
||||||
|
function submap_toast(submap)
|
||||||
|
submap = submap or hl.get_current_submap()
|
||||||
|
|
||||||
|
if submap ~= "" then
|
||||||
|
message = "Submap: " .. submap
|
||||||
|
hl.exec_cmd("dms ipc call toast warnWith \"" .. message .. "\" \"\" \"\" submap")
|
||||||
|
else
|
||||||
|
hl.exec_cmd("dms ipc call toast dismiss submap")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
hl.on("hyprland.start", on_start)
|
||||||
|
hl.on("keybinds.submap", submap_toast)
|
||||||
|
|
||||||
------------------
|
------------------
|
||||||
---- MONITORS ----
|
---- MONITORS ----
|
||||||
------------------
|
------------------
|
||||||
require("hyprland-monitors")
|
|
||||||
|
-- By default, only the laptop screen is active and no other screen
|
||||||
|
-- will be actived. Activation of different monitor layouts is deferred
|
||||||
|
-- to other scripts, so to automate profile switching and provide some
|
||||||
|
-- stable fallbacks
|
||||||
|
--[[
|
||||||
|
hl.monitor({
|
||||||
|
output = "eDP-1",
|
||||||
|
mode = "1920x1200@120",
|
||||||
|
position = "0x0",
|
||||||
|
scale = "1",
|
||||||
|
disabled = false,
|
||||||
|
})
|
||||||
|
]]
|
||||||
|
|
||||||
---------------------
|
---------------------
|
||||||
---- MY PROGRAMS ----
|
---- MY PROGRAMS ----
|
||||||
---------------------
|
---------------------
|
||||||
|
programs = {
|
||||||
-- Set programs that you use
|
terminal = "kitty",
|
||||||
local terminal = "kitty"
|
explorer = "nemo",
|
||||||
local fileManager = "dolphin"
|
menu = "dms ipc call launcher toggle",
|
||||||
local menu = "hyprlauncher"
|
browser = "librewolf",
|
||||||
|
calculator = "qalculate-gtk",
|
||||||
|
}
|
||||||
|
|
||||||
-------------------
|
-------------------
|
||||||
---- Variables ----
|
---- Variables ----
|
||||||
-------------------
|
-------------------
|
||||||
require("hyprland-variables")
|
local vars = require("hyprland-variables")
|
||||||
|
|
||||||
-------------------
|
-------------------
|
||||||
---- AUTOSTART ----
|
---- AUTOSTART ----
|
||||||
@@ -37,58 +115,10 @@ require("hyprland-autostart")
|
|||||||
-------------------------------
|
-------------------------------
|
||||||
require("hyprland-environment-variables")
|
require("hyprland-environment-variables")
|
||||||
|
|
||||||
-----------------------
|
|
||||||
----- PERMISSIONS -----
|
|
||||||
-----------------------
|
|
||||||
require("hyprland-permissions")
|
|
||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
---- LOOK AND FEEL ----
|
---- LOOK AND FEEL ----
|
||||||
-----------------------
|
-----------------------
|
||||||
|
hl.config(vars)
|
||||||
|
|
||||||
hl.config({
|
|
||||||
input = {
|
|
||||||
-- empty inherits XKB_DEFAULT_LAYOUT (libxkbcommon), falls back to "us"
|
|
||||||
kb_layout = "de",
|
|
||||||
numlock_by_default = true,
|
|
||||||
follow_mouse = 0,
|
|
||||||
touchpad = {
|
|
||||||
tap_to_click = true,
|
|
||||||
natural_scroll = true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
general = {
|
|
||||||
gaps_in = 5,
|
|
||||||
gaps_out = 5,
|
|
||||||
border_size = 2,
|
|
||||||
layout = "dwindle",
|
|
||||||
},
|
|
||||||
decoration = {
|
|
||||||
rounding = 12,
|
|
||||||
active_opacity = 1.0,
|
|
||||||
inactive_opacity = 1.0,
|
|
||||||
shadow = {
|
|
||||||
enabled = true,
|
|
||||||
range = 30,
|
|
||||||
render_power = 5,
|
|
||||||
offset = "0 5",
|
|
||||||
color = "rgba(00000070)",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
misc = {
|
|
||||||
disable_hyprland_logo = true,
|
|
||||||
disable_splash_rendering = true,
|
|
||||||
key_press_enables_dpms = true,
|
|
||||||
mouse_move_enables_dpms = true,
|
|
||||||
},
|
|
||||||
dwindle = {
|
|
||||||
preserve_split = true,
|
|
||||||
},
|
|
||||||
master = {
|
|
||||||
mfact = 0.5,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
hl.animation({ leaf = "windowsIn", enabled = true, speed = 3, bezier = "default" })
|
hl.animation({ leaf = "windowsIn", enabled = true, speed = 3, bezier = "default" })
|
||||||
hl.animation({ leaf = "windowsOut", enabled = true, speed = 3, bezier = "default" })
|
hl.animation({ leaf = "windowsOut", enabled = true, speed = 3, bezier = "default" })
|
||||||
@@ -97,35 +127,28 @@ hl.animation({ leaf = "windowsMove", enabled = true, speed = 4, bezier = "defaul
|
|||||||
hl.animation({ leaf = "fade", enabled = true, speed = 3, bezier = "default" })
|
hl.animation({ leaf = "fade", enabled = true, speed = 3, bezier = "default" })
|
||||||
hl.animation({ leaf = "border", enabled = true, speed = 3, bezier = "default" })
|
hl.animation({ leaf = "border", enabled = true, speed = 3, bezier = "default" })
|
||||||
|
|
||||||
hl.window_rule({ match = { class = "^(org\\.wezfurlong\\.wezterm)$" }, tile = true })
|
------------------
|
||||||
hl.window_rule({ match = { class = "^(org\\.gnome\\.)" }, rounding = 12 })
|
---- KEYBINDS ----
|
||||||
hl.window_rule({ match = { class = "^(gnome-control-center)$" }, tile = true })
|
------------------
|
||||||
hl.window_rule({ match = { class = "^(pavucontrol)$" }, tile = true })
|
require("hyprland-binds")
|
||||||
hl.window_rule({ match = { class = "^(nm-connection-editor)$" }, tile = true })
|
|
||||||
hl.window_rule({ match = { class = "^(org\\.gnome\\.Calculator)$" }, float = true })
|
----------------------
|
||||||
hl.window_rule({ match = { class = "^(gnome-calculator)$" }, float = true })
|
---- WINDOW RULES ----
|
||||||
hl.window_rule({ match = { class = "^(galculator)$" }, float = true })
|
----------------------
|
||||||
hl.window_rule({ match = { class = "^(blueman-manager)$" }, float = true })
|
require("hyprland-windowrules")
|
||||||
hl.window_rule({ match = { class = "^(org\\.gnome\\.Nautilus)$" }, float = true })
|
|
||||||
hl.window_rule({ match = { class = "^(xdg-desktop-portal)$" }, float = true })
|
|
||||||
hl.window_rule({
|
|
||||||
match = { class = "^(steam)$", title = "^(notificationtoasts)" },
|
|
||||||
no_initial_focus = true,
|
|
||||||
pin = true,
|
|
||||||
})
|
|
||||||
hl.window_rule({
|
|
||||||
match = { class = "^(firefox)$", title = "^(Picture-in-Picture)$" },
|
|
||||||
float = true,
|
|
||||||
})
|
|
||||||
hl.window_rule({ match = { class = "^(zoom)$" }, float = true })
|
|
||||||
hl.layer_rule({ match = { namespace = "^(quickshell)$" }, no_anim = true })
|
hl.layer_rule({ match = { namespace = "^(quickshell)$" }, no_anim = true })
|
||||||
hl.layer_rule({ match = { namespace = "^dms:.*" }, no_anim = true })
|
hl.layer_rule({ match = { namespace = "^dms:.*" }, no_anim = true })
|
||||||
|
|
||||||
require("dms.colors")
|
------------------
|
||||||
--require("dms.outputs")
|
---- MONITORS ----
|
||||||
require("dms.layout")
|
------------------
|
||||||
require("dms.cursor")
|
|
||||||
require("dms.binds")
|
|
||||||
require("dms.binds-user")
|
|
||||||
require("dms.windowrules")
|
|
||||||
require("hyprland-monitors")
|
require("hyprland-monitors")
|
||||||
|
|
||||||
|
|
||||||
|
-- require("dms.colors")
|
||||||
|
-- require("dms.outputs")
|
||||||
|
-- require("dms.layout")
|
||||||
|
-- require("dms.cursor")
|
||||||
|
-- require("dms.binds")
|
||||||
|
-- require("dms.binds-user")
|
||||||
|
-- require("dms.windowrules")
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
cursor #e0e2e8
|
||||||
|
cursor_text_color #c2c7cf
|
||||||
|
|
||||||
|
foreground #e0e2e8
|
||||||
|
background #101418
|
||||||
|
selection_foreground #243240
|
||||||
|
selection_background #b9c8da
|
||||||
|
url_color #9dcbfb
|
||||||
|
color0 #101418
|
||||||
|
color1 #d75a59
|
||||||
|
color2 #8ed88c
|
||||||
|
color3 #e0d99d
|
||||||
|
color4 #4087bc
|
||||||
|
color5 #839fbc
|
||||||
|
color6 #9dcbfb
|
||||||
|
color7 #abb2bf
|
||||||
|
color8 #5c6370
|
||||||
|
color9 #e57e7e
|
||||||
|
color10 #a2e5a0
|
||||||
|
color11 #efe9b3
|
||||||
|
color12 #a7d9ff
|
||||||
|
color13 #3d8197
|
||||||
|
color14 #5c7ba3
|
||||||
|
color15 #ffffff
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"export-settings-ini": true,
|
||||||
|
"export-gtkrc-20": true,
|
||||||
|
"export-index-theme": true,
|
||||||
|
"export-xsettingsd": true,
|
||||||
|
"export-gtk4-symlinks": true,
|
||||||
|
"flatpak-export-gtk-theme-override": false,
|
||||||
|
"flatpak-export-icon-theme-override": false,
|
||||||
|
"flatpak-install-current-gtk-theme": false
|
||||||
|
}
|
||||||
@@ -0,0 +1,149 @@
|
|||||||
|
|
||||||
|
[General]
|
||||||
|
version=5.12.0
|
||||||
|
allow_multiple_instances=0
|
||||||
|
width=718
|
||||||
|
always_on_top=0
|
||||||
|
enable_tooltips=1
|
||||||
|
error_info_shown=0
|
||||||
|
save_mode_on_exit=1
|
||||||
|
save_definitions_on_exit=1
|
||||||
|
save_history_separately=0
|
||||||
|
auto_update_exchange_rates=-1
|
||||||
|
clear_history_on_exit=0
|
||||||
|
history_expression_type=2
|
||||||
|
use_custom_history_font=0
|
||||||
|
use_custom_expression_font=0
|
||||||
|
replace_expression=0
|
||||||
|
enable_completion=1
|
||||||
|
enable_completion2=1
|
||||||
|
completion_min=1
|
||||||
|
completion_min2=1
|
||||||
|
completion_delay=0
|
||||||
|
use_custom_status_font=0
|
||||||
|
vertical_button_padding=-1
|
||||||
|
horizontal_button_padding=-1
|
||||||
|
use_custom_keypad_font=0
|
||||||
|
latest_button_currency=EUR
|
||||||
|
use_custom_result_font=0
|
||||||
|
continuous_conversion=1
|
||||||
|
set_missing_prefixes=0
|
||||||
|
show_bases_keypad=1
|
||||||
|
keep_function_dialog_open=0
|
||||||
|
ignore_locale=0
|
||||||
|
load_global_definitions=1
|
||||||
|
local_currency_conversion=1
|
||||||
|
use_binary_prefixes=0
|
||||||
|
check_version=0
|
||||||
|
show_keypad=1
|
||||||
|
show_history=0
|
||||||
|
history_height=0
|
||||||
|
minimal_width=500
|
||||||
|
show_stack=1
|
||||||
|
show_convert=0
|
||||||
|
persistent_keypad=0
|
||||||
|
minimal_mode=0
|
||||||
|
rpn_keys=1
|
||||||
|
display_expression_status=1
|
||||||
|
parsed_expression_in_resultview=0
|
||||||
|
calculate_as_you_type_history_delay=2000
|
||||||
|
use_unicode_signs=1
|
||||||
|
lower_case_numbers=0
|
||||||
|
duodecimal_symbols=0
|
||||||
|
exp_display=3
|
||||||
|
imaginary_j=0
|
||||||
|
base_display=1
|
||||||
|
twos_complement=1
|
||||||
|
hexadecimal_twos_complement=0
|
||||||
|
twos_complement_input=0
|
||||||
|
hexadecimal_twos_complement_input=0
|
||||||
|
spell_out_logical_operators=1
|
||||||
|
caret_as_xor=0
|
||||||
|
close_with_esc=-1
|
||||||
|
digit_grouping=1
|
||||||
|
copy_ascii=0
|
||||||
|
copy_ascii_without_units=0
|
||||||
|
decimal_comma=-1
|
||||||
|
dot_as_separator=-1
|
||||||
|
comma_as_separator=0
|
||||||
|
use_custom_application_font=0
|
||||||
|
multiplication_sign=2
|
||||||
|
division_sign=1
|
||||||
|
recent_functions=
|
||||||
|
recent_variables=
|
||||||
|
recent_units=
|
||||||
|
|
||||||
|
[Mode]
|
||||||
|
min_deci=0
|
||||||
|
use_min_deci=0
|
||||||
|
max_deci=2
|
||||||
|
use_max_deci=0
|
||||||
|
precision=10
|
||||||
|
interval_arithmetic=1
|
||||||
|
interval_display=0
|
||||||
|
min_exp=-1
|
||||||
|
negative_exponents=0
|
||||||
|
sort_minus_last=1
|
||||||
|
number_fraction_format=0
|
||||||
|
complex_number_form=0
|
||||||
|
use_prefixes=1
|
||||||
|
use_prefixes_for_all_units=0
|
||||||
|
use_prefixes_for_currencies=0
|
||||||
|
abbreviate_names=1
|
||||||
|
all_prefixes_enabled=0
|
||||||
|
denominator_prefix_enabled=1
|
||||||
|
place_units_separately=1
|
||||||
|
auto_post_conversion=3
|
||||||
|
mixed_units_conversion=3
|
||||||
|
number_base=10
|
||||||
|
number_base_expression=10
|
||||||
|
read_precision=0
|
||||||
|
assume_denominators_nonzero=1
|
||||||
|
warn_about_denominators_assumed_nonzero=1
|
||||||
|
structuring=1
|
||||||
|
angle_unit=1
|
||||||
|
functions_enabled=1
|
||||||
|
variables_enabled=1
|
||||||
|
calculate_functions=1
|
||||||
|
calculate_variables=1
|
||||||
|
variable_units_enabled=1
|
||||||
|
sync_units=1
|
||||||
|
unknownvariables_enabled=0
|
||||||
|
units_enabled=1
|
||||||
|
allow_complex=1
|
||||||
|
allow_infinite=1
|
||||||
|
indicate_infinite_series=0
|
||||||
|
show_ending_zeroes=1
|
||||||
|
rounding_mode=0
|
||||||
|
approximation=1
|
||||||
|
interval_calculation=1
|
||||||
|
concise_uncertainty_input=0
|
||||||
|
calculate_as_you_type=1
|
||||||
|
in_rpn_mode=0
|
||||||
|
chain_mode=0
|
||||||
|
limit_implicit_multiplication=0
|
||||||
|
parsing_mode=0
|
||||||
|
simplified_percentage=-1
|
||||||
|
spacious=1
|
||||||
|
excessive_parenthesis=0
|
||||||
|
visible_keypad=0
|
||||||
|
short_multiplication=1
|
||||||
|
default_assumption_type=4
|
||||||
|
default_assumption_sign=0
|
||||||
|
|
||||||
|
[Plotting]
|
||||||
|
plot_legend_placement=2
|
||||||
|
plot_style=0
|
||||||
|
plot_smoothing=0
|
||||||
|
plot_display_grid=1
|
||||||
|
plot_full_border=0
|
||||||
|
plot_min=0
|
||||||
|
plot_max=10
|
||||||
|
plot_step=1
|
||||||
|
plot_sampling_rate=1001
|
||||||
|
plot_use_sampling_rate=1
|
||||||
|
plot_variable=x
|
||||||
|
plot_rows=0
|
||||||
|
plot_type=0
|
||||||
|
plot_color=1
|
||||||
|
plot_linewidth=2
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
[Appearance]
|
||||||
|
icon_theme=Papirus-Dark
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
[SettingsWindow]
|
||||||
|
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x4\x13\0\0\x2l\0\0\0\0\0\0\0\0\0\0\x4\x13\0\0\x2l\0\0\0\x1\x2\0\0\0\rp\0\0\0\0\0\0\0\0\0\0\x4\x13\0\0\x2l)
|
||||||
|
|
||||||
|
[Appearance]
|
||||||
|
icon_theme=Papirus-Dark
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
export XCURSOR_THEME="Breeze_Light"
|
||||||
|
export XCURSOR_SIZE="24"
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
export HYPRCURSOR_THEME="Breeze_Light"
|
||||||
|
export HYPRCURSOR_SIZE="24"
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
kitty.desktop
|
||||||
Reference in New Issue
Block a user