Merge
53
.config/awesome/lanxu/ip.lua
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
local naughty = require("naughty")
|
||||||
|
local wibox = require("wibox")
|
||||||
|
local json = require("lanxu/dkjson")
|
||||||
|
local gears = require("gears")
|
||||||
|
local focused = require("awful.screen").focused
|
||||||
|
local easy_async = require("awful.spawn").easy_async
|
||||||
|
|
||||||
|
local function factory(args)
|
||||||
|
local args = args or {}
|
||||||
|
local calluri = args.uri or "https://api.ipify.org"
|
||||||
|
local settings = args.settings or function() end
|
||||||
|
local homeaddress = args.homeaddress or nil
|
||||||
|
|
||||||
|
local ip = { widget = wibox.widget.textbox() }
|
||||||
|
ip.widget:set_markup("N/A")
|
||||||
|
|
||||||
|
function ip.attach(obj)
|
||||||
|
obj:connect_signal("button::press", function()
|
||||||
|
ip.update()
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
function ip.update()
|
||||||
|
local cmd = string.format("curl -s " .. "'" .. calluri .. "'")
|
||||||
|
|
||||||
|
address = "N/A"
|
||||||
|
settings()
|
||||||
|
|
||||||
|
easy_async(cmd, function(response, stderr, reason, exit_code)
|
||||||
|
address = response
|
||||||
|
address = string.gsub(address, "[^0-9.]", "")
|
||||||
|
if address == homeaddress then
|
||||||
|
address = "Home"
|
||||||
|
end
|
||||||
|
|
||||||
|
ip.address = address
|
||||||
|
widget = ip.widget
|
||||||
|
|
||||||
|
settings()
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
ip.attach(ip.widget)
|
||||||
|
|
||||||
|
address = "N/A"
|
||||||
|
settings()
|
||||||
|
|
||||||
|
ip.update()
|
||||||
|
|
||||||
|
return ip
|
||||||
|
end
|
||||||
|
|
||||||
|
return factory
|
|
@ -116,8 +116,13 @@ myawesomemenu = {
|
||||||
{ "quit", function() awesome.quit() end}
|
{ "quit", function() awesome.quit() end}
|
||||||
}
|
}
|
||||||
lock = function()
|
lock = function()
|
||||||
|
-- Sync disks before lock (just in case)
|
||||||
awful.util.spawn("sync")
|
awful.util.spawn("sync")
|
||||||
awful.util.spawn("xautolock -locknow")
|
|
||||||
|
-- Lock screen
|
||||||
|
awful.util.spawn("xdg-screensaver lock")
|
||||||
|
--awful.util.spawn("xautolock -locknow")
|
||||||
|
--awful.util.spawn("xlock")
|
||||||
end
|
end
|
||||||
mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
|
mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
|
||||||
{ "open terminal", terminal },
|
{ "open terminal", terminal },
|
||||||
|
@ -260,8 +265,8 @@ awful.screen.connect_for_each_screen(function(s)
|
||||||
spacer,
|
spacer,
|
||||||
mydpmsstatus,
|
mydpmsstatus,
|
||||||
spacer,
|
spacer,
|
||||||
mycloudstatus,
|
--mycloudstatus,
|
||||||
spacer,
|
--spacer,
|
||||||
mycpu,
|
mycpu,
|
||||||
spacer,
|
spacer,
|
||||||
mymem,
|
mymem,
|
||||||
|
@ -269,11 +274,8 @@ awful.screen.connect_for_each_screen(function(s)
|
||||||
myweather,
|
myweather,
|
||||||
spacer,
|
spacer,
|
||||||
mycputemp,
|
mycputemp,
|
||||||
spacer,
|
|
||||||
mygputemp,
|
mygputemp,
|
||||||
spacer,
|
|
||||||
mytextclock,
|
mytextclock,
|
||||||
spacer,
|
|
||||||
s.mylayoutbox,
|
s.mylayoutbox,
|
||||||
}
|
}
|
||||||
-- Only show everything on the first screen
|
-- Only show everything on the first screen
|
||||||
|
@ -283,7 +285,7 @@ awful.screen.connect_for_each_screen(function(s)
|
||||||
s.mylayoutbox,
|
s.mylayoutbox,
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Add widgets to the wibox
|
-- Add widgets to the wibox
|
||||||
s.mywibox:setup {
|
s.mywibox:setup {
|
||||||
layout = wibox.layout.align.horizontal,
|
layout = wibox.layout.align.horizontal,
|
||||||
|
@ -350,7 +352,7 @@ globalkeys = awful.util.table.join(
|
||||||
function ()
|
function ()
|
||||||
awful.client.focus.history.previous()
|
awful.client.focus.history.previous()
|
||||||
if client.focus then
|
if client.focus then
|
||||||
client.focus:raise()
|
client.focus:raise()
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
{description = "go back", group = "client"}),
|
{description = "go back", group = "client"}),
|
||||||
|
@ -407,8 +409,15 @@ globalkeys = awful.util.table.join(
|
||||||
{description = "lua execute prompt", group = "awesome"}),
|
{description = "lua execute prompt", group = "awesome"}),
|
||||||
-- Menubar
|
-- Menubar
|
||||||
awful.key({ modkey }, "p", function() menubar.show() end,
|
awful.key({ modkey }, "p", function() menubar.show() end,
|
||||||
|
{description = "show the menubar", group = "launcher"}),
|
||||||
|
-- Menubar (dmenu)
|
||||||
|
awful.key({ modkey }, "d",
|
||||||
|
function()
|
||||||
|
--awful.spawn(string.format("dmenu_run -i -b -l 20 -fn 'Fura Code Nerd Font:size=10:style=Regular'"))
|
||||||
|
awful.spawn(string.format("rofi -show combi -combi-modi 'window,run,ssh' -modi combi"))
|
||||||
|
end,
|
||||||
{description = "show the menubar", group = "launcher"})
|
{description = "show the menubar", group = "launcher"})
|
||||||
)
|
)
|
||||||
|
|
||||||
clientkeys = awful.util.table.join(
|
clientkeys = awful.util.table.join(
|
||||||
awful.key({ modkey, }, "f",
|
awful.key({ modkey, }, "f",
|
||||||
|
@ -508,29 +517,46 @@ for i = 1, 9 do
|
||||||
volume.update()
|
volume.update()
|
||||||
end,
|
end,
|
||||||
{description = "Lower audio volume", group = "audio"}),
|
{description = "Lower audio volume", group = "audio"}),
|
||||||
awful.key({ any }, "XF86AudioMute",
|
awful.key({ any }, "XF86AudioMute",
|
||||||
function()
|
function()
|
||||||
awful.spawn(string.format("pactl set-sink-mute %s 1", volume.device))
|
awful.spawn(string.format("pactl set-sink-mute %s 1", volume.device))
|
||||||
volume.update()
|
volume.update()
|
||||||
end,
|
end,
|
||||||
{description = "mute audio", group = "audio"}),
|
{description = "mute audio", group = "audio"}),
|
||||||
awful.key({ 'Shift' }, "XF86AudioMute",
|
awful.key({ 'Shift' }, "XF86AudioMute",
|
||||||
function()
|
function()
|
||||||
awful.spawn(string.format("pactl set-sink-mute %s 0", volume.device))
|
awful.spawn(string.format("pactl set-sink-mute %s 0", volume.device))
|
||||||
volume.update()
|
volume.update()
|
||||||
end,
|
end,
|
||||||
{description = "unmute audio", group = "audio"}),
|
{description = "unmute audio", group = "audio"}),
|
||||||
awful.key({ modkey }, "Print",
|
awful.key({ }, "Print",
|
||||||
function ()
|
function ()
|
||||||
local command = [[bash -c 'escrotum "$(xdg-user-dir PICTURES)/%Y-%m-%d_%T_screenshot.png"']]
|
--local command = [[bash -c 'escrotum "$(xdg-user-dir PICTURES)/%Y-%m-%d_%T_screenshot.png"']]
|
||||||
awful.spawn.easy_async(command, function(stdout, stderr)
|
for i=1,screen:count() do
|
||||||
naughty.notify {
|
local command = "bash -c 'flameshot screen -n ".. i-1 .." -p \"$(xdg-user-dir PICTURES)/\"'"
|
||||||
title = "Screenshot saved!",
|
awful.spawn.easy_async(command, function(stdout, stderr)
|
||||||
text = stdout,
|
--naughty.notify {
|
||||||
}
|
-- title = "Screenshot saved!",
|
||||||
end)
|
-- text = stdout,
|
||||||
|
--}
|
||||||
|
end)
|
||||||
|
end
|
||||||
end,
|
end,
|
||||||
{description = "Take screenshot", group = "audio"})
|
{description = "Take screenshot", group = "video"}),
|
||||||
|
awful.key({ 'Shift' }, "Print",
|
||||||
|
function ()
|
||||||
|
--local command = [[bash -c 'escrotum "$(xdg-user-dir PICTURES)/%Y-%m-%d_%T_screenshot.png"']]
|
||||||
|
for i=1,screen:count() do
|
||||||
|
local command = "bash -c 'flameshot gui -p \"$(xdg-user-dir PICTURES)/\"'"
|
||||||
|
awful.spawn.easy_async(command, function(stdout, stderr)
|
||||||
|
--naughty.notify {
|
||||||
|
-- title = "Screenshot saved!",
|
||||||
|
-- text = stdout,
|
||||||
|
--}
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
{description = "Take screenshot", group = "video"})
|
||||||
)
|
)
|
||||||
|
|
||||||
clientbuttons = awful.util.table.join(
|
clientbuttons = awful.util.table.join(
|
||||||
|
@ -595,7 +621,7 @@ awful.rules.rules = {
|
||||||
role = {
|
role = {
|
||||||
"pop-up", -- e.g. Google Chrome's (detached) Developer Tools.
|
"pop-up", -- e.g. Google Chrome's (detached) Developer Tools.
|
||||||
}
|
}
|
||||||
}, properties = {
|
}, properties = {
|
||||||
floating = true
|
floating = true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -699,12 +725,13 @@ local function remove_client(tabl, c)
|
||||||
if index then
|
if index then
|
||||||
table.remove(tabl, index)
|
table.remove(tabl, index)
|
||||||
if #tabl == 0 then
|
if #tabl == 0 then
|
||||||
|
awful.util.spawn("xset s blank")
|
||||||
awful.util.spawn("xset s on")
|
awful.util.spawn("xset s on")
|
||||||
awful.util.spawn("xset +dpms")
|
awful.util.spawn("xset +dpms")
|
||||||
naughty.notify({ preset = naughty.config.presets.low,
|
naughty.notify({ preset = naughty.config.presets.low,
|
||||||
title = "DPMS information",
|
title = "DPMS information",
|
||||||
text = "Display power management is now back ON"})
|
text = "Display power management is now back ON"})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -712,9 +739,10 @@ client.connect_signal("property::fullscreen", function(c)
|
||||||
if c.fullscreen then
|
if c.fullscreen then
|
||||||
table.insert(fullscreened_clients, c)
|
table.insert(fullscreened_clients, c)
|
||||||
if #fullscreened_clients == 1 then
|
if #fullscreened_clients == 1 then
|
||||||
|
awful.util.spawn("xset s noblank")
|
||||||
awful.util.spawn("xset s off")
|
awful.util.spawn("xset s off")
|
||||||
awful.util.spawn("xset -dpms")
|
awful.util.spawn("xset -dpms")
|
||||||
naughty.notify({
|
naughty.notify({
|
||||||
preset = naughty.config.presets.low,
|
preset = naughty.config.presets.low,
|
||||||
title = "DPMS information",
|
title = "DPMS information",
|
||||||
text = "Display power management is now OFF"
|
text = "Display power management is now OFF"
|
||||||
|
@ -733,10 +761,13 @@ end)
|
||||||
|
|
||||||
awful.util.spawn_with_shell("run-once pasystray")
|
awful.util.spawn_with_shell("run-once pasystray")
|
||||||
awful.util.spawn_with_shell("run-once blueman-applet")
|
awful.util.spawn_with_shell("run-once blueman-applet")
|
||||||
|
awful.util.spawn_with_shell("run-once nm-applet")
|
||||||
|
awful.util.spawn_with_shell("run-once 'nextcloud --background'")
|
||||||
|
awful.util.spawn_with_shell("run-once 'udiskie --tray --notify --automount'")
|
||||||
|
awful.util.spawn_with_shell("run-once 'mpd /home/lanxu/.config/mpd/mpd.conf'")
|
||||||
|
awful.util.spawn_with_shell("run-once 'xscreensaver -no-splash'")
|
||||||
--awful.util.spawn_with_shell("run-once conky")
|
--awful.util.spawn_with_shell("run-once conky")
|
||||||
--awful.util.spawn_with_shell("run-once dropboxd")
|
|
||||||
--awful.util.spawn_with_shell("run-once light-locker")
|
--awful.util.spawn_with_shell("run-once light-locker")
|
||||||
--awful.util.spawn_with_shell("run-once xscreensaver -no-splash")
|
|
||||||
--awful.util.spawn_with_shell("run-once firefox-developer-edition")
|
--awful.util.spawn_with_shell("run-once firefox-developer-edition")
|
||||||
--awful.util.spawn_with_shell("run-once firefox")
|
--awful.util.spawn_with_shell("run-once firefox")
|
||||||
|
|
||||||
|
|
Before Width: | Height: | Size: 106 B |
Before Width: | Height: | Size: 148 B |
Before Width: | Height: | Size: 132 B |
Before Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 179 B |
Before Width: | Height: | Size: 195 B |
Before Width: | Height: | Size: 195 B |
Before Width: | Height: | Size: 185 B After Width: | Height: | Size: 478 B |
Before Width: | Height: | Size: 208 B |
Before Width: | Height: | Size: 203 B |
Before Width: | Height: | Size: 214 B |
Before Width: | Height: | Size: 198 B |
BIN
.config/awesome/themes/lanxu/icons/gpu.png
Normal file
After Width: | Height: | Size: 475 B |
Before Width: | Height: | Size: 253 B |
Before Width: | Height: | Size: 228 B |
Before Width: | Height: | Size: 189 B |
Before Width: | Height: | Size: 213 B |
Before Width: | Height: | Size: 228 B |
Before Width: | Height: | Size: 93 B |
Before Width: | Height: | Size: 193 B |
Before Width: | Height: | Size: 186 B |
Before Width: | Height: | Size: 196 B |
Before Width: | Height: | Size: 175 B |
BIN
.config/awesome/themes/lanxu/icons/ram.png
Normal file
After Width: | Height: | Size: 464 B |
Before Width: | Height: | Size: 130 B |
Before Width: | Height: | Size: 206 B |
Before Width: | Height: | Size: 81 B |
Before Width: | Height: | Size: 88 B |
Before Width: | Height: | Size: 142 B |
Before Width: | Height: | Size: 189 B |
Before Width: | Height: | Size: 119 B |
Before Width: | Height: | Size: 972 B |
Before Width: | Height: | Size: 195 B |
Before Width: | Height: | Size: 200 B |
Before Width: | Height: | Size: 193 B |
Before Width: | Height: | Size: 199 B |
Before Width: | Height: | Size: 123 B |
Before Width: | Height: | Size: 193 B |
Before Width: | Height: | Size: 227 B |
Before Width: | Height: | Size: 127 B |
BIN
.config/awesome/themes/lanxu/icons/wall-clock.png
Normal file
After Width: | Height: | Size: 587 B |
BIN
.config/awesome/themes/lanxu/titlebar/minimize_focus.png
Normal file
After Width: | Height: | Size: 277 B |
BIN
.config/awesome/themes/lanxu/titlebar/minimize_normal.png
Normal file
After Width: | Height: | Size: 272 B |
|
@ -5,10 +5,16 @@ local lain = require("lain")
|
||||||
local vicious = require("vicious") -- Custom
|
local vicious = require("vicious") -- Custom
|
||||||
local beautiful = require("beautiful") -- CPU temp
|
local beautiful = require("beautiful") -- CPU temp
|
||||||
local wibox = require("wibox")
|
local wibox = require("wibox")
|
||||||
|
local gears = require("gears")
|
||||||
|
|
||||||
-- Variables
|
-- Variables
|
||||||
local valuecolor = "white"
|
local valuecolor = "white"
|
||||||
|
|
||||||
|
icons_dir = os.getenv("HOME") .. "/.config/awesome/themes/lanxu/icons/"
|
||||||
|
cpuicon = wibox.widget.imagebox()
|
||||||
|
cpuicon.image = icons_dir .. "cpu.png"
|
||||||
|
cpuicon.resize = false
|
||||||
|
|
||||||
-- Helpers
|
-- Helpers
|
||||||
function file_exists(name)
|
function file_exists(name)
|
||||||
local f = io.open(name,"r")
|
local f = io.open(name,"r")
|
||||||
|
@ -39,8 +45,18 @@ mymem = lain.widget.mem({
|
||||||
})
|
})
|
||||||
|
|
||||||
-- GPU
|
-- GPU
|
||||||
mygputemp = wibox.widget.textbox()
|
mygputemp_text = wibox.widget.textbox()
|
||||||
vicious.register(mygputemp, gputemp, create_markup("GPU", "$0", "℃", valuecolor), 15, "AMD")
|
mygputemp_text.align = "center"
|
||||||
|
vicious.register(mygputemp_text, gputemp,
|
||||||
|
function(widget, args)
|
||||||
|
temp = string.format("%.0f", tonumber(args[0]))
|
||||||
|
return create_markup("", temp, "℃", valuecolor)
|
||||||
|
end, 15, "AMD")
|
||||||
|
mygputemp = wibox.container.background()
|
||||||
|
mygputemp.forced_width = 70
|
||||||
|
mygputemp:set_widget(mygputemp_text)
|
||||||
|
--mytextclock:set_shape(gears.shape.hexagon)
|
||||||
|
mygputemp:set_bg('#5e35b1')
|
||||||
|
|
||||||
-- Hubic
|
-- Hubic
|
||||||
myhubic = wibox.widget.textbox()
|
myhubic = wibox.widget.textbox()
|
||||||
|
@ -62,27 +78,40 @@ volume = lain.widget.pulse({
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Text clock
|
-- Text clock
|
||||||
mytextclock = wibox.widget.textclock(create_markup("Date","%Y-%m-%d %H:%M","", valuecolor))
|
mytextclock_text = wibox.widget.textclock(create_markup("","%Y-%m-%d %H:%M","", valuecolor))
|
||||||
|
mytextclock_text.align = "center"
|
||||||
lain.widget.calendar({
|
lain.widget.cal({
|
||||||
followtag = true,
|
followtag = true,
|
||||||
attach_to = {mytextclock}
|
attach_to = {mytextclock_text},
|
||||||
|
notification_preset = {
|
||||||
|
font = "Monospace 11", fg = "#FFFFFF", bg = "#000000"
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
-- CPU temperature
|
mytextclock = wibox.container.background()
|
||||||
local tempfile = "/sys/bus/pci/drivers/k10temp/0000:00:18.3/hwmon/hwmon2/temp1_input"
|
mytextclock.forced_width = 130
|
||||||
|
mytextclock:set_widget(mytextclock_text)
|
||||||
|
mytextclock:set_bg('#512da8')
|
||||||
|
|
||||||
|
-- CPU temperature
|
||||||
|
local tempfile = "/sys/devices/pci0000:00/0000:00:18.3/hwmon/hwmon1/temp1_input"
|
||||||
if file_exists(tempfile) == false then
|
if file_exists(tempfile) == false then
|
||||||
tempfile = "/sys/class/thermal/thermal_zone0/temp"
|
tempfile = "/sys/class/thermal/thermal_zone0/temp"
|
||||||
end
|
end
|
||||||
|
|
||||||
mycputemp = lain.widget.temp({
|
mycputemp_text = lain.widget.temp({
|
||||||
tempfile = tempfile,
|
tempfile = tempfile,
|
||||||
settings = function()
|
settings = function()
|
||||||
widget.markup = create_markup("CPU", coretemp_now, "℃", valuecolor)
|
temp = string.format("%.0f", tonumber(coretemp_now))
|
||||||
|
widget.markup = create_markup("", temp, "℃", valuecolor)
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
|
mycputemp_text.widget.align = "center"
|
||||||
|
mycputemp = wibox.container.background()
|
||||||
|
mycputemp.forced_width = 70
|
||||||
|
mycputemp:set_widget(mycputemp_text.widget)
|
||||||
|
mycputemp:set_bg('#9575cd')
|
||||||
-- Weather Widget
|
-- Weather Widget
|
||||||
myweather = lain.widget.weather({
|
myweather = lain.widget.weather({
|
||||||
city_id = 634963,
|
city_id = 634963,
|
||||||
|
@ -90,11 +119,19 @@ myweather = lain.widget.weather({
|
||||||
followtag = true,
|
followtag = true,
|
||||||
settings = function()
|
settings = function()
|
||||||
widget.markup = create_markup("Tampere", weather_now.main.temp, "℃", valuecolor)
|
widget.markup = create_markup("Tampere", weather_now.main.temp, "℃", valuecolor)
|
||||||
end
|
end,
|
||||||
|
notification_preset = {
|
||||||
|
font = "Monospace 11", fg = "#FFFFFF", bg = "#000000"
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
-- DPMS
|
-- DPMS
|
||||||
mydpmsstatus = wibox.widget.textbox()
|
mydpmsstatus = wibox.widget.textbox()
|
||||||
|
-- mydpmsstatus.container.background.bg = '#ff0000'
|
||||||
|
--mydpmsstatus = {
|
||||||
|
-- widget = wibox.widget.textbox
|
||||||
|
--}
|
||||||
|
|
||||||
vicious.register(mydpmsstatus, dpmsstatus, function(widget, args)
|
vicious.register(mydpmsstatus, dpmsstatus, function(widget, args)
|
||||||
color = valuecolor
|
color = valuecolor
|
||||||
if args[0] == "Enabled" then
|
if args[0] == "Enabled" then
|
||||||
|
@ -109,21 +146,21 @@ local notification = {
|
||||||
font = "Monospace 10"
|
font = "Monospace 10"
|
||||||
}
|
}
|
||||||
-- Servers
|
-- Servers
|
||||||
local mcstatus = require("lanxu/mcstatus")
|
--local mcstatus = require("lanxu/mcstatus")
|
||||||
myserverstatus = mcstatus({
|
--myserverstatus = mcstatus({
|
||||||
notification_preset = notification,
|
--notification_preset = notification,
|
||||||
settings = function()
|
--settings = function()
|
||||||
widget.markup = create_markup("PLAYERS", totalplayers, "", valuecolor)
|
--widget.markup = create_markup("PLAYERS", totalplayers, "", valuecolor)
|
||||||
end
|
--end
|
||||||
})
|
--})
|
||||||
|
|
||||||
local cloudstatus = require("lanxu/cloudstatus")
|
--local cloudstatus = require("lanxu/cloudstatus")
|
||||||
mycloudstatus = cloudstatus({
|
--mycloudstatus = cloudstatus({
|
||||||
notification_preset = notification,
|
--notification_preset = notification,
|
||||||
settings = function()
|
--settings = function()
|
||||||
widget.markup = create_markup("CLOUD", currentstatus, "", valuecolor)
|
--widget.markup = create_markup("CLOUD", currentstatus, "", valuecolor)
|
||||||
end
|
--end
|
||||||
})
|
--})
|
||||||
|
|
||||||
local ip = require("lanxu/ip")
|
local ip = require("lanxu/ip")
|
||||||
ipaddress = ip({
|
ipaddress = ip({
|
||||||
|
@ -132,3 +169,4 @@ ipaddress = ip({
|
||||||
widget.markup = create_markup("IP", address, "", valuecolor)
|
widget.markup = create_markup("IP", address, "", valuecolor)
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
9
.config/compton/compton.conf
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
# menu = { shadow = false; };
|
||||||
|
dropdown_menu = { shadow = false; };
|
||||||
|
popup_menu = { shadow = false; };
|
||||||
|
utility = { shadow = false; };
|
||||||
|
|
||||||
|
opacity-rule = [
|
||||||
|
"95:class_g = 'kitty' && focused",
|
||||||
|
"80:class_g = 'kitty' && !focused"
|
||||||
|
];
|
422
.config/dunst/dunstrc
Normal file
|
@ -0,0 +1,422 @@
|
||||||
|
[global]
|
||||||
|
### Display ###
|
||||||
|
|
||||||
|
# Which monitor should the notifications be displayed on.
|
||||||
|
monitor = 0
|
||||||
|
|
||||||
|
# Display notification on focused monitor. Possible modes are:
|
||||||
|
# mouse: follow mouse pointer
|
||||||
|
# keyboard: follow window with keyboard focus
|
||||||
|
# none: don't follow anything
|
||||||
|
#
|
||||||
|
# "keyboard" needs a window manager that exports the
|
||||||
|
# _NET_ACTIVE_WINDOW property.
|
||||||
|
# This should be the case for almost all modern window managers.
|
||||||
|
#
|
||||||
|
# If this option is set to mouse or keyboard, the monitor option
|
||||||
|
# will be ignored.
|
||||||
|
follow = mouse
|
||||||
|
|
||||||
|
# The geometry of the window:
|
||||||
|
# [{width}]x{height}[+/-{x}+/-{y}]
|
||||||
|
# The geometry of the message window.
|
||||||
|
# The height is measured in number of notifications everything else
|
||||||
|
# in pixels. If the width is omitted but the height is given
|
||||||
|
# ("-geometry x2"), the message window expands over the whole screen
|
||||||
|
# (dmenu-like). If width is 0, the window expands to the longest
|
||||||
|
# message displayed. A positive x is measured from the left, a
|
||||||
|
# negative from the right side of the screen. Y is measured from
|
||||||
|
# the top and down respectively.
|
||||||
|
# The width can be negative. In this case the actual width is the
|
||||||
|
# screen width minus the width defined in within the geometry option.
|
||||||
|
geometry = "300x5-30+20"
|
||||||
|
|
||||||
|
# Show how many messages are currently hidden (because of geometry).
|
||||||
|
indicate_hidden = yes
|
||||||
|
|
||||||
|
# Shrink window if it's smaller than the width. Will be ignored if
|
||||||
|
# width is 0.
|
||||||
|
shrink = no
|
||||||
|
|
||||||
|
# The transparency of the window. Range: [0; 100].
|
||||||
|
# This option will only work if a compositing window manager is
|
||||||
|
# present (e.g. xcompmgr, compiz, etc.).
|
||||||
|
transparency = 5
|
||||||
|
|
||||||
|
# The height of the entire notification. If the height is smaller
|
||||||
|
# than the font height and padding combined, it will be raised
|
||||||
|
# to the font height and padding.
|
||||||
|
notification_height = 0
|
||||||
|
|
||||||
|
# Draw a line of "separator_height" pixel height between two
|
||||||
|
# notifications.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
separator_height = 2
|
||||||
|
|
||||||
|
# Padding between text and separator.
|
||||||
|
padding = 10
|
||||||
|
|
||||||
|
# Horizontal padding.
|
||||||
|
horizontal_padding = 8
|
||||||
|
|
||||||
|
# Defines width in pixels of frame around the notification window.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
frame_width = 3
|
||||||
|
|
||||||
|
# Defines color of the frame around the notification window.
|
||||||
|
#frame_color = "#aaaaaa"
|
||||||
|
frame_color = foreground
|
||||||
|
|
||||||
|
# Define a color for the separator.
|
||||||
|
# possible values are:
|
||||||
|
# * auto: dunst tries to find a color fitting to the background;
|
||||||
|
# * foreground: use the same color as the foreground;
|
||||||
|
# * frame: use the same color as the frame;
|
||||||
|
# * anything else will be interpreted as a X color.
|
||||||
|
separator_color = frame
|
||||||
|
|
||||||
|
# Sort messages by urgency.
|
||||||
|
sort = yes
|
||||||
|
|
||||||
|
# Don't remove messages, if the user is idle (no mouse or keyboard input)
|
||||||
|
# for longer than idle_threshold seconds.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
# A client can set the 'transient' hint to bypass this. See the rules
|
||||||
|
# section for how to disable this if necessary
|
||||||
|
idle_threshold = 120
|
||||||
|
|
||||||
|
### Text ###
|
||||||
|
|
||||||
|
font = Monospace 10
|
||||||
|
|
||||||
|
# The spacing between lines. If the height is smaller than the
|
||||||
|
# font height, it will get raised to the font height.
|
||||||
|
line_height = 0
|
||||||
|
|
||||||
|
# Possible values are:
|
||||||
|
# full: Allow a small subset of html markup in notifications:
|
||||||
|
# <b>bold</b>
|
||||||
|
# <i>italic</i>
|
||||||
|
# <s>strikethrough</s>
|
||||||
|
# <u>underline</u>
|
||||||
|
#
|
||||||
|
# For a complete reference see
|
||||||
|
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
|
||||||
|
#
|
||||||
|
# strip: This setting is provided for compatibility with some broken
|
||||||
|
# clients that send markup even though it's not enabled on the
|
||||||
|
# server. Dunst will try to strip the markup but the parsing is
|
||||||
|
# simplistic so using this option outside of matching rules for
|
||||||
|
# specific applications *IS GREATLY DISCOURAGED*.
|
||||||
|
#
|
||||||
|
# no: Disable markup parsing, incoming notifications will be treated as
|
||||||
|
# plain text. Dunst will not advertise that it has the body-markup
|
||||||
|
# capability if this is set as a global setting.
|
||||||
|
#
|
||||||
|
# It's important to note that markup inside the format option will be parsed
|
||||||
|
# regardless of what this is set to.
|
||||||
|
markup = full
|
||||||
|
|
||||||
|
# The format of the message. Possible variables are:
|
||||||
|
# %a appname
|
||||||
|
# %s summary
|
||||||
|
# %b body
|
||||||
|
# %i iconname (including its path)
|
||||||
|
# %I iconname (without its path)
|
||||||
|
# %p progress value if set ([ 0%] to [100%]) or nothing
|
||||||
|
# %n progress value if set without any extra characters
|
||||||
|
# %% Literal %
|
||||||
|
# Markup is allowed
|
||||||
|
format = "<b>%s</b>\n%b"
|
||||||
|
|
||||||
|
# Alignment of message text.
|
||||||
|
# Possible values are "left", "center" and "right".
|
||||||
|
alignment = left
|
||||||
|
|
||||||
|
# Show age of message if message is older than show_age_threshold
|
||||||
|
# seconds.
|
||||||
|
# Set to -1 to disable.
|
||||||
|
show_age_threshold = 60
|
||||||
|
|
||||||
|
# Split notifications into multiple lines if they don't fit into
|
||||||
|
# geometry.
|
||||||
|
word_wrap = yes
|
||||||
|
|
||||||
|
# When word_wrap is set to no, specify where to make an ellipsis in long lines.
|
||||||
|
# Possible values are "start", "middle" and "end".
|
||||||
|
ellipsize = middle
|
||||||
|
|
||||||
|
# Ignore newlines '\n' in notifications.
|
||||||
|
ignore_newline = no
|
||||||
|
|
||||||
|
# Stack together notifications with the same content
|
||||||
|
stack_duplicates = true
|
||||||
|
|
||||||
|
# Hide the count of stacked notifications with the same content
|
||||||
|
hide_duplicate_count = false
|
||||||
|
|
||||||
|
# Display indicators for URLs (U) and actions (A).
|
||||||
|
show_indicators = yes
|
||||||
|
|
||||||
|
### Icons ###
|
||||||
|
|
||||||
|
# Align icons left/right/off
|
||||||
|
icon_position = left
|
||||||
|
|
||||||
|
# Scale larger icons down to this size, set to 0 to disable
|
||||||
|
max_icon_size = 32
|
||||||
|
|
||||||
|
# Paths to default icons.
|
||||||
|
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
|
||||||
|
|
||||||
|
### History ###
|
||||||
|
|
||||||
|
# Should a notification popped up from history be sticky or timeout
|
||||||
|
# as if it would normally do.
|
||||||
|
sticky_history = yes
|
||||||
|
|
||||||
|
# Maximum amount of notifications kept in history
|
||||||
|
history_length = 20
|
||||||
|
|
||||||
|
### Misc/Advanced ###
|
||||||
|
|
||||||
|
# dmenu path.
|
||||||
|
dmenu = /usr/bin/rofi -p dunst:
|
||||||
|
|
||||||
|
# Browser for opening urls in context menu.
|
||||||
|
browser = /usr/bin/firefox -new-tab
|
||||||
|
|
||||||
|
# Always run rule-defined scripts, even if the notification is suppressed
|
||||||
|
always_run_script = true
|
||||||
|
|
||||||
|
# Define the title of the windows spawned by dunst
|
||||||
|
title = Dunst
|
||||||
|
|
||||||
|
# Define the class of the windows spawned by dunst
|
||||||
|
class = Dunst
|
||||||
|
|
||||||
|
# Print a notification on startup.
|
||||||
|
# This is mainly for error detection, since dbus (re-)starts dunst
|
||||||
|
# automatically after a crash.
|
||||||
|
startup_notification = false
|
||||||
|
|
||||||
|
# Manage dunst's desire for talking
|
||||||
|
# Can be one of the following values:
|
||||||
|
# crit: Critical features. Dunst aborts
|
||||||
|
# warn: Only non-fatal warnings
|
||||||
|
# mesg: Important Messages
|
||||||
|
# info: all unimportant stuff
|
||||||
|
# debug: all less than unimportant stuff
|
||||||
|
verbosity = mesg
|
||||||
|
|
||||||
|
# Define the corner radius of the notification window
|
||||||
|
# in pixel size. If the radius is 0, you have no rounded
|
||||||
|
# corners.
|
||||||
|
# The radius will be automatically lowered if it exceeds half of the
|
||||||
|
# notification height to avoid clipping text and/or icons.
|
||||||
|
corner_radius = 0
|
||||||
|
|
||||||
|
### Legacy
|
||||||
|
|
||||||
|
# Use the Xinerama extension instead of RandR for multi-monitor support.
|
||||||
|
# This setting is provided for compatibility with older nVidia drivers that
|
||||||
|
# do not support RandR and using it on systems that support RandR is highly
|
||||||
|
# discouraged.
|
||||||
|
#
|
||||||
|
# By enabling this setting dunst will not be able to detect when a monitor
|
||||||
|
# is connected or disconnected which might break follow mode if the screen
|
||||||
|
# layout changes.
|
||||||
|
force_xinerama = false
|
||||||
|
|
||||||
|
### mouse
|
||||||
|
|
||||||
|
# Defines action of mouse event
|
||||||
|
# Possible values are:
|
||||||
|
# * none: Don't do anything.
|
||||||
|
# * do_action: If the notification has exactly one action, or one is marked as default,
|
||||||
|
# invoke it. If there are multiple and no default, open the context menu.
|
||||||
|
# * close_current: Close current notification.
|
||||||
|
# * close_all: Close all notifications.
|
||||||
|
mouse_left_click = close_current
|
||||||
|
mouse_middle_click = do_action
|
||||||
|
mouse_right_click = close_all
|
||||||
|
|
||||||
|
# Experimental features that may or may not work correctly. Do not expect them
|
||||||
|
# to have a consistent behaviour across releases.
|
||||||
|
[experimental]
|
||||||
|
# Calculate the dpi to use on a per-monitor basis.
|
||||||
|
# If this setting is enabled the Xft.dpi value will be ignored and instead
|
||||||
|
# dunst will attempt to calculate an appropriate dpi value for each monitor
|
||||||
|
# using the resolution and physical size. This might be useful in setups
|
||||||
|
# where there are multiple screens with very different dpi values.
|
||||||
|
per_monitor_dpi = false
|
||||||
|
|
||||||
|
[shortcuts]
|
||||||
|
|
||||||
|
# Shortcuts are specified as [modifier+][modifier+]...key
|
||||||
|
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
|
||||||
|
# "mod3" and "mod4" (windows-key).
|
||||||
|
# Xev might be helpful to find names for keys.
|
||||||
|
|
||||||
|
# Close notification.
|
||||||
|
close = ctrl+space
|
||||||
|
|
||||||
|
# Close all notifications.
|
||||||
|
close_all = ctrl+shift+space
|
||||||
|
|
||||||
|
# Redisplay last message(s).
|
||||||
|
# On the US keyboard layout "grave" is normally above TAB and left
|
||||||
|
# of "1". Make sure this key actually exists on your keyboard layout,
|
||||||
|
# e.g. check output of 'xmodmap -pke'
|
||||||
|
history = ctrl+grave
|
||||||
|
|
||||||
|
# Context menu.
|
||||||
|
context = ctrl+shift+period
|
||||||
|
|
||||||
|
[urgency_low]
|
||||||
|
# IMPORTANT: colors have to be defined in quotation marks.
|
||||||
|
# Otherwise the "#" and following would be interpreted as a comment.
|
||||||
|
# background = "#222222"
|
||||||
|
# foreground = "#888888"
|
||||||
|
background = "#fdf6e3"
|
||||||
|
foreground = "#93a1a1"
|
||||||
|
frame_color = "#93a1a1"
|
||||||
|
timeout = 10
|
||||||
|
# Icon for notifications with low urgency, uncomment to enable
|
||||||
|
#icon = /path/to/icon
|
||||||
|
|
||||||
|
[urgency_normal]
|
||||||
|
background = "#fdf6e3"
|
||||||
|
foreground = "#002b36"
|
||||||
|
frame_color = "#002b36"
|
||||||
|
timeout = 10
|
||||||
|
# Icon for notifications with normal urgency, uncomment to enable
|
||||||
|
#icon = /path/to/icon
|
||||||
|
|
||||||
|
[urgency_critical]
|
||||||
|
#background = "#900000"
|
||||||
|
#foreground = "#ffffff"
|
||||||
|
#frame_color = "#ff0000"
|
||||||
|
background = "#dc322f"
|
||||||
|
foreground = "#eee8d5"
|
||||||
|
frame_color = "#cb4b16"
|
||||||
|
timeout = 0
|
||||||
|
# Icon for notifications with critical urgency, uncomment to enable
|
||||||
|
#icon = /path/to/icon
|
||||||
|
|
||||||
|
# Every section that isn't one of the above is interpreted as a rules to
|
||||||
|
# override settings for certain messages.
|
||||||
|
#
|
||||||
|
# Messages can be matched by
|
||||||
|
# appname (discouraged, see desktop_entry)
|
||||||
|
# body
|
||||||
|
# category
|
||||||
|
# desktop_entry
|
||||||
|
# icon
|
||||||
|
# match_transient
|
||||||
|
# msg_urgency
|
||||||
|
# stack_tag
|
||||||
|
# summary
|
||||||
|
#
|
||||||
|
# and you can override the
|
||||||
|
# background
|
||||||
|
# foreground
|
||||||
|
# format
|
||||||
|
# frame_color
|
||||||
|
# fullscreen
|
||||||
|
# new_icon
|
||||||
|
# set_stack_tag
|
||||||
|
# set_transient
|
||||||
|
# timeout
|
||||||
|
# urgency
|
||||||
|
#
|
||||||
|
# Shell-like globbing will get expanded.
|
||||||
|
#
|
||||||
|
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
|
||||||
|
# GLib based applications export their desktop-entry name. In comparison to the appname,
|
||||||
|
# the desktop-entry won't get localized.
|
||||||
|
#
|
||||||
|
# SCRIPTING
|
||||||
|
# You can specify a script that gets run when the rule matches by
|
||||||
|
# setting the "script" option.
|
||||||
|
# The script will be called as follows:
|
||||||
|
# script appname summary body icon urgency
|
||||||
|
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
|
||||||
|
#
|
||||||
|
# NOTE: if you don't want a notification to be displayed, set the format
|
||||||
|
# to "".
|
||||||
|
# NOTE: It might be helpful to run dunst -print in a terminal in order
|
||||||
|
# to find fitting options for rules.
|
||||||
|
|
||||||
|
# Disable the transient hint so that idle_threshold cannot be bypassed from the
|
||||||
|
# client
|
||||||
|
#[transient_disable]
|
||||||
|
# match_transient = yes
|
||||||
|
# set_transient = no
|
||||||
|
#
|
||||||
|
# Make the handling of transient notifications more strict by making them not
|
||||||
|
# be placed in history.
|
||||||
|
#[transient_history_ignore]
|
||||||
|
# match_transient = yes
|
||||||
|
# history_ignore = yes
|
||||||
|
|
||||||
|
# fullscreen values
|
||||||
|
# show: show the notifications, regardless if there is a fullscreen window opened
|
||||||
|
# delay: displays the new notification, if there is no fullscreen window active
|
||||||
|
# If the notification is already drawn, it won't get undrawn.
|
||||||
|
# pushback: same as delay, but when switching into fullscreen, the notification will get
|
||||||
|
# withdrawn from screen again and will get delayed like a new notification
|
||||||
|
#[fullscreen_delay_everything]
|
||||||
|
# fullscreen = delay
|
||||||
|
#[fullscreen_show_critical]
|
||||||
|
# msg_urgency = critical
|
||||||
|
# fullscreen = show
|
||||||
|
|
||||||
|
#[espeak]
|
||||||
|
# summary = "*"
|
||||||
|
# script = dunst_espeak.sh
|
||||||
|
|
||||||
|
#[script-test]
|
||||||
|
# summary = "*script*"
|
||||||
|
# script = dunst_test.sh
|
||||||
|
|
||||||
|
#[ignore]
|
||||||
|
# # This notification will not be displayed
|
||||||
|
# summary = "foobar"
|
||||||
|
# format = ""
|
||||||
|
|
||||||
|
#[history-ignore]
|
||||||
|
# # This notification will not be saved in history
|
||||||
|
# summary = "foobar"
|
||||||
|
# history_ignore = yes
|
||||||
|
|
||||||
|
#[skip-display]
|
||||||
|
# # This notification will not be displayed, but will be included in the history
|
||||||
|
# summary = "foobar"
|
||||||
|
# skip_display = yes
|
||||||
|
|
||||||
|
#[signed_on]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = "*signed on*"
|
||||||
|
# urgency = low
|
||||||
|
#
|
||||||
|
#[signed_off]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *signed off*
|
||||||
|
# urgency = low
|
||||||
|
#
|
||||||
|
#[says]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *says*
|
||||||
|
# urgency = critical
|
||||||
|
#
|
||||||
|
#[twitter]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *twitter.com*
|
||||||
|
# urgency = normal
|
||||||
|
#
|
||||||
|
#[stack-volumes]
|
||||||
|
# appname = "some_volume_notifiers"
|
||||||
|
# set_stack_tag = "volume"
|
||||||
|
#
|
||||||
|
# vim: ft=cfg
|
112
.config/fontconfig/avail/01-noto.conf
Normal file
|
@ -0,0 +1,112 @@
|
||||||
|
<fontconfig>
|
||||||
|
<match target="font">
|
||||||
|
<!-- If the requested font is Bitstream Vera Serif -->
|
||||||
|
<test name="family" compare="eq">
|
||||||
|
<string>Bitstream Vera Serif</string>
|
||||||
|
</test>
|
||||||
|
<!-- Replace the entire match list with Bitstream Vera Serif alone -->
|
||||||
|
<edit name="family" mode="assign_replace">
|
||||||
|
<string>Bitstream Vera Serif</string>
|
||||||
|
</edit>
|
||||||
|
<!-- Assign the serif family -->
|
||||||
|
<edit name="family" mode="append_last">
|
||||||
|
<string>serif</string>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
|
||||||
|
<match>
|
||||||
|
<!-- If the requested font is serif -->
|
||||||
|
<test qual="any" name="family">
|
||||||
|
<string>serif</string>
|
||||||
|
</test>
|
||||||
|
<!-- Make Bitstream Vera Serif the first result -->
|
||||||
|
<edit name="family" mode="prepend_first">
|
||||||
|
<string>Bitstream Vera Serif</string>
|
||||||
|
</edit>
|
||||||
|
<!-- Followed by Noto Color Emoji -->
|
||||||
|
<edit name="family" mode="prepend_first">
|
||||||
|
<string>Noto Color Emoji</string>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
|
||||||
|
<match target="font">
|
||||||
|
<!-- If the requested font is Bitstream Vera Sans -->
|
||||||
|
<test name="family" compare="eq">
|
||||||
|
<string>Bitstream Vera Sans</string>
|
||||||
|
</test>
|
||||||
|
<!-- Replace the entire match list with Bitstream Vera Sans alone -->
|
||||||
|
<edit name="family" mode="assign_replace">
|
||||||
|
<string>Bitstream Vera Sans</string>
|
||||||
|
</edit>
|
||||||
|
<!-- Assign the sans-serif family -->
|
||||||
|
<edit name="family" mode="append_last">
|
||||||
|
<string>sans-serif</string>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
|
||||||
|
<match target="pattern">
|
||||||
|
<!-- If the requested font is sans-serif -->
|
||||||
|
<test qual="any" name="family">
|
||||||
|
<string>sans-serif</string>
|
||||||
|
</test>
|
||||||
|
<!-- Make Bitstream Vera Sans the first result -->
|
||||||
|
<edit name="family" mode="prepend_first">
|
||||||
|
<string>Bitstream Vera Sans</string>
|
||||||
|
</edit>
|
||||||
|
<!-- Followed by Noto Color Emoji -->
|
||||||
|
<edit name="family" mode="prepend_first">
|
||||||
|
<string>Noto Color Emoji</string>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
|
||||||
|
<match target="font">
|
||||||
|
<!-- If the requested font is Bitstream Vera Sans Mono -->
|
||||||
|
<test name="family" compare="eq">
|
||||||
|
<string>Bitstream Vera Sans Mono</string>
|
||||||
|
</test>
|
||||||
|
<!-- Replace the entire match list with Bitstream Vera Sans Mono alone -->
|
||||||
|
<edit name="family" mode="assign_replace">
|
||||||
|
<string>Bitstream Vera Sans Mono</string>
|
||||||
|
</edit>
|
||||||
|
<!-- Assign the monospace family last -->
|
||||||
|
<edit name="family" mode="append_last">
|
||||||
|
<string>monospace</string>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
|
||||||
|
<match target="pattern">
|
||||||
|
<!-- If the requested font is monospace -->
|
||||||
|
<test qual="any" name="family">
|
||||||
|
<string>monospace</string>
|
||||||
|
</test>
|
||||||
|
<!--
|
||||||
|
Make Bitstream Vera Sans Mono the first result
|
||||||
|
Note: If you want a different monospace font, this is where you change it.
|
||||||
|
-->
|
||||||
|
<edit name="family" mode="prepend_first">
|
||||||
|
<string>Bitstream Vera Sans Mono</string>
|
||||||
|
</edit>
|
||||||
|
<!-- Followed by Noto Color Emoji -->
|
||||||
|
<edit name="family" mode="prepend_first">
|
||||||
|
<string>Noto Color Emoji</string>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
|
||||||
|
<!-- Add emoji generic family -->
|
||||||
|
<alias binding="strong">
|
||||||
|
<family>emoji</family>
|
||||||
|
<default><family>Noto Color Emoji</family></default>
|
||||||
|
</alias>
|
||||||
|
|
||||||
|
<!-- Alias requests for the other emoji fonts -->
|
||||||
|
<alias binding="strong">
|
||||||
|
<family>Apple Color Emoji</family>
|
||||||
|
<prefer><family>Noto Color Emoji</family></prefer>
|
||||||
|
<default><family>sans-serif</family></default>
|
||||||
|
</alias>
|
||||||
|
<alias binding="strong">
|
||||||
|
<family>Segoe UI Emoji</family>
|
||||||
|
<prefer><family>Noto Color Emoji</family></prefer>
|
||||||
|
<default><family>sans-serif</family></default>
|
||||||
|
</alias>
|
||||||
|
</fontconfig>
|
1
.config/fontconfig/conf.d/10-autohint.conf
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
/etc/fonts/conf.avail/10-autohint.conf
|
1
.config/fontconfig/conf.d/10-sub-pixel-rgb.conf
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
/etc/fonts/conf.avail/10-sub-pixel-rgb.conf
|
1
.config/fontconfig/conf.d/11-lcdfilter-default.conf
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
/etc/fonts/conf.avail/11-lcdfilter-default.conf
|
1
.config/fontconfig/conf.d/30-win32-aliases.conf
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
/etc/fonts/conf.avail/30-win32-aliases.conf
|
1
.config/fontconfig/conf.d/70-no-bitmaps.conf
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
/etc/fonts/conf.avail/70-no-bitmaps.conf
|
32
.config/fontconfig/fonts.conf
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<match target="font">
|
||||||
|
<edit mode="assign" name="autohint"><bool>true</bool></edit>
|
||||||
|
<edit mode="assign" name="hinting"><bool>true</bool></edit>
|
||||||
|
<edit mode="assign" name="lcdfilter"><const>lcddefault</const></edit>
|
||||||
|
<edit mode="assign" name="hintstyle"><const>hintnone</const></edit>
|
||||||
|
<!-- symbols do not support antialias -->
|
||||||
|
<!--<edit mode="assign" name="antialias"><bool>true</bool></edit>-->
|
||||||
|
<edit mode="assign" name="rgba"><const>rgb</const></edit>
|
||||||
|
</match>
|
||||||
|
|
||||||
|
<match target="font">
|
||||||
|
<test name="pixelsize" qual="any" compare="more"><double>15</double></test>
|
||||||
|
<edit mode="assign" name="hintstyle"><const>hintnone</const></edit>
|
||||||
|
<edit mode="assign" name="lcdfilter"><const>lcdlight</const></edit>
|
||||||
|
</match>
|
||||||
|
|
||||||
|
<match target="font">
|
||||||
|
<test name="pixelsize" qual="any" compare="more"><double>12</double></test>
|
||||||
|
<test name="weight" compare="more"><const>medium</const></test>
|
||||||
|
<edit mode="assign" name="hintstyle"><const>hintnone</const></edit>
|
||||||
|
<edit mode="assign" name="lcdfilter"><const>lcdlight</const></edit>
|
||||||
|
</match>
|
||||||
|
|
||||||
|
<match target="font">
|
||||||
|
<test name="slant" compare="not_eq"><double>0</double></test>
|
||||||
|
<edit mode="assign" name="hintstyle"><const>hintnone</const></edit>
|
||||||
|
<edit mode="assign" name="lcdfilter"><const>lcdlight</const></edit>
|
||||||
|
</match>
|
||||||
|
</fontconfig>
|
49
.config/gallery-dl/config.json
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
{
|
||||||
|
"extractor": {
|
||||||
|
"base-directory": "~/Lataukset/gallery-dl/",
|
||||||
|
"archive": "~/Lataukset/gallery-dl/archive.sqlite3",
|
||||||
|
"exhentai":
|
||||||
|
{
|
||||||
|
"filename": "{num:>04}_{name}.{extension}",
|
||||||
|
"directory": ["{category!c}", "{title}"],
|
||||||
|
"postprocessors": [
|
||||||
|
{
|
||||||
|
"name": "zip",
|
||||||
|
"compression": "store",
|
||||||
|
"extension": "cbz"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"wait-min": 1.0,
|
||||||
|
"wait-max": 5.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"downloader": {
|
||||||
|
"part-directory": "/tmp/.download/",
|
||||||
|
"rate": "1M",
|
||||||
|
"retries": 3,
|
||||||
|
"timeout": 8.5
|
||||||
|
},
|
||||||
|
"output":
|
||||||
|
{
|
||||||
|
"mode": "terminal",
|
||||||
|
"log": {
|
||||||
|
"format": "{name}: {message}",
|
||||||
|
"level": "info"
|
||||||
|
},
|
||||||
|
"logfile": {
|
||||||
|
"path": "~/Lataukset/gallery-dl/log.txt",
|
||||||
|
"mode": "w",
|
||||||
|
"level": "debug"
|
||||||
|
},
|
||||||
|
"unsupportedfile": {
|
||||||
|
"path": "~/Lataukset/gallery-dl/unsupported.txt",
|
||||||
|
"mode": "a",
|
||||||
|
"format": "{asctime} {message}",
|
||||||
|
"format-date": "%Y-%m-%d-%H-%M-%S"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"cache": {
|
||||||
|
"file": "~/Lataukset/gallery-dl/cache.sqlite3"
|
||||||
|
}
|
||||||
|
}
|
BIN
.config/i3/background.png
Normal file
After Width: | Height: | Size: 6.1 MiB |
305
.config/i3/config
Normal file
|
@ -0,0 +1,305 @@
|
||||||
|
# i3 config file (v4)
|
||||||
|
#
|
||||||
|
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
|
||||||
|
#
|
||||||
|
# This config file uses keycodes (bindsym) and was written for the QWERTY
|
||||||
|
# layout.
|
||||||
|
#
|
||||||
|
# To get a config file with the same key positions, but for your current
|
||||||
|
# layout, use the i3-config-wizard
|
||||||
|
#
|
||||||
|
|
||||||
|
# Font for window titles. Will also be used by the bar unless a different font
|
||||||
|
# is used in the bar {} block below.
|
||||||
|
font pango:DejaVu Sans Mono 11
|
||||||
|
|
||||||
|
default_border pixel 1
|
||||||
|
for_window [class=".*"] border pixel 0
|
||||||
|
|
||||||
|
# This font is widely installed, provides lots of unicode glyphs, right-to-left
|
||||||
|
# text rendering and scalability on retina/hidpi displays (thanks to pango).
|
||||||
|
#font pango:DejaVu Sans Mono 8
|
||||||
|
|
||||||
|
# The combination of xss-lock, nm-applet and pactl is a popular choice, so
|
||||||
|
# they are included here as an example. Modify as you see fit.
|
||||||
|
|
||||||
|
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
|
||||||
|
# screen before suspend. Use loginctl lock-session to lock your screen.
|
||||||
|
#exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
|
||||||
|
|
||||||
|
# NetworkManager is the most popular way to manage wireless networks on Linux,
|
||||||
|
# and nm-applet is a desktop environment-independent system tray GUI for it.
|
||||||
|
#exec --no-startup-id "dunst" # in case multiple daemons are installed
|
||||||
|
|
||||||
|
#exec --no-startup-id "nm-applet"
|
||||||
|
#exec --no-startup-id "pasystray"
|
||||||
|
#exec --no-startup-id "blueman-applet"
|
||||||
|
#exec --no-startup-id "udiskie --tray --notify --automount"
|
||||||
|
|
||||||
|
# Services
|
||||||
|
exec --no-startup-id "mpd /home/lanxu/.config/mpd/mpd.conf" # Music Player Daemon
|
||||||
|
exec --no-startup-id "xscreensaver -no-splash" # Screensaver
|
||||||
|
exec --no-startup-id "./Scripts/xscreensaverstopper.sh" # Screensaver inhibitor
|
||||||
|
exec --no-startup-id "compton -b" # Compositor
|
||||||
|
exec --no-startup-id "nitrogen --restore" # Wallpaper
|
||||||
|
|
||||||
|
# Applications
|
||||||
|
exec --no-startup-id "nextcloud --background"
|
||||||
|
exec --no-startup-id "telegram-desktop"
|
||||||
|
exec --no-startup-id "cantata"
|
||||||
|
|
||||||
|
set $refresh_i3status killall -SIGUSR1 i3status
|
||||||
|
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
|
||||||
|
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
|
||||||
|
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
|
||||||
|
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
|
||||||
|
bindsym XF86AudioStop exec --no-startup-id mpc stop
|
||||||
|
bindsym XF86AudioPlay exec --no-startup-id mpc play
|
||||||
|
bindsym XF86AudioPause exec --no-startup-id mpc pause
|
||||||
|
bindsym XF86AudioNext exec --no-startup-id mpc next
|
||||||
|
bindsym XF86AudioPrev exec --no-startup-id mpc prev
|
||||||
|
|
||||||
|
# Print screen
|
||||||
|
bindsym Print exec --no-startup-id flameshot gui
|
||||||
|
# use these keys for focus, movement, and resize directions when reaching for
|
||||||
|
# the arrows is not convenient
|
||||||
|
set $up l
|
||||||
|
set $down k
|
||||||
|
set $left j
|
||||||
|
set $right semicolon
|
||||||
|
|
||||||
|
# use Mouse+Mod4 to drag floating windows to their wanted position
|
||||||
|
floating_modifier Mod4
|
||||||
|
|
||||||
|
# start a terminal
|
||||||
|
bindsym Mod4+Return exec i3-sensible-terminal
|
||||||
|
|
||||||
|
# kill focused window
|
||||||
|
bindsym Mod4+Shift+q kill
|
||||||
|
|
||||||
|
# start dmenu (a program launcher)
|
||||||
|
bindsym Mod4+d exec --no-startup-id "rofi -theme Arc -modi power:'/home/lanxu/.config/rofi/scripts/powermenu.sh',combi -combi-modi 'window,power,run,ssh' -show combi"
|
||||||
|
bindsym Mod4+F12 exec --no-startup-id "xscreensaver-command -lock"
|
||||||
|
# There also is the (new) i3-dmenu-desktop which only displays applications
|
||||||
|
# shipping a .desktop file. It is a wrapper around dmenu, so you need that
|
||||||
|
# installed.
|
||||||
|
# bindsym Mod4+d exec --no-startup-id i3-dmenu-desktop
|
||||||
|
|
||||||
|
# change focus
|
||||||
|
bindsym Mod4+$left focus left
|
||||||
|
bindsym Mod4+$down focus down
|
||||||
|
bindsym Mod4+$up focus up
|
||||||
|
bindsym Mod4+$right focus right
|
||||||
|
|
||||||
|
# alternatively, you can use the cursor keys:
|
||||||
|
bindsym Mod4+Left focus left
|
||||||
|
bindsym Mod4+Down focus down
|
||||||
|
bindsym Mod4+Up focus up
|
||||||
|
bindsym Mod4+Right focus right
|
||||||
|
|
||||||
|
# move focused window
|
||||||
|
bindsym Mod4+Shift+$left move left
|
||||||
|
bindsym Mod4+Shift+$down move down
|
||||||
|
bindsym Mod4+Shift+$up move up
|
||||||
|
bindsym Mod4+Shift+$right move right
|
||||||
|
|
||||||
|
# alternatively, you can use the cursor keys:
|
||||||
|
bindsym Mod4+Shift+Left move left
|
||||||
|
bindsym Mod4+Shift+Down move down
|
||||||
|
bindsym Mod4+Shift+Up move up
|
||||||
|
bindsym Mod4+Shift+Right move right
|
||||||
|
|
||||||
|
# split in horizontal orientation
|
||||||
|
bindsym Mod4+h split h
|
||||||
|
|
||||||
|
# split in vertical orientation
|
||||||
|
bindsym Mod4+v split v
|
||||||
|
|
||||||
|
# enter fullscreen mode for the focused container
|
||||||
|
bindsym Mod4+f fullscreen toggle
|
||||||
|
|
||||||
|
# change container layout (stacked, tabbed, toggle split)
|
||||||
|
bindsym Mod4+s layout stacking
|
||||||
|
bindsym Mod4+w layout tabbed
|
||||||
|
bindsym Mod4+e layout toggle split
|
||||||
|
|
||||||
|
# toggle tiling / floating
|
||||||
|
bindsym Mod4+Shift+space floating toggle
|
||||||
|
|
||||||
|
# change focus between tiling / floating windows
|
||||||
|
bindsym Mod4+space focus mode_toggle
|
||||||
|
|
||||||
|
# focus the parent container
|
||||||
|
bindsym Mod4+a focus parent
|
||||||
|
|
||||||
|
# focus the child container
|
||||||
|
#bindsym Mod4+d focus child
|
||||||
|
|
||||||
|
# move the currently focused window to the scratchpad
|
||||||
|
bindsym Mod4+Shift+minus move scratchpad
|
||||||
|
|
||||||
|
# Show the next scratchpad window or hide the focused scratchpad window.
|
||||||
|
# If there are multiple scratchpad windows, this command cycles through them.
|
||||||
|
bindsym Mod4+minus scratchpad show
|
||||||
|
|
||||||
|
# Define names for default workspaces for which we configure key bindings later on.
|
||||||
|
# We use variables to avoid repeating the names in multiple places.
|
||||||
|
set $ws1 "1:term"
|
||||||
|
set $ws2 "2:irc"
|
||||||
|
set $ws3 "3:net"
|
||||||
|
set $ws4 "4:gfx"
|
||||||
|
set $ws5 "5:steam"
|
||||||
|
set $ws6 "6:lutris"
|
||||||
|
set $ws7 "7"
|
||||||
|
set $ws8 "8"
|
||||||
|
set $ws9 "9"
|
||||||
|
set $ws10 "10"
|
||||||
|
|
||||||
|
# switch to workspace
|
||||||
|
bindsym Mod4+1 workspace $ws1
|
||||||
|
bindsym Mod4+2 workspace $ws2
|
||||||
|
bindsym Mod4+3 workspace $ws3
|
||||||
|
bindsym Mod4+4 workspace $ws4
|
||||||
|
bindsym Mod4+5 workspace $ws5
|
||||||
|
bindsym Mod4+6 workspace $ws6
|
||||||
|
bindsym Mod4+7 workspace $ws7
|
||||||
|
bindsym Mod4+8 workspace $ws8
|
||||||
|
bindsym Mod4+9 workspace $ws9
|
||||||
|
bindsym Mod4+0 workspace $ws10
|
||||||
|
|
||||||
|
# move focused container to workspace
|
||||||
|
bindsym Mod4+Shift+1 move container to workspace $ws1
|
||||||
|
bindsym Mod4+Shift+2 move container to workspace $ws2
|
||||||
|
bindsym Mod4+Shift+3 move container to workspace $ws3
|
||||||
|
bindsym Mod4+Shift+4 move container to workspace $ws4
|
||||||
|
bindsym Mod4+Shift+5 move container to workspace $ws5
|
||||||
|
bindsym Mod4+Shift+6 move container to workspace $ws6
|
||||||
|
bindsym Mod4+Shift+7 move container to workspace $ws7
|
||||||
|
bindsym Mod4+Shift+8 move container to workspace $ws8
|
||||||
|
bindsym Mod4+Shift+9 move container to workspace $ws9
|
||||||
|
bindsym Mod4+Shift+0 move container to workspace $ws10
|
||||||
|
|
||||||
|
# reload the configuration file
|
||||||
|
bindsym Mod4+Shift+c reload
|
||||||
|
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||||
|
bindsym Mod4+Shift+r restart
|
||||||
|
# exit i3 (logs you out of your X session)
|
||||||
|
bindsym Mod4+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
|
||||||
|
|
||||||
|
# resize window (you can also use the mouse for that)
|
||||||
|
mode "resize" {
|
||||||
|
# These bindings trigger as soon as you enter the resize mode
|
||||||
|
|
||||||
|
# Pressing left will shrink the window’s width.
|
||||||
|
# Pressing right will grow the window’s width.
|
||||||
|
# Pressing up will shrink the window’s height.
|
||||||
|
# Pressing down will grow the window’s height.
|
||||||
|
bindsym $left resize shrink width 10 px or 10 ppt
|
||||||
|
bindsym $down resize grow height 10 px or 10 ppt
|
||||||
|
bindsym $up resize shrink height 10 px or 10 ppt
|
||||||
|
bindsym $right resize grow width 10 px or 10 ppt
|
||||||
|
|
||||||
|
# same bindings, but for the arrow keys
|
||||||
|
bindsym Left resize shrink width 10 px or 10 ppt
|
||||||
|
bindsym Down resize grow height 10 px or 10 ppt
|
||||||
|
bindsym Up resize shrink height 10 px or 10 ppt
|
||||||
|
bindsym Right resize grow width 10 px or 10 ppt
|
||||||
|
|
||||||
|
# back to normal: Enter or Escape or Mod4+r
|
||||||
|
bindsym Return mode "default"
|
||||||
|
bindsym Escape mode "default"
|
||||||
|
bindsym Mod4+r mode "default"
|
||||||
|
}
|
||||||
|
|
||||||
|
bindsym Mod4+r mode "resize"
|
||||||
|
|
||||||
|
bindsym Mod4+o move workspace to output left
|
||||||
|
#######################################################################
|
||||||
|
# automatically start i3-config-wizard to offer the user to create a
|
||||||
|
# keysym-based config which used their favorite modifier (alt or windows)
|
||||||
|
#
|
||||||
|
|
||||||
|
# in ~/.config/i3/config (or $XDG_CONFIG_HOME/i3/config if set) or
|
||||||
|
# ~/.i3/config.
|
||||||
|
#
|
||||||
|
# Please remove the following exec line:
|
||||||
|
#######################################################################
|
||||||
|
#exec i3-config-wizard
|
||||||
|
for_window [class="Arandr"] floating enable
|
||||||
|
for_window [class="cantata"] floating enable, move scratchpad
|
||||||
|
for_window [class="TelegramDesktop"] floating enable, move scratchpad
|
||||||
|
for_window [class="itch"] floating enable
|
||||||
|
# for_window [class="Wine"] floating enable
|
||||||
|
for_window [class="mpv"] floating enabler, move position center
|
||||||
|
for_window [class="vlc"] floating enable
|
||||||
|
for_window [class="Sxiv"] floating enable
|
||||||
|
for_window [class="Steam"] move container to workspace $ws5
|
||||||
|
for_window [title="Steam"] move container to workspace $ws5
|
||||||
|
for_window [title="Friends List"] move container to workspace $ws5, resize set width 400px
|
||||||
|
for_window [class="Lutris"] move container to workspace $ws6
|
||||||
|
for_window [class="Gimp"] move container to workspace $ws4
|
||||||
|
for_window [class="Blender"] move container to workspace $ws4
|
||||||
|
for_window [class="firefox"] move container to workspace $ws3
|
||||||
|
|
||||||
|
mouse_warping none
|
||||||
|
|
||||||
|
# gaps
|
||||||
|
smart_borders on
|
||||||
|
smart_gaps on
|
||||||
|
gaps outer 0
|
||||||
|
gaps inner 10
|
||||||
|
|
||||||
|
## Base16 Solarized Light
|
||||||
|
# Author: Ethan Schoonover (modified by aramisgithub)
|
||||||
|
#
|
||||||
|
# You can use these variables anywhere in the i3 configuration file.
|
||||||
|
|
||||||
|
set $base00 #fdf6e3
|
||||||
|
set $base01 #eee8d5
|
||||||
|
set $base02 #93a1a1
|
||||||
|
set $base03 #839496
|
||||||
|
set $base04 #657b83
|
||||||
|
set $base05 #586e75
|
||||||
|
set $base06 #073642
|
||||||
|
set $base07 #002b36
|
||||||
|
set $base08 #dc322f
|
||||||
|
set $base09 #cb4b16
|
||||||
|
set $base0A #b58900
|
||||||
|
set $base0B #859900
|
||||||
|
set $base0C #2aa198
|
||||||
|
set $base0D #268bd2
|
||||||
|
set $base0E #6c71c4
|
||||||
|
set $base0F #d33682
|
||||||
|
|
||||||
|
# Basic bar configuration using the Base16 variables.
|
||||||
|
bar {
|
||||||
|
font pango: DejaVu Sans Mono Bold 11
|
||||||
|
mode dock
|
||||||
|
status_command py3status
|
||||||
|
position top
|
||||||
|
i3bar_command i3bar -t
|
||||||
|
tray_output none
|
||||||
|
separator_symbol ❰
|
||||||
|
|
||||||
|
colors {
|
||||||
|
background $base00
|
||||||
|
separator $base03
|
||||||
|
statusline $base04
|
||||||
|
|
||||||
|
# State Border BG Text
|
||||||
|
focused_workspace $base05 $base0D $base00
|
||||||
|
active_workspace $base05 $base03 $base00
|
||||||
|
inactive_workspace $base03 $base01 $base05
|
||||||
|
urgent_workspace $base08 $base08 $base00
|
||||||
|
binding_mode $base00 $base0A $base00
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Basic color configuration using the Base16 variables for windows and borders.
|
||||||
|
# Property Name Border BG Text Indicator Child Border
|
||||||
|
client.focused $base05 $base0D $base00 $base0D $base0C
|
||||||
|
client.focused_inactive $base01 $base01 $base05 $base03 $base01
|
||||||
|
client.unfocused $base01 $base00 $base05 $base01 $base01
|
||||||
|
client.urgent $base08 $base08 $base00 $base08 $base08
|
||||||
|
client.placeholder $base00 $base00 $base05 $base00 $base00
|
||||||
|
client.background $base07
|
47
.config/i3/i3status.conf
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
general {
|
||||||
|
# These will be used if not supplied by a module
|
||||||
|
# Solarized
|
||||||
|
color = '#073642'
|
||||||
|
color_good = '#859900'
|
||||||
|
color_degraded = '#b58900'
|
||||||
|
color_bad = '#dc322f'
|
||||||
|
}
|
||||||
|
py3status {
|
||||||
|
align = 'center'
|
||||||
|
markup = 'pango'
|
||||||
|
min_width = 50
|
||||||
|
separator = True
|
||||||
|
separator_block_width = 20
|
||||||
|
# border = '#4c7899'
|
||||||
|
border = '#073642'
|
||||||
|
border_bottom = 0
|
||||||
|
border_left = 0
|
||||||
|
border_right = 0
|
||||||
|
border_top = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
time {
|
||||||
|
format = "%Y-%m-%d %H:%M "
|
||||||
|
}
|
||||||
|
|
||||||
|
mpd_status {
|
||||||
|
format = "{name} [[[{artist} - ]{title}]|[{file}]]"
|
||||||
|
}
|
||||||
|
|
||||||
|
volume_status {
|
||||||
|
command = "pactl"
|
||||||
|
}
|
||||||
|
|
||||||
|
weather_owm {
|
||||||
|
api_key = "4e3b7bbd3da07052c4fed6d342e48707"
|
||||||
|
city = "Tampere"
|
||||||
|
unit_temperature = "C"
|
||||||
|
format = "{city} {icon} {temperature}"
|
||||||
|
}
|
||||||
|
order += "dpms"
|
||||||
|
order += "volume_status"
|
||||||
|
order += "sysdata"
|
||||||
|
order += "gpu_temp"
|
||||||
|
order += "weather_owm"
|
||||||
|
order += "mpd_status"
|
||||||
|
order += "time"
|
28
.config/i3/py3status/gpu_temp.py
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
"""
|
||||||
|
This module produces GPU temperature
|
||||||
|
|
||||||
|
"""
|
||||||
|
import sys
|
||||||
|
sys.path.insert(1, '/home/lanxu/Scripts/')
|
||||||
|
from gputemp import get_temperature
|
||||||
|
|
||||||
|
class Py3status:
|
||||||
|
format = 'GPU: {temp}℃'
|
||||||
|
thresholds = [
|
||||||
|
(0, "good"),
|
||||||
|
(45, "degraded"),
|
||||||
|
(60, "bad")
|
||||||
|
]
|
||||||
|
|
||||||
|
def gpu_temp(self):
|
||||||
|
temp = float(get_temperature())
|
||||||
|
|
||||||
|
full_text = self.py3.safe_format(self.format, { 'temp': temp})
|
||||||
|
color = self.py3.threshold_get_color(temp)
|
||||||
|
|
||||||
|
return {
|
||||||
|
'full_text': full_text,
|
||||||
|
'color': color,
|
||||||
|
'cached_until': self.py3.time_in(15)
|
||||||
|
}
|
50
.config/kitty/kitty.conf
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
font_family Fira Mono Medium
|
||||||
|
bold_font Fira Mono Bold
|
||||||
|
italic_font Fira Mono Italic
|
||||||
|
bold_italic_font auto
|
||||||
|
font_size 11.0
|
||||||
|
window_padding_width 10.0
|
||||||
|
window_padding_height 10.0
|
||||||
|
|
||||||
|
# Base16 Solarized Light - kitty color config
|
||||||
|
# Scheme by Ethan Schoonover (modified by aramisgithub)
|
||||||
|
background #fdf6e3
|
||||||
|
foreground #586e75
|
||||||
|
selection_background #586e75
|
||||||
|
selection_foreground #fdf6e3
|
||||||
|
url_color #657b83
|
||||||
|
cursor #586e75
|
||||||
|
active_border_color #839496
|
||||||
|
inactive_border_color #eee8d5
|
||||||
|
active_tab_background #fdf6e3
|
||||||
|
active_tab_foreground #586e75
|
||||||
|
inactive_tab_background #eee8d5
|
||||||
|
inactive_tab_foreground #657b83
|
||||||
|
|
||||||
|
# normal
|
||||||
|
color0 #fdf6e3
|
||||||
|
color1 #dc322f
|
||||||
|
color2 #859900
|
||||||
|
color3 #b58900
|
||||||
|
color4 #268bd2
|
||||||
|
color5 #6c71c4
|
||||||
|
color6 #2aa198
|
||||||
|
color7 #586e75
|
||||||
|
|
||||||
|
# bright
|
||||||
|
color8 #839496
|
||||||
|
color9 #dc322f
|
||||||
|
color10 #859900
|
||||||
|
color11 #b58900
|
||||||
|
color12 #268bd2
|
||||||
|
color13 #6c71c4
|
||||||
|
color14 #2aa198
|
||||||
|
color15 #586e75
|
||||||
|
|
||||||
|
# extended base16 colors
|
||||||
|
color16 #cb4b16
|
||||||
|
color17 #d33682
|
||||||
|
color18 #eee8d5
|
||||||
|
color19 #93a1a1
|
||||||
|
color20 #657b83
|
||||||
|
color21 #073642
|
32
.config/mimeapps.list
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
[Default Applications]
|
||||||
|
application/vnd.comicbook+rar=mcomix.desktop
|
||||||
|
application/vnd.comicbook+zip=mcomix.desktop
|
||||||
|
application/vnd.rar=xarchiver.desktop
|
||||||
|
application/x-cbr=mcomix.desktop
|
||||||
|
application/x-cbz=mcomix.desktop
|
||||||
|
application/zip=xarchiver.desktop
|
||||||
|
application/epub+zip=mcomix.desktop;
|
||||||
|
application/octet-stream=gvim.desktop;
|
||||||
|
application/pdf=org.pwmt.zathura-pdf-mupdf.desktop;
|
||||||
|
application/pgp-signature=gvim.desktop;
|
||||||
|
application/vnd.ms-publisher=gvim.desktop;
|
||||||
|
application/vnd.rar=mcomix.desktop;xarchiver.desktop;
|
||||||
|
application/x-alz=xarchiver.desktop;
|
||||||
|
image/gif=sxiv_browser.desktop
|
||||||
|
image/jpeg=sxiv_browser.desktop
|
||||||
|
image/png=sxiv_browser.desktop
|
||||||
|
image/svg+xml=inkscape.desktop
|
||||||
|
inode/directory=ranger_terminal.desktop
|
||||||
|
video/mp4=mpv.desktop
|
||||||
|
video/quicktime=mpv.desktop
|
||||||
|
video/x-msvideo=mpv.desktop
|
||||||
|
video/x-flv=mpv.desktop
|
||||||
|
video/x-matroska=mpv.desktop
|
||||||
|
text/plain=gvim.desktop
|
||||||
|
x-scheme-handler/itchio=io.itch.itch.desktop
|
||||||
|
x-terminal-emulator=urxvt.desktop
|
||||||
|
x-scheme-handler/discord-378483863044882443=discord-378483863044882443.desktop
|
||||||
|
x-scheme-handler/http=firefox.desktop
|
||||||
|
|
||||||
|
[Added Associations]
|
||||||
|
application/x-blender=blender.desktop;
|
9
.config/nitrogen/bg-saved.cfg
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
[xin_0]
|
||||||
|
file=/home/lanxu/.config/i3/background.png
|
||||||
|
mode=2
|
||||||
|
bgcolor=#000000
|
||||||
|
|
||||||
|
[xin_1]
|
||||||
|
file=/home/lanxu/.config/i3/background.png
|
||||||
|
mode=2
|
||||||
|
bgcolor=#000000
|
12
.config/nitrogen/nitrogen.cfg
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
[geometry]
|
||||||
|
posx=616
|
||||||
|
posy=19
|
||||||
|
sizex=638
|
||||||
|
sizey=1059
|
||||||
|
|
||||||
|
[nitrogen]
|
||||||
|
view=icon
|
||||||
|
recurse=true
|
||||||
|
sort=alpha
|
||||||
|
icon_caps=false
|
||||||
|
dirs=
|
|
@ -1,7 +1,8 @@
|
||||||
# ===================================================================
|
# ===================================================================
|
||||||
# This file contains the default startup commands for ranger.
|
# This file contains the default startup commands for ranger.
|
||||||
# To change them, it is recommended to create the file
|
# To change them, it is recommended to create either /etc/ranger/rc.conf
|
||||||
# ~/.config/ranger/rc.conf and add your custom commands there.
|
# (system-wide) or ~/.config/ranger/rc.conf (per user) and add your custom
|
||||||
|
# commands there.
|
||||||
#
|
#
|
||||||
# If you copy this whole file there, you may want to set the environment
|
# If you copy this whole file there, you may want to set the environment
|
||||||
# variable RANGER_LOAD_DEFAULT_RC to FALSE to avoid loading it twice.
|
# variable RANGER_LOAD_DEFAULT_RC to FALSE to avoid loading it twice.
|
||||||
|
@ -67,7 +68,7 @@ set vcs_backend_bzr disabled
|
||||||
set vcs_backend_svn disabled
|
set vcs_backend_svn disabled
|
||||||
|
|
||||||
# Use one of the supported image preview protocols
|
# Use one of the supported image preview protocols
|
||||||
set preview_images true
|
set preview_images false
|
||||||
|
|
||||||
# Set the preview image method. Supported methods:
|
# Set the preview image method. Supported methods:
|
||||||
#
|
#
|
||||||
|
@ -85,6 +86,10 @@ set preview_images true
|
||||||
# width of 8 and height of 11 are used. To use other values, set the options
|
# width of 8 and height of 11 are used. To use other values, set the options
|
||||||
# iterm2_font_width and iterm2_font_height to the desired values.
|
# iterm2_font_width and iterm2_font_height to the desired values.
|
||||||
#
|
#
|
||||||
|
# * terminology:
|
||||||
|
# Previews images in full color in the terminology terminal emulator.
|
||||||
|
# Supports a wide variety of formats, even vector graphics like svg.
|
||||||
|
#
|
||||||
# * urxvt:
|
# * urxvt:
|
||||||
# Preview images in full color using urxvt image backgrounds. This
|
# Preview images in full color using urxvt image backgrounds. This
|
||||||
# requires using urxvt compiled with pixbuf support.
|
# requires using urxvt compiled with pixbuf support.
|
||||||
|
@ -92,7 +97,20 @@ set preview_images true
|
||||||
# * urxvt-full:
|
# * urxvt-full:
|
||||||
# The same as urxvt but utilizing not only the preview pane but the
|
# The same as urxvt but utilizing not only the preview pane but the
|
||||||
# whole terminal window.
|
# whole terminal window.
|
||||||
set preview_images_method w3m
|
#
|
||||||
|
# * kitty:
|
||||||
|
# Preview images in full color using kitty image protocol.
|
||||||
|
# Requires python PIL or pillow library.
|
||||||
|
# If ranger does not share the local filesystem with kitty
|
||||||
|
# the transfer method is changed to encode the whole image;
|
||||||
|
# while slower, this allows remote previews,
|
||||||
|
# for example during an ssh session.
|
||||||
|
# Tmux is unsupported.
|
||||||
|
set preview_images_method kitty
|
||||||
|
|
||||||
|
# Delay in seconds before displaying an image with the w3m method.
|
||||||
|
# Increase it in case of experiencing display corruption.
|
||||||
|
set w3m_delay 0.02
|
||||||
|
|
||||||
# Default iTerm2 font size (see: preview_images_method: iterm2)
|
# Default iTerm2 font size (see: preview_images_method: iterm2)
|
||||||
set iterm2_font_width 8
|
set iterm2_font_width 8
|
||||||
|
@ -101,6 +119,10 @@ set iterm2_font_height 11
|
||||||
# Use a unicode "..." character to mark cut-off filenames?
|
# Use a unicode "..." character to mark cut-off filenames?
|
||||||
set unicode_ellipsis false
|
set unicode_ellipsis false
|
||||||
|
|
||||||
|
# BIDI support - try to properly display file names in RTL languages (Hebrew, Arabic).
|
||||||
|
# Requires the python-bidi pip package
|
||||||
|
set bidi_support false
|
||||||
|
|
||||||
# Show dotfiles in the bookmark preview box?
|
# Show dotfiles in the bookmark preview box?
|
||||||
set show_hidden_bookmarks true
|
set show_hidden_bookmarks true
|
||||||
|
|
||||||
|
@ -124,8 +146,11 @@ set status_bar_on_top false
|
||||||
# currently running tasks which support progress bars?
|
# currently running tasks which support progress bars?
|
||||||
set draw_progress_bar_in_status_bar true
|
set draw_progress_bar_in_status_bar true
|
||||||
|
|
||||||
# Draw borders around columns?
|
# Draw borders around columns? (separators, outline, both, or none)
|
||||||
set draw_borders false
|
# Separators are vertical lines between columns.
|
||||||
|
# Outline draws a box around all the columns.
|
||||||
|
# Both combines the two.
|
||||||
|
set draw_borders none
|
||||||
|
|
||||||
# Display the directory name in tabs?
|
# Display the directory name in tabs?
|
||||||
set dirname_in_tabs false
|
set dirname_in_tabs false
|
||||||
|
@ -137,6 +162,9 @@ set mouse_enabled true
|
||||||
set display_size_in_main_column true
|
set display_size_in_main_column true
|
||||||
set display_size_in_status_bar true
|
set display_size_in_status_bar true
|
||||||
|
|
||||||
|
# Display the free disk space in the status bar?
|
||||||
|
set display_free_space_in_status_bar true
|
||||||
|
|
||||||
# Display files tags in all columns or only in main column?
|
# Display files tags in all columns or only in main column?
|
||||||
set display_tags_in_all_columns true
|
set display_tags_in_all_columns true
|
||||||
|
|
||||||
|
@ -144,7 +172,7 @@ set display_tags_in_all_columns true
|
||||||
set update_title false
|
set update_title false
|
||||||
|
|
||||||
# Set the title to "ranger" in the tmux program?
|
# Set the title to "ranger" in the tmux program?
|
||||||
set update_tmux_title false
|
set update_tmux_title true
|
||||||
|
|
||||||
# Shorten the title if it gets long? The number defines how many
|
# Shorten the title if it gets long? The number defines how many
|
||||||
# directories are displayed at once, 0 turns off this feature.
|
# directories are displayed at once, 0 turns off this feature.
|
||||||
|
@ -216,6 +244,10 @@ set cd_tab_fuzzy false
|
||||||
# disable this feature.
|
# disable this feature.
|
||||||
set preview_max_size 0
|
set preview_max_size 0
|
||||||
|
|
||||||
|
# The key hint lists up to this size have their sublists expanded.
|
||||||
|
# Otherwise the submaps are replaced with "...".
|
||||||
|
set hint_collapse_threshold 10
|
||||||
|
|
||||||
# Add the highlighted file to the path in the titlebar
|
# Add the highlighted file to the path in the titlebar
|
||||||
set show_selection_in_titlebar true
|
set show_selection_in_titlebar true
|
||||||
|
|
||||||
|
@ -232,9 +264,14 @@ set metadata_deep_search false
|
||||||
# Clear all existing filters when leaving a directory
|
# Clear all existing filters when leaving a directory
|
||||||
set clear_filters_on_dir_change false
|
set clear_filters_on_dir_change false
|
||||||
|
|
||||||
# Disable displaying line numbers in main column
|
# Disable displaying line numbers in main column.
|
||||||
|
# Possible values: false, absolute, relative.
|
||||||
set line_numbers false
|
set line_numbers false
|
||||||
|
|
||||||
|
# When line_numbers=relative show the absolute line number in the
|
||||||
|
# current line.
|
||||||
|
set relative_current_zero false
|
||||||
|
|
||||||
# Start line numbers from 1 instead of 0
|
# Start line numbers from 1 instead of 0
|
||||||
set one_indexed false
|
set one_indexed false
|
||||||
|
|
||||||
|
@ -249,6 +286,10 @@ set wrap_scroll false
|
||||||
# directories, files and symlinks respectively.
|
# directories, files and symlinks respectively.
|
||||||
set global_inode_type_filter
|
set global_inode_type_filter
|
||||||
|
|
||||||
|
# This setting allows to freeze the list of files to save I/O bandwidth. It
|
||||||
|
# should be 'false' during start-up, but you can toggle it by pressing F.
|
||||||
|
set freeze_files false
|
||||||
|
|
||||||
# ===================================================================
|
# ===================================================================
|
||||||
# == Local Options
|
# == Local Options
|
||||||
# ===================================================================
|
# ===================================================================
|
||||||
|
@ -270,8 +311,8 @@ alias qall quitall
|
||||||
alias qall! quitall!
|
alias qall! quitall!
|
||||||
alias setl setlocal
|
alias setl setlocal
|
||||||
|
|
||||||
alias filter scout -prt
|
alias filter scout -prts
|
||||||
alias find scout -aeit
|
alias find scout -aets
|
||||||
alias mark scout -mr
|
alias mark scout -mr
|
||||||
alias unmark scout -Mr
|
alias unmark scout -Mr
|
||||||
alias search scout -rs
|
alias search scout -rs
|
||||||
|
@ -311,6 +352,8 @@ map r chain draw_possible_programs; console open_with%%space
|
||||||
map f console find%space
|
map f console find%space
|
||||||
map cd console cd%space
|
map cd console cd%space
|
||||||
|
|
||||||
|
map <C-p> chain console; eval fm.ui.console.history_move(-1)
|
||||||
|
|
||||||
# Change the line mode
|
# Change the line mode
|
||||||
map Mf linemode filename
|
map Mf linemode filename
|
||||||
map Mi linemode fileinfo
|
map Mi linemode fileinfo
|
||||||
|
@ -374,6 +417,7 @@ map L history_go 1
|
||||||
map ] move_parent 1
|
map ] move_parent 1
|
||||||
map [ move_parent -1
|
map [ move_parent -1
|
||||||
map } traverse
|
map } traverse
|
||||||
|
map { traverse_backwards
|
||||||
map ) jump_non
|
map ) jump_non
|
||||||
|
|
||||||
map gh cd ~
|
map gh cd ~
|
||||||
|
@ -385,9 +429,10 @@ map gL cd -r %f
|
||||||
map go cd /opt
|
map go cd /opt
|
||||||
map gv cd /var
|
map gv cd /var
|
||||||
map gm cd /media
|
map gm cd /media
|
||||||
|
map gi eval fm.cd('/run/media/' + os.getenv('USER'))
|
||||||
map gM cd /mnt
|
map gM cd /mnt
|
||||||
map gs cd /srv
|
map gs cd /srv
|
||||||
map gt cd /tmp
|
map gp cd /tmp
|
||||||
map gr cd /
|
map gr cd /
|
||||||
map gR eval fm.cd(ranger.RANGERDIR)
|
map gR eval fm.cd(ranger.RANGERDIR)
|
||||||
map g/ cd /
|
map g/ cd /
|
||||||
|
@ -400,6 +445,7 @@ map dU shell -p du --max-depth=1 -h --apparent-size | sort -rh
|
||||||
map yp yank path
|
map yp yank path
|
||||||
map yd yank dir
|
map yd yank dir
|
||||||
map yn yank name
|
map yn yank name
|
||||||
|
map y. yank name_without_extension
|
||||||
|
|
||||||
# Filesystem Operations
|
# Filesystem Operations
|
||||||
map = chmod
|
map = chmod
|
||||||
|
@ -474,6 +520,8 @@ map <a-6> tab_open 6
|
||||||
map <a-7> tab_open 7
|
map <a-7> tab_open 7
|
||||||
map <a-8> tab_open 8
|
map <a-8> tab_open 8
|
||||||
map <a-9> tab_open 9
|
map <a-9> tab_open 9
|
||||||
|
map <a-r> tab_shift 1
|
||||||
|
map <a-l> tab_shift -1
|
||||||
|
|
||||||
# Sorting
|
# Sorting
|
||||||
map or set sort_reverse!
|
map or set sort_reverse!
|
||||||
|
@ -503,6 +551,8 @@ map zc set collapse_preview!
|
||||||
map zd set sort_directories_first!
|
map zd set sort_directories_first!
|
||||||
map zh set show_hidden!
|
map zh set show_hidden!
|
||||||
map <C-h> set show_hidden!
|
map <C-h> set show_hidden!
|
||||||
|
copymap <C-h> <backspace>
|
||||||
|
copymap <backspace> <backspace2>
|
||||||
map zI set flushinput!
|
map zI set flushinput!
|
||||||
map zi set preview_images!
|
map zi set preview_images!
|
||||||
map zm set mouse_enabled!
|
map zm set mouse_enabled!
|
||||||
|
@ -514,6 +564,21 @@ map zv set use_preview_script!
|
||||||
map zf console filter%space
|
map zf console filter%space
|
||||||
copymap zf zz
|
copymap zf zz
|
||||||
|
|
||||||
|
# Filter stack
|
||||||
|
map .n console filter_stack add name%space
|
||||||
|
map .m console filter_stack add mime%space
|
||||||
|
map .d filter_stack add type d
|
||||||
|
map .f filter_stack add type f
|
||||||
|
map .l filter_stack add type l
|
||||||
|
map .| filter_stack add or
|
||||||
|
map .& filter_stack add and
|
||||||
|
map .! filter_stack add not
|
||||||
|
map .r console filter_stack rotate
|
||||||
|
map .c filter_stack clear
|
||||||
|
map .* filter_stack decompose
|
||||||
|
map .p filter_stack pop
|
||||||
|
map .. filter_stack show
|
||||||
|
|
||||||
# Bookmarks
|
# Bookmarks
|
||||||
map `<any> enter_bookmark %any
|
map `<any> enter_bookmark %any
|
||||||
map '<any> enter_bookmark %any
|
map '<any> enter_bookmark %any
|
||||||
|
@ -558,8 +623,11 @@ cmap <left> eval fm.ui.console.move(left=1)
|
||||||
cmap <right> eval fm.ui.console.move(right=1)
|
cmap <right> eval fm.ui.console.move(right=1)
|
||||||
cmap <home> eval fm.ui.console.move(right=0, absolute=True)
|
cmap <home> eval fm.ui.console.move(right=0, absolute=True)
|
||||||
cmap <end> eval fm.ui.console.move(right=-1, absolute=True)
|
cmap <end> eval fm.ui.console.move(right=-1, absolute=True)
|
||||||
cmap <a-left> eval fm.ui.console.move_word(left=1)
|
cmap <a-b> eval fm.ui.console.move_word(left=1)
|
||||||
cmap <a-right> eval fm.ui.console.move_word(right=1)
|
cmap <a-f> eval fm.ui.console.move_word(right=1)
|
||||||
|
|
||||||
|
copycmap <a-b> <a-left>
|
||||||
|
copycmap <a-f> <a-right>
|
||||||
|
|
||||||
# Line Editing
|
# Line Editing
|
||||||
cmap <backspace> eval fm.ui.console.delete(-1)
|
cmap <backspace> eval fm.ui.console.delete(-1)
|
||||||
|
@ -571,6 +639,7 @@ cmap <C-u> eval fm.ui.console.delete_rest(-1)
|
||||||
cmap <C-y> eval fm.ui.console.paste()
|
cmap <C-y> eval fm.ui.console.paste()
|
||||||
|
|
||||||
# And of course the emacs way
|
# And of course the emacs way
|
||||||
|
copycmap <ESC> <C-g>
|
||||||
copycmap <up> <C-p>
|
copycmap <up> <C-p>
|
||||||
copycmap <down> <C-n>
|
copycmap <down> <C-n>
|
||||||
copycmap <left> <C-b>
|
copycmap <left> <C-b>
|
||||||
|
|
|
@ -152,7 +152,7 @@ ext pdf, has atril, X, flag f = atril -- "$@"
|
||||||
ext pdf, has okular, X, flag f = okular -- "$@"
|
ext pdf, has okular, X, flag f = okular -- "$@"
|
||||||
ext pdf, has epdfview, X, flag f = epdfview -- "$@"
|
ext pdf, has epdfview, X, flag f = epdfview -- "$@"
|
||||||
ext pdf, has qpdfview, X, flag f = qpdfview "$@"
|
ext pdf, has qpdfview, X, flag f = qpdfview "$@"
|
||||||
ext pdf, has open, X, flat f = open "$@"
|
ext pdf, has open, X, flag f = open "$@"
|
||||||
|
|
||||||
ext docx?, has catdoc, terminal = catdoc -- "$@" | "$PAGER"
|
ext docx?, has catdoc, terminal = catdoc -- "$@" | "$PAGER"
|
||||||
|
|
||||||
|
@ -165,16 +165,18 @@ ext pptx?|od[dfgpst]|docx?|sxc|xlsx?|xlt|xlw|gnm|gnumeric, has ooffice, X, f
|
||||||
ext djvu, has zathura,X, flag f = zathura -- "$@"
|
ext djvu, has zathura,X, flag f = zathura -- "$@"
|
||||||
ext djvu, has evince, X, flag f = evince -- "$@"
|
ext djvu, has evince, X, flag f = evince -- "$@"
|
||||||
ext djvu, has atril, X, flag f = atril -- "$@"
|
ext djvu, has atril, X, flag f = atril -- "$@"
|
||||||
|
ext djvu, has djview, X, flag f = djview -- "$@"
|
||||||
|
|
||||||
ext epub, has ebook-viewer, X, flag f = ebook-viewer -- "$@"
|
ext epub, has ebook-viewer, X, flag f = ebook-viewer -- "$@"
|
||||||
ext mobi, has ebook-viewer, X, flag f = ebook-viewer -- "$@"
|
ext mobi, has ebook-viewer, X, flag f = ebook-viewer -- "$@"
|
||||||
|
|
||||||
#-------------------------------------------
|
#-------------------------------------------
|
||||||
# Image Viewing:
|
# Images
|
||||||
#-------------------------------------------
|
#-------------------------------------------
|
||||||
mime ^image/svg, has inkscape, X, flag f = inkscape -- "$@"
|
mime ^image/svg, has inkscape, X, flag f = inkscape -- "$@"
|
||||||
mime ^image/svg, has display, X, flag f = display -- "$@"
|
mime ^image/svg, has display, X, flag f = display -- "$@"
|
||||||
|
|
||||||
|
mime ^image, has imv, X, flag f = imv -- "$@"
|
||||||
mime ^image, has pqiv, X, flag f = pqiv -- "$@"
|
mime ^image, has pqiv, X, flag f = pqiv -- "$@"
|
||||||
mime ^image, has sxiv, X, flag f = sxiv -- "$@"
|
mime ^image, has sxiv, X, flag f = sxiv -- "$@"
|
||||||
mime ^image, has feh, X, flag f = feh -- "$@"
|
mime ^image, has feh, X, flag f = feh -- "$@"
|
||||||
|
@ -183,6 +185,8 @@ mime ^image, has ristretto, X, flag f = ristretto "$@"
|
||||||
mime ^image, has eog, X, flag f = eog -- "$@"
|
mime ^image, has eog, X, flag f = eog -- "$@"
|
||||||
mime ^image, has eom, X, flag f = eom -- "$@"
|
mime ^image, has eom, X, flag f = eom -- "$@"
|
||||||
mime ^image, has nomacs, X, flag f = nomacs -- "$@"
|
mime ^image, has nomacs, X, flag f = nomacs -- "$@"
|
||||||
|
mime ^image, has geeqie, X, flag f = geeqie -- "$@"
|
||||||
|
mime ^image, has gwenview, X, flag f = gwenview -- "$@"
|
||||||
mime ^image, has gimp, X, flag f = gimp -- "$@"
|
mime ^image, has gimp, X, flag f = gimp -- "$@"
|
||||||
ext xcf, X, flag f = gimp -- "$@"
|
ext xcf, X, flag f = gimp -- "$@"
|
||||||
|
|
||||||
|
@ -209,6 +213,39 @@ ext ace, has unace = for file in "$@"; do unace e "$file"; done
|
||||||
ext rar, has unrar = unrar l "$1" | less
|
ext rar, has unrar = unrar l "$1" | less
|
||||||
ext rar, has unrar = for file in "$@"; do unrar x "$file"; done
|
ext rar, has unrar = for file in "$@"; do unrar x "$file"; done
|
||||||
|
|
||||||
|
#-------------------------------------------
|
||||||
|
# Fonts
|
||||||
|
#-------------------------------------------
|
||||||
|
mime ^font, has fontforge, X, flag f = fontforge "$@"
|
||||||
|
|
||||||
|
#-------------------------------------------
|
||||||
|
# Flag t fallback terminals
|
||||||
|
#-------------------------------------------
|
||||||
|
# Rarely installed terminal emulators get higher priority; It is assumed that
|
||||||
|
# if you install a rare terminal emulator, you probably use it.
|
||||||
|
# gnome-terminal/konsole/xterm on the other hand are often installed as part of
|
||||||
|
# a desktop environment or as fallback terminal emulators.
|
||||||
|
mime ^ranger/x-terminal-emulator, has terminology = terminology -e "$@"
|
||||||
|
mime ^ranger/x-terminal-emulator, has kitty = kitty -- "$@"
|
||||||
|
mime ^ranger/x-terminal-emulator, has alacritty = alacritty -e "$@"
|
||||||
|
mime ^ranger/x-terminal-emulator, has sakura = sakura -e "$@"
|
||||||
|
mime ^ranger/x-terminal-emulator, has lilyterm = lilyterm -e "$@"
|
||||||
|
#mime ^ranger/x-terminal-emulator, has cool-retro-term = cool-retro-term -e "$@"
|
||||||
|
mime ^ranger/x-terminal-emulator, has termite = termite -x '"$@"'
|
||||||
|
#mime ^ranger/x-terminal-emulator, has yakuake = yakuake -e "$@"
|
||||||
|
mime ^ranger/x-terminal-emulator, has guake = guake -ne "$@"
|
||||||
|
mime ^ranger/x-terminal-emulator, has tilda = tilda -c "$@"
|
||||||
|
mime ^ranger/x-terminal-emulator, has st = st -e "$@"
|
||||||
|
mime ^ranger/x-terminal-emulator, has terminator = terminator -x "$@"
|
||||||
|
mime ^ranger/x-terminal-emulator, has urxvt = urxvt -e "$@"
|
||||||
|
mime ^ranger/x-terminal-emulator, has pantheon-terminal = pantheon-terminal -e "$@"
|
||||||
|
mime ^ranger/x-terminal-emulator, has lxterminal = lxterminal -e "$@"
|
||||||
|
mime ^ranger/x-terminal-emulator, has mate-terminal = mate-terminal -x "$@"
|
||||||
|
mime ^ranger/x-terminal-emulator, has xfce4-terminal = xfce4-terminal -x "$@"
|
||||||
|
mime ^ranger/x-terminal-emulator, has konsole = konsole -e "$@"
|
||||||
|
mime ^ranger/x-terminal-emulator, has gnome-terminal = gnome-terminal -- "$@"
|
||||||
|
mime ^ranger/x-terminal-emulator, has xterm = xterm -e "$@"
|
||||||
|
|
||||||
#-------------------------------------------
|
#-------------------------------------------
|
||||||
# Misc
|
# Misc
|
||||||
#-------------------------------------------
|
#-------------------------------------------
|
||||||
|
|
|
@ -31,13 +31,14 @@ IMAGE_CACHE_PATH="${4}" # Full path that should be used to cache image preview
|
||||||
PV_IMAGE_ENABLED="${5}" # 'True' if image previews are enabled, 'False' otherwise.
|
PV_IMAGE_ENABLED="${5}" # 'True' if image previews are enabled, 'False' otherwise.
|
||||||
|
|
||||||
FILE_EXTENSION="${FILE_PATH##*.}"
|
FILE_EXTENSION="${FILE_PATH##*.}"
|
||||||
FILE_EXTENSION_LOWER="${FILE_EXTENSION,,}"
|
FILE_EXTENSION_LOWER="$(printf "%s" "${FILE_EXTENSION}" | tr '[:upper:]' '[:lower:]')"
|
||||||
|
|
||||||
# Settings
|
# Settings
|
||||||
HIGHLIGHT_SIZE_MAX=262143 # 256KiB
|
HIGHLIGHT_SIZE_MAX=262143 # 256KiB
|
||||||
HIGHLIGHT_TABWIDTH=8
|
HIGHLIGHT_TABWIDTH=${HIGHLIGHT_TABWIDTH:-8}
|
||||||
HIGHLIGHT_STYLE='pablo'
|
HIGHLIGHT_STYLE=${HIGHLIGHT_STYLE:-pablo}
|
||||||
PYGMENTIZE_STYLE='autumn'
|
HIGHLIGHT_OPTIONS="--replace-tabs=${HIGHLIGHT_TABWIDTH} --style=${HIGHLIGHT_STYLE} ${HIGHLIGHT_OPTIONS:-}"
|
||||||
|
PYGMENTIZE_STYLE=${PYGMENTIZE_STYLE:-autumn}
|
||||||
|
|
||||||
|
|
||||||
handle_extension() {
|
handle_extension() {
|
||||||
|
@ -60,9 +61,10 @@ handle_extension() {
|
||||||
# PDF
|
# PDF
|
||||||
#pdf)
|
#pdf)
|
||||||
# # Preview as text conversion
|
# # Preview as text conversion
|
||||||
# pdftotext -l 10 -nopgbrk -q -- "${FILE_PATH}" - && exit 5
|
# pdftotext -l 10 -nopgbrk -q -- "${FILE_PATH}" - | fmt -w ${PV_WIDTH} && exit 5
|
||||||
|
# mutool draw -F txt -i -- "${FILE_PATH}" 1-10 | fmt -w ${PV_WIDTH} && exit 5
|
||||||
# exiftool "${FILE_PATH}" && exit 5
|
# exiftool "${FILE_PATH}" && exit 5
|
||||||
# exit 1;;
|
# exit 1;;
|
||||||
|
|
||||||
# BitTorrent
|
# BitTorrent
|
||||||
torrent)
|
torrent)
|
||||||
|
@ -82,12 +84,22 @@ handle_extension() {
|
||||||
lynx -dump -- "${FILE_PATH}" && exit 5
|
lynx -dump -- "${FILE_PATH}" && exit 5
|
||||||
elinks -dump "${FILE_PATH}" && exit 5
|
elinks -dump "${FILE_PATH}" && exit 5
|
||||||
;; # Continue with next handler on failure
|
;; # Continue with next handler on failure
|
||||||
|
|
||||||
|
# JSON
|
||||||
|
json)
|
||||||
|
jq --color-output . "${FILE_PATH}" && exit 5
|
||||||
|
python -m json.tool -- "${FILE_PATH}" && exit 5
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
handle_image() {
|
handle_image() {
|
||||||
|
# Size of the preview if there are multiple options or it has to be rendered
|
||||||
|
# from vector graphics. If the conversion program allows specifying only one
|
||||||
|
# dimension while keeping the aspect ratio, the width will be used.
|
||||||
|
local DEFAULT_SIZE="1920x1080"
|
||||||
local mimetype="${1}"
|
local mimetype="${1}"
|
||||||
|
|
||||||
case "${FILE_EXTENSION_LOWER}" in
|
case "${FILE_EXTENSION_LOWER}" in
|
||||||
# Comic book previews
|
# Comic book previews
|
||||||
cbz|cbr|epub)
|
cbz|cbr|epub)
|
||||||
|
@ -97,10 +109,16 @@ handle_image() {
|
||||||
|
|
||||||
case "${mimetype}" in
|
case "${mimetype}" in
|
||||||
# SVG
|
# SVG
|
||||||
image/svg+xml)
|
image/svg+xml|image/svg)
|
||||||
convert "${FILE_PATH}" "${IMAGE_CACHE_PATH}" && exit 6
|
convert -- "${FILE_PATH}" "${IMAGE_CACHE_PATH}" && exit 6
|
||||||
exit 1;;
|
exit 1;;
|
||||||
|
|
||||||
|
# DjVu
|
||||||
|
# image/vnd.djvu)
|
||||||
|
# ddjvu -format=tiff -quality=90 -page=1 -size="${DEFAULT_SIZE}" \
|
||||||
|
# - "${IMAGE_CACHE_PATH}" < "${FILE_PATH}" \
|
||||||
|
# && exit 6 || exit 1;;
|
||||||
|
|
||||||
# Image
|
# Image
|
||||||
image/*)
|
image/*)
|
||||||
local orientation
|
local orientation
|
||||||
|
@ -121,16 +139,84 @@ handle_image() {
|
||||||
# Thumbnail
|
# Thumbnail
|
||||||
ffmpegthumbnailer -i "${FILE_PATH}" -o "${IMAGE_CACHE_PATH}" -s 0 && exit 6
|
ffmpegthumbnailer -i "${FILE_PATH}" -o "${IMAGE_CACHE_PATH}" -s 0 && exit 6
|
||||||
exit 1;;
|
exit 1;;
|
||||||
|
|
||||||
# PDF
|
# PDF
|
||||||
application/pdf)
|
application/pdf)
|
||||||
pdftoppm -f 1 -l 1 \
|
pdftoppm -f 1 -l 1 \
|
||||||
-scale-to-x 1920 \
|
-scale-to-x "${DEFAULT_SIZE%x*}" \
|
||||||
-scale-to-y -1 \
|
-scale-to-y -1 \
|
||||||
-singlefile \
|
-singlefile \
|
||||||
-jpeg -tiffcompression jpeg \
|
-jpeg -tiffcompression jpeg \
|
||||||
-- "${FILE_PATH}" "${IMAGE_CACHE_PATH%.*}" \
|
-- "${FILE_PATH}" "${IMAGE_CACHE_PATH%.*}" \
|
||||||
&& exit 6 || exit 1;;
|
&& exit 6 || exit 1;;
|
||||||
|
# ePub, MOBI, FB2 (using Calibre)
|
||||||
|
# application/epub+zip|application/x-mobipocket-ebook|application/x-fictionbook+xml)
|
||||||
|
# ebook-meta --get-cover="${IMAGE_CACHE_PATH}" -- "${FILE_PATH}" > /dev/null \
|
||||||
|
# && exit 6 || exit 1;;
|
||||||
|
|
||||||
|
# ePub (using <https://github.com/marianosimone/epub-thumbnailer>)
|
||||||
|
# application/epub+zip)
|
||||||
|
# epub-thumbnailer \
|
||||||
|
# "${FILE_PATH}" "${IMAGE_CACHE_PATH}" "${DEFAULT_SIZE%x*}" \
|
||||||
|
# && exit 6 || exit 1;;
|
||||||
|
|
||||||
|
# Font
|
||||||
|
application/font*|application/*opentype)
|
||||||
|
preview_png="/tmp/$(basename "${IMAGE_CACHE_PATH%.*}").png"
|
||||||
|
if fontimage -o "${preview_png}" \
|
||||||
|
--pixelsize "120" \
|
||||||
|
--fontname \
|
||||||
|
--pixelsize "80" \
|
||||||
|
--text " ABCDEFGHIJKLMNOPQRSTUVWXYZ " \
|
||||||
|
--text " abcdefghijklmnopqrstuvwxyz " \
|
||||||
|
--text " 0123456789.:,;(*!?') ff fl fi ffi ffl " \
|
||||||
|
--text " The quick brown fox jumps over the lazy dog. " \
|
||||||
|
"${FILE_PATH}";
|
||||||
|
then
|
||||||
|
convert -- "${preview_png}" "${IMAGE_CACHE_PATH}" \
|
||||||
|
&& rm "${preview_png}" \
|
||||||
|
&& exit 6
|
||||||
|
else
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
# Preview archives using the first image inside.
|
||||||
|
# (Very useful for comic book collections for example.)
|
||||||
|
# application/zip|application/x-rar|application/x-7z-compressed|\
|
||||||
|
# application/x-xz|application/x-bzip2|application/x-gzip|application/x-tar)
|
||||||
|
# local fn=""; local fe=""
|
||||||
|
# local zip=""; local rar=""; local tar=""; local bsd=""
|
||||||
|
# case "${mimetype}" in
|
||||||
|
# application/zip) zip=1 ;;
|
||||||
|
# application/x-rar) rar=1 ;;
|
||||||
|
# application/x-7z-compressed) ;;
|
||||||
|
# *) tar=1 ;;
|
||||||
|
# esac
|
||||||
|
# { [ "$tar" ] && fn=$(tar --list --file "${FILE_PATH}"); } || \
|
||||||
|
# { fn=$(bsdtar --list --file "${FILE_PATH}") && bsd=1 && tar=""; } || \
|
||||||
|
# { [ "$rar" ] && fn=$(unrar lb -p- -- "${FILE_PATH}"); } || \
|
||||||
|
# { [ "$zip" ] && fn=$(zipinfo -1 -- "${FILE_PATH}"); } || return
|
||||||
|
#
|
||||||
|
# fn=$(echo "$fn" | python -c "import sys; import mimetypes as m; \
|
||||||
|
# [ print(l, end='') for l in sys.stdin if \
|
||||||
|
# (m.guess_type(l[:-1])[0] or '').startswith('image/') ]" |\
|
||||||
|
# sort -V | head -n 1)
|
||||||
|
# [ "$fn" = "" ] && return
|
||||||
|
# [ "$bsd" ] && fn=$(printf '%b' "$fn")
|
||||||
|
#
|
||||||
|
# [ "$tar" ] && tar --extract --to-stdout \
|
||||||
|
# --file "${FILE_PATH}" -- "$fn" > "${IMAGE_CACHE_PATH}" && exit 6
|
||||||
|
# fe=$(echo -n "$fn" | sed 's/[][*?\]/\\\0/g')
|
||||||
|
# [ "$bsd" ] && bsdtar --extract --to-stdout \
|
||||||
|
# --file "${FILE_PATH}" -- "$fe" > "${IMAGE_CACHE_PATH}" && exit 6
|
||||||
|
# [ "$bsd" ] || [ "$tar" ] && rm -- "${IMAGE_CACHE_PATH}"
|
||||||
|
# [ "$rar" ] && unrar p -p- -inul -- "${FILE_PATH}" "$fn" > \
|
||||||
|
# "${IMAGE_CACHE_PATH}" && exit 6
|
||||||
|
# [ "$zip" ] && unzip -pP "" -- "${FILE_PATH}" "$fe" > \
|
||||||
|
# "${IMAGE_CACHE_PATH}" && exit 6
|
||||||
|
# [ "$rar" ] || [ "$zip" ] && rm -- "${IMAGE_CACHE_PATH}"
|
||||||
|
# ;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -150,16 +236,25 @@ handle_mime() {
|
||||||
local pygmentize_format='terminal'
|
local pygmentize_format='terminal'
|
||||||
local highlight_format='ansi'
|
local highlight_format='ansi'
|
||||||
fi
|
fi
|
||||||
highlight --replace-tabs="${HIGHLIGHT_TABWIDTH}" --out-format="${highlight_format}" \
|
env HIGHLIGHT_OPTIONS="${HIGHLIGHT_OPTIONS}" highlight \
|
||||||
--style="${HIGHLIGHT_STYLE}" --force -- "${FILE_PATH}" && exit 5
|
--out-format="${highlight_format}" \
|
||||||
# pygmentize -f "${pygmentize_format}" -O "style=${PYGMENTIZE_STYLE}" -- "${FILE_PATH}" && exit 5
|
--force -- "${FILE_PATH}" && exit 5
|
||||||
|
pygmentize -f "${pygmentize_format}" -O "style=${PYGMENTIZE_STYLE}"\
|
||||||
|
-- "${FILE_PATH}" && exit 5
|
||||||
exit 2;;
|
exit 2;;
|
||||||
|
|
||||||
|
# DjVu
|
||||||
|
image/vnd.djvu)
|
||||||
|
# Preview as text conversion (requires djvulibre)
|
||||||
|
djvutxt "${FILE_PATH}" | fmt -w ${PV_WIDTH} && exit 5
|
||||||
|
exiftool "${FILE_PATH}" && exit 5
|
||||||
|
exit 1;;
|
||||||
|
|
||||||
# Image
|
# Image
|
||||||
image/*)
|
image/*)
|
||||||
# Preview as text conversion
|
# Preview as text conversion
|
||||||
# img2txt --gamma=0.6 --width="${PV_WIDTH}" -- "${FILE_PATH}" && exit 4
|
img2txt --gamma=0.6 --width="${PV_WIDTH}" -- "${FILE_PATH}" && exit 4
|
||||||
exiftool "${FILE_PATH}" && exit 5
|
#exiftool "${FILE_PATH}" && exit 5
|
||||||
exit 1;;
|
exit 1;;
|
||||||
|
|
||||||
# Video and audio
|
# Video and audio
|
||||||
|
|
4
.config/rofi/config
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
rofi.lines: 20
|
||||||
|
rofi.show-icons: true
|
||||||
|
rofi.width: 60
|
||||||
|
rofi.theme: Arc-Dark
|
33
.config/rofi/scripts/powermenu.sh
Executable file
|
@ -0,0 +1,33 @@
|
||||||
|
OPTIONS="Reboot\nPoweroff\nSuspend\nHibernate\nLogout\nLock\n"
|
||||||
|
|
||||||
|
lock() {
|
||||||
|
WINDOW=:0 xscreensaver-command -lock
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ "$@" ]
|
||||||
|
then
|
||||||
|
case $@ in
|
||||||
|
Exit)
|
||||||
|
i3-msg exit
|
||||||
|
;;
|
||||||
|
Logout)
|
||||||
|
i3-msg exit
|
||||||
|
;;
|
||||||
|
Reboot)
|
||||||
|
systemctl reboot
|
||||||
|
;;
|
||||||
|
Poweroff)
|
||||||
|
systemctl poweroff
|
||||||
|
;;
|
||||||
|
Suspend)
|
||||||
|
systemctl suspend
|
||||||
|
;;
|
||||||
|
Hibernate)
|
||||||
|
systemctl hibernate
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
echo -en $OPTIONS
|
||||||
|
fi
|
9
.config/zathura/zathurarc
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
set pages-per-row 2
|
||||||
|
set page-cache-size 1
|
||||||
|
set adjust-open "best-fit"
|
||||||
|
|
||||||
|
set render-loading "false"
|
||||||
|
set selection-clipboard clipboard
|
||||||
|
unmap f
|
||||||
|
map f toggle_fullscreen
|
||||||
|
map [fullscreen] f toggle_fullscreen
|
19
.hgignore
|
@ -1,11 +1,8 @@
|
||||||
# do not sync lain
|
.pyc
|
||||||
lain/
|
.vim/plugged
|
||||||
|
.old
|
||||||
# vim
|
.bak
|
||||||
.tmp
|
.config/i3blocks
|
||||||
.vim
|
.config/awesome/lain
|
||||||
|
.config/ranger/bookmarks
|
||||||
# ranger
|
.vim/view/
|
||||||
ranger/bookmarks
|
|
||||||
ranger/history
|
|
||||||
ranger/tagged
|
|
||||||
|
|
192
.vim/.ycm_extra_conf.py
Normal file
|
@ -0,0 +1,192 @@
|
||||||
|
# This file is NOT licensed under the GPLv3, which is the license for the rest
|
||||||
|
# of YouCompleteMe.
|
||||||
|
#
|
||||||
|
# Here's the license text for this file:
|
||||||
|
#
|
||||||
|
# This is free and unencumbered software released into the public domain.
|
||||||
|
#
|
||||||
|
# Anyone is free to copy, modify, publish, use, compile, sell, or
|
||||||
|
# distribute this software, either in source code form or as a compiled
|
||||||
|
# binary, for any purpose, commercial or non-commercial, and by any
|
||||||
|
# means.
|
||||||
|
#
|
||||||
|
# In jurisdictions that recognize copyright laws, the author or authors
|
||||||
|
# of this software dedicate any and all copyright interest in the
|
||||||
|
# software to the public domain. We make this dedication for the benefit
|
||||||
|
# of the public at large and to the detriment of our heirs and
|
||||||
|
# successors. We intend this dedication to be an overt act of
|
||||||
|
# relinquishment in perpetuity of all present and future rights to this
|
||||||
|
# software under copyright law.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
# IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||||
|
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||||
|
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
|
# OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
#
|
||||||
|
# For more information, please refer to <http://unlicense.org/>
|
||||||
|
|
||||||
|
import os
|
||||||
|
import ycm_core
|
||||||
|
|
||||||
|
# These are the compilation flags that will be used in case there's no
|
||||||
|
# compilation database set (by default, one is not set).
|
||||||
|
# CHANGE THIS LIST OF FLAGS. YES, THIS IS THE DROID YOU HAVE BEEN LOOKING FOR.
|
||||||
|
flags = [
|
||||||
|
'-Wall',
|
||||||
|
'-Wextra',
|
||||||
|
'-Werror',
|
||||||
|
#'-Wc++98-compat',
|
||||||
|
'-Wno-long-long',
|
||||||
|
'-Wno-variadic-macros',
|
||||||
|
'-fexceptions',
|
||||||
|
'-DNDEBUG',
|
||||||
|
# You 100% do NOT need -DUSE_CLANG_COMPLETER in your flags; only the YCM
|
||||||
|
# source code needs it.
|
||||||
|
'-DUSE_CLANG_COMPLETER',
|
||||||
|
# THIS IS IMPORTANT! Without a "-std=<something>" flag, clang won't know which
|
||||||
|
# language to use when compiling headers. So it will guess. Badly. So C++
|
||||||
|
# headers will be compiled as C headers. You don't want that so ALWAYS specify
|
||||||
|
# a "-std=<something>".
|
||||||
|
# For a C project, you would set this to something like 'c99' instead of
|
||||||
|
# 'c++11'.
|
||||||
|
'-std=c++11',
|
||||||
|
# ...and the same thing goes for the magic -x option which specifies the
|
||||||
|
# language that the files to be compiled are written in. This is mostly
|
||||||
|
# relevant for c++ headers.
|
||||||
|
# For a C project, you would set this to 'c' instead of 'c++'.
|
||||||
|
'-x',
|
||||||
|
'c++',
|
||||||
|
'-isystem',
|
||||||
|
'../BoostParts',
|
||||||
|
'-isystem',
|
||||||
|
# This path will only work on OS X, but extra paths that don't exist are not
|
||||||
|
# harmful
|
||||||
|
'/System/Library/Frameworks/Python.framework/Headers',
|
||||||
|
'-isystem',
|
||||||
|
'../llvm/include',
|
||||||
|
'-isystem',
|
||||||
|
'../llvm/tools/clang/include',
|
||||||
|
'-I',
|
||||||
|
'.',
|
||||||
|
'-I',
|
||||||
|
'./ClangCompleter',
|
||||||
|
'-isystem',
|
||||||
|
'./tests/gmock/gtest',
|
||||||
|
'-isystem',
|
||||||
|
'./tests/gmock/gtest/include',
|
||||||
|
'-isystem',
|
||||||
|
'./tests/gmock',
|
||||||
|
'-isystem',
|
||||||
|
'./tests/gmock/include',
|
||||||
|
'-isystem',
|
||||||
|
'/usr/include',
|
||||||
|
'-isystem',
|
||||||
|
'/usr/local/include',
|
||||||
|
'-isystem',
|
||||||
|
'/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1',
|
||||||
|
'-isystem',
|
||||||
|
'/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include',
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
# Set this to the absolute path to the folder (NOT the file!) containing the
|
||||||
|
# compile_commands.json file to use that instead of 'flags'. See here for
|
||||||
|
# more details: http://clang.llvm.org/docs/JSONCompilationDatabase.html
|
||||||
|
#
|
||||||
|
# Most projects will NOT need to set this to anything; you can just change the
|
||||||
|
# 'flags' list of compilation flags. Notice that YCM itself uses that approach.
|
||||||
|
compilation_database_folder = ''
|
||||||
|
|
||||||
|
if os.path.exists( compilation_database_folder ):
|
||||||
|
database = ycm_core.CompilationDatabase( compilation_database_folder )
|
||||||
|
else:
|
||||||
|
database = None
|
||||||
|
|
||||||
|
SOURCE_EXTENSIONS = [ '.cpp', '.cxx', '.cc', '.c', '.m', '.mm' ]
|
||||||
|
|
||||||
|
def DirectoryOfThisScript():
|
||||||
|
return os.path.dirname( os.path.abspath( __file__ ) )
|
||||||
|
|
||||||
|
|
||||||
|
def MakeRelativePathsInFlagsAbsolute( flags, working_directory ):
|
||||||
|
if not working_directory:
|
||||||
|
return list( flags )
|
||||||
|
new_flags = []
|
||||||
|
make_next_absolute = False
|
||||||
|
path_flags = [ '-isystem', '-I', '-iquote', '--sysroot=' ]
|
||||||
|
for flag in flags:
|
||||||
|
new_flag = flag
|
||||||
|
|
||||||
|
if make_next_absolute:
|
||||||
|
make_next_absolute = False
|
||||||
|
if not flag.startswith( '/' ):
|
||||||
|
new_flag = os.path.join( working_directory, flag )
|
||||||
|
|
||||||
|
for path_flag in path_flags:
|
||||||
|
if flag == path_flag:
|
||||||
|
make_next_absolute = True
|
||||||
|
break
|
||||||
|
|
||||||
|
if flag.startswith( path_flag ):
|
||||||
|
path = flag[ len( path_flag ): ]
|
||||||
|
new_flag = path_flag + os.path.join( working_directory, path )
|
||||||
|
break
|
||||||
|
|
||||||
|
if new_flag:
|
||||||
|
new_flags.append( new_flag )
|
||||||
|
return new_flags
|
||||||
|
|
||||||
|
|
||||||
|
def IsHeaderFile( filename ):
|
||||||
|
extension = os.path.splitext( filename )[ 1 ]
|
||||||
|
return extension in [ '.h', '.hxx', '.hpp', '.hh' ]
|
||||||
|
|
||||||
|
|
||||||
|
def GetCompilationInfoForFile( filename ):
|
||||||
|
# The compilation_commands.json file generated by CMake does not have entries
|
||||||
|
# for header files. So we do our best by asking the db for flags for a
|
||||||
|
# corresponding source file, if any. If one exists, the flags for that file
|
||||||
|
# should be good enough.
|
||||||
|
if IsHeaderFile( filename ):
|
||||||
|
basename = os.path.splitext( filename )[ 0 ]
|
||||||
|
for extension in SOURCE_EXTENSIONS:
|
||||||
|
replacement_file = basename + extension
|
||||||
|
if os.path.exists( replacement_file ):
|
||||||
|
compilation_info = database.GetCompilationInfoForFile(
|
||||||
|
replacement_file )
|
||||||
|
if compilation_info.compiler_flags_:
|
||||||
|
return compilation_info
|
||||||
|
return None
|
||||||
|
return database.GetCompilationInfoForFile( filename )
|
||||||
|
|
||||||
|
|
||||||
|
def FlagsForFile( filename, **kwargs ):
|
||||||
|
if database:
|
||||||
|
# Bear in mind that compilation_info.compiler_flags_ does NOT return a
|
||||||
|
# python list, but a "list-like" StringVec object
|
||||||
|
compilation_info = GetCompilationInfoForFile( filename )
|
||||||
|
if not compilation_info:
|
||||||
|
return None
|
||||||
|
|
||||||
|
final_flags = MakeRelativePathsInFlagsAbsolute(
|
||||||
|
compilation_info.compiler_flags_,
|
||||||
|
compilation_info.compiler_working_dir_ )
|
||||||
|
|
||||||
|
# NOTE: This is just for YouCompleteMe; it's highly likely that your project
|
||||||
|
# does NOT need to remove the stdlib flag. DO NOT USE THIS IN YOUR
|
||||||
|
# ycm_extra_conf IF YOU'RE NOT 100% SURE YOU NEED IT.
|
||||||
|
try:
|
||||||
|
final_flags.remove( '-stdlib=libc++' )
|
||||||
|
except ValueError:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
relative_to = DirectoryOfThisScript()
|
||||||
|
final_flags = MakeRelativePathsInFlagsAbsolute( flags, relative_to )
|
||||||
|
|
||||||
|
return {
|
||||||
|
'flags': final_flags,
|
||||||
|
'do_cache': True
|
||||||
|
}
|
2522
.vim/autoload/plug.vim
Normal file
46
.vimrc
|
@ -15,8 +15,8 @@ Plug 'rust-lang/rust.vim', {'for': 'rust'}
|
||||||
"Plug 'racer-rust/vim-racer', {'for': 'rust'}
|
"Plug 'racer-rust/vim-racer', {'for': 'rust'}
|
||||||
|
|
||||||
" Syntax checking
|
" Syntax checking
|
||||||
Plug 'Valloric/YouCompleteMe' " alternative #1, full-blown
|
"Plug 'Valloric/YouCompleteMe' " alternative #1, full-blown
|
||||||
"Plug 'w0rp/ale',
|
Plug 'w0rp/ale',
|
||||||
|
|
||||||
" Useful plugins
|
" Useful plugins
|
||||||
Plug 'Raimondi/delimitMate'
|
Plug 'Raimondi/delimitMate'
|
||||||
|
@ -38,8 +38,8 @@ Plug 'honza/vim-snippets'
|
||||||
"Plug 'tomasr/molokai'
|
"Plug 'tomasr/molokai'
|
||||||
"Plug 'flazz/vim-colorschemes'
|
"Plug 'flazz/vim-colorschemes'
|
||||||
"Plug 'morhetz/gruvbox'
|
"Plug 'morhetz/gruvbox'
|
||||||
Plug 'chriskempson/base16-vim'
|
"Plug 'chriskempson/base16-vim' " Original but not updated
|
||||||
|
Plug 'danielwe/base16-vim' " Fork. updated. https://github.com/chriskempson/base16-vim/issues/197
|
||||||
" Airline
|
" Airline
|
||||||
Plug 'vim-airline/vim-airline'
|
Plug 'vim-airline/vim-airline'
|
||||||
Plug 'vim-airline/vim-airline-themes'
|
Plug 'vim-airline/vim-airline-themes'
|
||||||
|
@ -52,11 +52,11 @@ call plug#end()
|
||||||
filetype plugin indent on
|
filetype plugin indent on
|
||||||
|
|
||||||
" Magical color setup
|
" Magical color setup
|
||||||
set t_Co=256
|
|
||||||
set background=dark
|
|
||||||
syntax on
|
syntax on
|
||||||
|
set t_Co=256
|
||||||
|
set background=light
|
||||||
let base16colorspace=256
|
let base16colorspace=256
|
||||||
colorscheme base16-default-dark
|
colorscheme base16-solarized-light
|
||||||
|
|
||||||
" Other
|
" Other
|
||||||
set encoding=utf-8
|
set encoding=utf-8
|
||||||
|
@ -64,6 +64,8 @@ set autoindent " Automatically indent
|
||||||
set cindent " Indentation for c
|
set cindent " Indentation for c
|
||||||
set number " Add line numbers
|
set number " Add line numbers
|
||||||
set hlsearch " Highlight search
|
set hlsearch " Highlight search
|
||||||
|
set modeline
|
||||||
|
set modelines=5
|
||||||
"set sessionoptions=blank,buffers,curdir,folds,globals,help,localoptions,options,resize,tabpages,winsize,winpos
|
"set sessionoptions=blank,buffers,curdir,folds,globals,help,localoptions,options,resize,tabpages,winsize,winpos
|
||||||
set autochdir " Change directory automatically
|
set autochdir " Change directory automatically
|
||||||
"set backupdir=~/.vim/temp/ " Save temporary backups to temp dir
|
"set backupdir=~/.vim/temp/ " Save temporary backups to temp dir
|
||||||
|
@ -76,17 +78,17 @@ set autochdir " Change directory automatically
|
||||||
set colorcolumn=80
|
set colorcolumn=80
|
||||||
" Set GUI parameters
|
" Set GUI parameters
|
||||||
if has("gui_running")
|
if has("gui_running")
|
||||||
" GUI options.
|
" GUI options.
|
||||||
set guioptions-=m " remove menu bar
|
set guioptions-=m " remove menu bar
|
||||||
set guioptions-=T " remove toolbar
|
set guioptions-=T " remove toolbar
|
||||||
set guioptions-=r " remove right-hand scroll bar
|
set guioptions-=r " remove right-hand scroll bar
|
||||||
set guioptions-=L " remove left-hand scroll bar
|
set guioptions-=L " remove left-hand scroll bar
|
||||||
set guifont=Fura\ Code\ Nerd\ Font\ 10
|
set guifont=Fura\ Code\ Nerd\ Font\ 11
|
||||||
set guiheadroom=0
|
set guiheadroom=0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Keybindings
|
" Keybindings
|
||||||
" Long list following
|
" Long list following
|
||||||
" Indentation
|
" Indentation
|
||||||
map <F7> mzgg=G`z
|
map <F7> mzgg=G`z
|
||||||
map <F3> %s<cr>
|
map <F3> %s<cr>
|
||||||
|
@ -142,15 +144,23 @@ let g:UltiSnipsJumpForwardTrigger="<c-b>"
|
||||||
let g:UltiSnipsJumpBackwardTrigger="<c-z>"
|
let g:UltiSnipsJumpBackwardTrigger="<c-z>"
|
||||||
|
|
||||||
augroup lexical
|
augroup lexical
|
||||||
autocmd!
|
autocmd!
|
||||||
autocmd FileType markdown,mkd call lexical#init()
|
autocmd FileType markdown,mkd call lexical#init()
|
||||||
autocmd FileType textile call lexical#init()
|
autocmd FileType textile call lexical#init()
|
||||||
autocmd FileType text call lexical#init({ 'spell': 0 })
|
autocmd FileType text call lexical#init({ 'spell': 0 })
|
||||||
augroup END
|
augroup END
|
||||||
|
|
||||||
let g:ale_linters = {
|
let g:ale_linters = {
|
||||||
\ 'javascript': ['standard'],
|
\'javascript': ['standard'],
|
||||||
\ 'vue': ['standard --plugin html "**/*.{js,vue}"']
|
\'vue': ['standard --plugin html "**/*.{js,vue}"'],
|
||||||
\}
|
\'jsx': ['standard --plugin html "**/*.{js,jsx}"'],
|
||||||
let g:racer_experimental_completer = 1
|
\'rust': ['cargo']
|
||||||
|
\}
|
||||||
|
let b:ale_fixers = {
|
||||||
|
\'*': ['remove_trailing_lines', 'trim_whitespace'],
|
||||||
|
\'rust': ['rustfmt']
|
||||||
|
\}
|
||||||
|
let g:ale_fix_on_save = 1
|
||||||
|
let g:ale_completion_enabled = 1
|
||||||
|
|
||||||
set completeopt+=preview
|
set completeopt+=preview
|
||||||
|
|
14
.zprofile
|
@ -8,7 +8,7 @@ export PATH=$ANDROID_SDK_ROOT:$PATH
|
||||||
export PATH=$ANDROID_SDK_ROOT/tools:$PATH
|
export PATH=$ANDROID_SDK_ROOT/tools:$PATH
|
||||||
export PATH=$ANDROID_SDK_ROOT/platform-tools:$PATH
|
export PATH=$ANDROID_SDK_ROOT/platform-tools:$PATH
|
||||||
|
|
||||||
# Cocos and Ionic
|
# Cocos and Ionic
|
||||||
export COCOS_CONSOLE_ROOT=${HOME}/Sovellukset/cocos2d-js-v3.6.1/tools/cocos2d-console/bin
|
export COCOS_CONSOLE_ROOT=${HOME}/Sovellukset/cocos2d-js-v3.6.1/tools/cocos2d-console/bin
|
||||||
export IONIC_INSTALL=${HOME}/Asiakirjat/Work/Android/ionic/node_modules/.bin
|
export IONIC_INSTALL=${HOME}/Asiakirjat/Work/Android/ionic/node_modules/.bin
|
||||||
export PATH=$IONIC_INSTALL:$COCOS_CONSOLE_ROOT:$PATH
|
export PATH=$IONIC_INSTALL:$COCOS_CONSOLE_ROOT:$PATH
|
||||||
|
@ -54,3 +54,15 @@ export PATH="${HOME}/.dotnet:$PATH"
|
||||||
|
|
||||||
# Rust
|
# Rust
|
||||||
export PATH="${HOME}/.cargo/bin:$PATH"
|
export PATH="${HOME}/.cargo/bin:$PATH"
|
||||||
|
|
||||||
|
# Caffe
|
||||||
|
export CAFFE_DIR="${HOME}/Koodit/github/caffe/build/install"
|
||||||
|
|
||||||
|
# Terminal
|
||||||
|
export TERMINAL=kitty
|
||||||
|
#export TERMINAL=alacritty
|
||||||
|
export TERMCMD=$TERMINAL
|
||||||
|
# Start X on tty1 automatically
|
||||||
|
if systemctl -q is-active graphical.target && [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]]; then
|
||||||
|
exec startx
|
||||||
|
fi
|
||||||
|
|
47
.zshrc
|
@ -36,15 +36,16 @@ fi
|
||||||
|
|
||||||
# Syntax highlighting
|
# Syntax highlighting
|
||||||
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
||||||
|
source ~/.zplugins
|
||||||
|
|
||||||
alias top=htop
|
alias top=htop
|
||||||
alias ll="ls -lh"
|
alias ll="ls -lh"
|
||||||
alias la="ls -a"
|
alias la="ls -a"
|
||||||
alias lp="lastpass.sh"
|
alias lp="lastpass.sh"
|
||||||
alias ranger="TERMCMD=termite ranger"
|
alias ranger="ranger"
|
||||||
alias search="search.sh"
|
alias search="search.sh"
|
||||||
#alias ls="ls -N --time-style=long-iso --color=auto"
|
#alias ls="ls -N --time-style=long-iso --color=auto"
|
||||||
alias ls="ls --time-style=long-iso --color=auto"
|
alias ls="ls --time-style=long-iso --color=auto --human-readable --group-directories-first --classify"
|
||||||
alias rhc='RUBYOPT="-W0" rhc'
|
alias rhc='RUBYOPT="-W0" rhc'
|
||||||
# Other
|
# Other
|
||||||
alias fixsteam='find ~/.steam/root/ \( -name "libgcc_s.so*" -o -name "libstdc++.so*" -o -name "libxcb.so*" \) -print -delete'
|
alias fixsteam='find ~/.steam/root/ \( -name "libgcc_s.so*" -o -name "libstdc++.so*" -o -name "libxcb.so*" \) -print -delete'
|
||||||
|
@ -52,15 +53,49 @@ alias runsteam="LD_PRELOAD='/usr/$LIB/libstdc++.so.6 /usr/$LIB/libgcc_s.so.1 /us
|
||||||
alias steamgamesdir='cd ~/.local/share/Steam/SteamApps/common'
|
alias steamgamesdir='cd ~/.local/share/Steam/SteamApps/common'
|
||||||
alias emsdksetup='source $EMSDK/emsdk_env.sh'
|
alias emsdksetup='source $EMSDK/emsdk_env.sh'
|
||||||
alias runwinesteam="MESA_GL_VERSION_OVERRIDE=3.3COMPAT PULSE_LATENCY_MSEC=60 run-desktop.py ~/.local/share/applications/wine/Programs/Steam/Steam.desktop"
|
alias runwinesteam="MESA_GL_VERSION_OVERRIDE=3.3COMPAT PULSE_LATENCY_MSEC=60 run-desktop.py ~/.local/share/applications/wine/Programs/Steam/Steam.desktop"
|
||||||
alias rbackup="restic -r rclone:hubic:default/Backups/ChimeraLinux"
|
alias rbackup="restic -r rclone:hubic:ChimeraLinux"
|
||||||
|
alias bat="bat --theme base16"
|
||||||
# https://github.com/chriskempson/base16-shell
|
# https://github.com/chriskempson/base16-shell
|
||||||
# git clone https://github.com/chriskempson/base16-shell.git ~/.config/base16-shell
|
# git clone https://github.com/chriskempson/base16-shell.git ~/.config/base16-shell
|
||||||
source $HOME/.config/base16-shell/scripts/base16-default-dark.sh
|
#source $HOME/.config/base16-shell/scripts/base16-default-dark.sh
|
||||||
|
source $HOME/.config/base16-shell/scripts/base16-solarized-light.sh
|
||||||
|
|
||||||
# Emscripten
|
# Emscripten
|
||||||
#source /home/lanxu/Koodit/github/emsdk/emsdk_env.sh
|
#source /home/lanxu/Koodit/github/emsdk/emsdk_env.sh
|
||||||
|
|
||||||
# TERM=xterm-256color
|
#TERM=xterm-256color
|
||||||
#bindkey "${terminfo[khome]}" beginning-of-line
|
#bindkey "${terminfo[khome]}" beginning-of-line
|
||||||
#bindkey "${terminfo[kend]}" end-of-line
|
#bindkey "${terminfo[kend]}" end-of-line
|
||||||
export TERMCMD=termite
|
|
||||||
|
|
||||||
|
function auradd {
|
||||||
|
pkg=$1
|
||||||
|
aur sync --no-view --no-confirm --database custom "$pkg" >&2
|
||||||
|
sudo pacman -Sy "$pkg"
|
||||||
|
}
|
||||||
|
|
||||||
|
function aurrm {
|
||||||
|
pkg=$1
|
||||||
|
rm_out=$(repo-remove /var/cache/pacman/custom/custom.db.tar "$pkg" 2>&1)
|
||||||
|
if [[ $rm_out = *"ERROR"* ]]; then
|
||||||
|
echo "not found" >&2
|
||||||
|
else
|
||||||
|
rm -rf /var/cache/pacman/custom/"$pkg"*.pkg.* || true
|
||||||
|
echo "$pkg removed"
|
||||||
|
fi
|
||||||
|
sudo pacman -Sy
|
||||||
|
sudo pacman -Rnc "$pkg"
|
||||||
|
}
|
||||||
|
|
||||||
|
function aurupdate {
|
||||||
|
aur sync --no-view --no-confirm --database custom -u
|
||||||
|
sudo pacman -Syu
|
||||||
|
}
|
||||||
|
|
||||||
|
function c {
|
||||||
|
echo "scale=2; $@" | bc
|
||||||
|
}
|
||||||
|
|
||||||
|
function aurls {
|
||||||
|
sudo pacman -Sl custom
|
||||||
|
}
|
||||||
|
|
7
backup/backup.sh
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
while read line
|
||||||
|
do
|
||||||
|
echo $line
|
||||||
|
restic -r rclone:hubic:ChimeraLinux backup $line --exclude-file restic-exclude.txt --password-file /home/lanxu/restic-pass.txt
|
||||||
|
done < restic-include.txt
|
23
backup/restic-exclude.txt
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
*.DS_Store
|
||||||
|
*.swp
|
||||||
|
*.pyc
|
||||||
|
.Trash
|
||||||
|
.Xauthority
|
||||||
|
.bash_sessions
|
||||||
|
.cache
|
||||||
|
**/.tmp
|
||||||
|
**/temp/
|
||||||
|
**/tmp/
|
||||||
|
|
||||||
|
# Linux
|
||||||
|
*.part
|
||||||
|
.config/itch
|
||||||
|
.config/itch/*
|
||||||
|
.steam/*
|
||||||
|
*.tmp
|
||||||
|
*.bak
|
||||||
|
*.a
|
||||||
|
*.o
|
||||||
|
node_modules/*
|
||||||
|
*.cache
|
||||||
|
*.local/share/Trash
|
6
backup/restic-include.txt
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
/home/lanxu/Asiakirjat/
|
||||||
|
/home/lanxu/Documents/
|
||||||
|
/home/lanxu/Kuvat/
|
||||||
|
/home/lanxu/Koodit/
|
||||||
|
/home/lanxu/Musiikki/
|
||||||
|
/home/lanxu/.config/
|
9
setup.sh
|
@ -1,3 +1,10 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# Vim
|
||||||
mkdir .vim
|
mkdir .vim
|
||||||
curl -fLo .vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
curl -fLo .vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
||||||
git clone https://github.com/copycat-killer/lain.git $(pwd)/.config/awesome/lain
|
|
||||||
|
# Awesome
|
||||||
|
# git clone https://github.com/copycat-killer/lain.git $(pwd)/.config/awesome/lain
|
||||||
|
|
||||||
|
# i3blocks
|
||||||
|
git clone https://github.com/vivien/i3blocks-contrib $(pwd)/.config/i3blocks/
|
||||||
|
|