Make persistence path a proper global
This commit is contained in:
+17
-11
@@ -1,3 +1,9 @@
|
|||||||
|
PERSISTENCE_PATH = File.join(
|
||||||
|
ENV["XDG_STATE_HOME"] || File.expand_path("~/.local/state"),
|
||||||
|
"kutu",
|
||||||
|
"num.json"
|
||||||
|
)
|
||||||
|
|
||||||
presets = {
|
presets = {
|
||||||
normal: [0, X.clk],
|
normal: [0, X.clk],
|
||||||
mod: [X.mod, X.mod | X.clk]
|
mod: [X.mod, X.mod | X.clk]
|
||||||
@@ -95,23 +101,23 @@ end
|
|||||||
keybind 56, presets[:mod] do |_event|
|
keybind 56, presets[:mod] do |_event|
|
||||||
monitor = current_monitor
|
monitor = current_monitor
|
||||||
create_workspace monitor
|
create_workspace monitor
|
||||||
persistence = File.exist?(persistence_path) ?
|
persistence = File.exist?(PERSISTENCE_PATH) ?
|
||||||
JSON.parse(File.read(persistence_path), symbolize_names: true) :
|
JSON.parse(File.read(PERSISTENCE_PATH), symbolize_names: true) :
|
||||||
{}
|
{}
|
||||||
persistence[$monitors.key(monitor)] ||= {}
|
persistence[$monitors.key(monitor)] ||= {}
|
||||||
persistence[$monitors.key(monitor)][:length] = monitor[:workspaces].length
|
persistence[$monitors.key(monitor)][:length] = monitor[:workspaces].length
|
||||||
File.write(persistence_path, JSON.pretty_generate(persistence))
|
File.write(PERSISTENCE_PATH, JSON.pretty_generate(persistence))
|
||||||
end
|
end
|
||||||
|
|
||||||
keybind 57, presets[:mod] do |_event|
|
keybind 57, presets[:mod] do |_event|
|
||||||
monitor = current_monitor
|
monitor = current_monitor
|
||||||
delete_workspace monitor[:workspaces].length - 1, monitor
|
delete_workspace monitor[:workspaces].length - 1, monitor
|
||||||
persistence = File.exist?(persistence_path) ?
|
persistence = File.exist?(PERSISTENCE_PATH) ?
|
||||||
JSON.parse(File.read(persistence_path), symbolize_names: true) :
|
JSON.parse(File.read(PERSISTENCE_PATH), symbolize_names: true) :
|
||||||
{}
|
{}
|
||||||
persistence[$monitors.key(monitor)] ||= {}
|
persistence[$monitors.key(monitor)] ||= {}
|
||||||
persistence[$monitors.key(monitor)][:length] = monitor[:workspaces].length
|
persistence[$monitors.key(monitor)][:length] = monitor[:workspaces].length
|
||||||
File.write(persistence_path, JSON.pretty_generate(persistence))
|
File.write(PERSISTENCE_PATH, JSON.pretty_generate(persistence))
|
||||||
end
|
end
|
||||||
|
|
||||||
keybind 110, presets[:normal] do |_event|
|
keybind 110, presets[:normal] do |_event|
|
||||||
@@ -132,23 +138,23 @@ end
|
|||||||
|
|
||||||
keybind 89, presets[:mod] do |_event|
|
keybind 89, presets[:mod] do |_event|
|
||||||
monitor = current_monitor
|
monitor = current_monitor
|
||||||
persistence = File.exist?(persistence_path) ?
|
persistence = File.exist?(PERSISTENCE_PATH) ?
|
||||||
JSON.parse(File.read(persistence_path), symbolize_names: true) :
|
JSON.parse(File.read(PERSISTENCE_PATH), symbolize_names: true) :
|
||||||
{}
|
{}
|
||||||
if monitor[:selected_workspace] == 0
|
if monitor[:selected_workspace] == 0
|
||||||
select_workspace persistence[$monitors.key(monitor)]&.[](:saved) || 1, monitor
|
select_workspace persistence[$monitors.key(monitor)]&.[](:saved) || 1, monitor
|
||||||
else
|
else
|
||||||
persistence[$monitors.key(monitor)] ||= {}
|
persistence[$monitors.key(monitor)] ||= {}
|
||||||
persistence[$monitors.key(monitor)][:saved] = monitor[:selected_workspace]
|
persistence[$monitors.key(monitor)][:saved] = monitor[:selected_workspace]
|
||||||
File.write(persistence_path, JSON.pretty_generate(persistence))
|
File.write(PERSISTENCE_PATH, JSON.pretty_generate(persistence))
|
||||||
select_workspace 0, monitor
|
select_workspace 0, monitor
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
keybind 81, presets[:mod] do |event|
|
keybind 81, presets[:mod] do |event|
|
||||||
monitor = current_monitor
|
monitor = current_monitor
|
||||||
persistence = File.exist?(persistence_path) ?
|
persistence = File.exist?(PERSISTENCE_PATH) ?
|
||||||
JSON.parse(File.read(persistence_path), symbolize_names: true) :
|
JSON.parse(File.read(PERSISTENCE_PATH), symbolize_names: true) :
|
||||||
{}
|
{}
|
||||||
ws = monitor[:workspaces][
|
ws = monitor[:workspaces][
|
||||||
monitor[:selected_workspace] == 0 ?
|
monitor[:selected_workspace] == 0 ?
|
||||||
|
|||||||
+7
-5
@@ -1,6 +1,8 @@
|
|||||||
persistence_dir = File.join(ENV["XDG_STATE_HOME"] || File.expand_path("~/.local/state"), "kutu")
|
PERSISTENCE_PATH = File.join(
|
||||||
Dir.mkdir(persistence_dir) unless Dir.exist?(persistence_dir)
|
ENV["XDG_STATE_HOME"] || File.expand_path("~/.local/state"),
|
||||||
persistence_path = File.join(persistence_dir, "num.json")
|
"kutu",
|
||||||
|
"num.json"
|
||||||
|
)
|
||||||
|
|
||||||
def keybind(key, mod, &block)
|
def keybind(key, mod, &block)
|
||||||
if mod.is_a? Array
|
if mod.is_a? Array
|
||||||
@@ -33,8 +35,8 @@ def load_monitors!
|
|||||||
xrandr_output = `xrandr --query`
|
xrandr_output = `xrandr --query`
|
||||||
connected = xrandr_output.each_line.select { |line| line.include?(" connected") }
|
connected = xrandr_output.each_line.select { |line| line.include?(" connected") }
|
||||||
connected.sort_by! { |line| line.include?(" primary") ? 0 : 1 }
|
connected.sort_by! { |line| line.include?(" primary") ? 0 : 1 }
|
||||||
persistence = File.exist?(persistence_path) ?
|
persistence = File.exist?(PERSISTENCE_PATH) ?
|
||||||
JSON.parse(File.read(persistence_path), symbolize_names: true) :
|
JSON.parse(File.read(PERSISTENCE_PATH), symbolize_names: true) :
|
||||||
{}
|
{}
|
||||||
connected.first(2).each_with_index do |line, index|
|
connected.first(2).each_with_index do |line, index|
|
||||||
next unless line =~ /(\d+)x(\d+)\+(\d+)\+(\d+)/
|
next unless line =~ /(\d+)x(\d+)\+(\d+)\+(\d+)/
|
||||||
|
|||||||
Reference in New Issue
Block a user