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}
|
||||
}
|
||||
lock = function()
|
||||
-- Sync disks before lock (just in case)
|
||||
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
|
||||
mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
|
||||
{ "open terminal", terminal },
|
||||
|
@ -260,8 +265,8 @@ awful.screen.connect_for_each_screen(function(s)
|
|||
spacer,
|
||||
mydpmsstatus,
|
||||
spacer,
|
||||
mycloudstatus,
|
||||
spacer,
|
||||
--mycloudstatus,
|
||||
--spacer,
|
||||
mycpu,
|
||||
spacer,
|
||||
mymem,
|
||||
|
@ -269,11 +274,8 @@ awful.screen.connect_for_each_screen(function(s)
|
|||
myweather,
|
||||
spacer,
|
||||
mycputemp,
|
||||
spacer,
|
||||
mygputemp,
|
||||
spacer,
|
||||
mytextclock,
|
||||
spacer,
|
||||
s.mylayoutbox,
|
||||
}
|
||||
-- Only show everything on the first screen
|
||||
|
@ -283,7 +285,7 @@ awful.screen.connect_for_each_screen(function(s)
|
|||
s.mylayoutbox,
|
||||
}
|
||||
end
|
||||
|
||||
|
||||
-- Add widgets to the wibox
|
||||
s.mywibox:setup {
|
||||
layout = wibox.layout.align.horizontal,
|
||||
|
@ -350,7 +352,7 @@ globalkeys = awful.util.table.join(
|
|||
function ()
|
||||
awful.client.focus.history.previous()
|
||||
if client.focus then
|
||||
client.focus:raise()
|
||||
client.focus:raise()
|
||||
end
|
||||
end,
|
||||
{description = "go back", group = "client"}),
|
||||
|
@ -407,8 +409,15 @@ globalkeys = awful.util.table.join(
|
|||
{description = "lua execute prompt", group = "awesome"}),
|
||||
-- Menubar
|
||||
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"})
|
||||
)
|
||||
)
|
||||
|
||||
clientkeys = awful.util.table.join(
|
||||
awful.key({ modkey, }, "f",
|
||||
|
@ -508,29 +517,46 @@ for i = 1, 9 do
|
|||
volume.update()
|
||||
end,
|
||||
{description = "Lower audio volume", group = "audio"}),
|
||||
awful.key({ any }, "XF86AudioMute",
|
||||
awful.key({ any }, "XF86AudioMute",
|
||||
function()
|
||||
awful.spawn(string.format("pactl set-sink-mute %s 1", volume.device))
|
||||
volume.update()
|
||||
end,
|
||||
{description = "mute audio", group = "audio"}),
|
||||
awful.key({ 'Shift' }, "XF86AudioMute",
|
||||
awful.key({ 'Shift' }, "XF86AudioMute",
|
||||
function()
|
||||
awful.spawn(string.format("pactl set-sink-mute %s 0", volume.device))
|
||||
volume.update()
|
||||
end,
|
||||
{description = "unmute audio", group = "audio"}),
|
||||
awful.key({ modkey }, "Print",
|
||||
function ()
|
||||
local command = [[bash -c 'escrotum "$(xdg-user-dir PICTURES)/%Y-%m-%d_%T_screenshot.png"']]
|
||||
awful.spawn.easy_async(command, function(stdout, stderr)
|
||||
naughty.notify {
|
||||
title = "Screenshot saved!",
|
||||
text = stdout,
|
||||
}
|
||||
end)
|
||||
awful.key({ }, "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 screen -n ".. i-1 .." -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 = "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(
|
||||
|
@ -595,7 +621,7 @@ awful.rules.rules = {
|
|||
role = {
|
||||
"pop-up", -- e.g. Google Chrome's (detached) Developer Tools.
|
||||
}
|
||||
}, properties = {
|
||||
}, properties = {
|
||||
floating = true
|
||||
}
|
||||
},
|
||||
|
@ -699,12 +725,13 @@ local function remove_client(tabl, c)
|
|||
if index then
|
||||
table.remove(tabl, index)
|
||||
if #tabl == 0 then
|
||||
awful.util.spawn("xset s blank")
|
||||
awful.util.spawn("xset s on")
|
||||
awful.util.spawn("xset +dpms")
|
||||
naughty.notify({ preset = naughty.config.presets.low,
|
||||
title = "DPMS information",
|
||||
text = "Display power management is now back ON"})
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -712,9 +739,10 @@ client.connect_signal("property::fullscreen", function(c)
|
|||
if c.fullscreen then
|
||||
table.insert(fullscreened_clients, c)
|
||||
if #fullscreened_clients == 1 then
|
||||
awful.util.spawn("xset s noblank")
|
||||
awful.util.spawn("xset s off")
|
||||
awful.util.spawn("xset -dpms")
|
||||
naughty.notify({
|
||||
naughty.notify({
|
||||
preset = naughty.config.presets.low,
|
||||
title = "DPMS information",
|
||||
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 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 dropboxd")
|
||||
--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")
|
||||
|
||||
|
|
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 beautiful = require("beautiful") -- CPU temp
|
||||
local wibox = require("wibox")
|
||||
local gears = require("gears")
|
||||
|
||||
-- Variables
|
||||
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
|
||||
function file_exists(name)
|
||||
local f = io.open(name,"r")
|
||||
|
@ -39,8 +45,18 @@ mymem = lain.widget.mem({
|
|||
})
|
||||
|
||||
-- GPU
|
||||
mygputemp = wibox.widget.textbox()
|
||||
vicious.register(mygputemp, gputemp, create_markup("GPU", "$0", "℃", valuecolor), 15, "AMD")
|
||||
mygputemp_text = wibox.widget.textbox()
|
||||
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
|
||||
myhubic = wibox.widget.textbox()
|
||||
|
@ -62,27 +78,40 @@ volume = lain.widget.pulse({
|
|||
})
|
||||
|
||||
-- Text clock
|
||||
mytextclock = wibox.widget.textclock(create_markup("Date","%Y-%m-%d %H:%M","", valuecolor))
|
||||
|
||||
lain.widget.calendar({
|
||||
mytextclock_text = wibox.widget.textclock(create_markup("","%Y-%m-%d %H:%M","", valuecolor))
|
||||
mytextclock_text.align = "center"
|
||||
lain.widget.cal({
|
||||
followtag = true,
|
||||
attach_to = {mytextclock}
|
||||
attach_to = {mytextclock_text},
|
||||
notification_preset = {
|
||||
font = "Monospace 11", fg = "#FFFFFF", bg = "#000000"
|
||||
}
|
||||
})
|
||||
|
||||
-- CPU temperature
|
||||
local tempfile = "/sys/bus/pci/drivers/k10temp/0000:00:18.3/hwmon/hwmon2/temp1_input"
|
||||
mytextclock = wibox.container.background()
|
||||
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
|
||||
tempfile = "/sys/class/thermal/thermal_zone0/temp"
|
||||
end
|
||||
|
||||
mycputemp = lain.widget.temp({
|
||||
mycputemp_text = lain.widget.temp({
|
||||
tempfile = tempfile,
|
||||
settings = function()
|
||||
widget.markup = create_markup("CPU", coretemp_now, "℃", valuecolor)
|
||||
temp = string.format("%.0f", tonumber(coretemp_now))
|
||||
widget.markup = create_markup("", temp, "℃", valuecolor)
|
||||
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
|
||||
myweather = lain.widget.weather({
|
||||
city_id = 634963,
|
||||
|
@ -90,11 +119,19 @@ myweather = lain.widget.weather({
|
|||
followtag = true,
|
||||
settings = function()
|
||||
widget.markup = create_markup("Tampere", weather_now.main.temp, "℃", valuecolor)
|
||||
end
|
||||
end,
|
||||
notification_preset = {
|
||||
font = "Monospace 11", fg = "#FFFFFF", bg = "#000000"
|
||||
}
|
||||
})
|
||||
|
||||
-- DPMS
|
||||
mydpmsstatus = wibox.widget.textbox()
|
||||
-- mydpmsstatus.container.background.bg = '#ff0000'
|
||||
--mydpmsstatus = {
|
||||
-- widget = wibox.widget.textbox
|
||||
--}
|
||||
|
||||
vicious.register(mydpmsstatus, dpmsstatus, function(widget, args)
|
||||
color = valuecolor
|
||||
if args[0] == "Enabled" then
|
||||
|
@ -109,21 +146,21 @@ local notification = {
|
|||
font = "Monospace 10"
|
||||
}
|
||||
-- Servers
|
||||
local mcstatus = require("lanxu/mcstatus")
|
||||
myserverstatus = mcstatus({
|
||||
notification_preset = notification,
|
||||
settings = function()
|
||||
widget.markup = create_markup("PLAYERS", totalplayers, "", valuecolor)
|
||||
end
|
||||
})
|
||||
--local mcstatus = require("lanxu/mcstatus")
|
||||
--myserverstatus = mcstatus({
|
||||
--notification_preset = notification,
|
||||
--settings = function()
|
||||
--widget.markup = create_markup("PLAYERS", totalplayers, "", valuecolor)
|
||||
--end
|
||||
--})
|
||||
|
||||
local cloudstatus = require("lanxu/cloudstatus")
|
||||
mycloudstatus = cloudstatus({
|
||||
notification_preset = notification,
|
||||
settings = function()
|
||||
widget.markup = create_markup("CLOUD", currentstatus, "", valuecolor)
|
||||
end
|
||||
})
|
||||
--local cloudstatus = require("lanxu/cloudstatus")
|
||||
--mycloudstatus = cloudstatus({
|
||||
--notification_preset = notification,
|
||||
--settings = function()
|
||||
--widget.markup = create_markup("CLOUD", currentstatus, "", valuecolor)
|
||||
--end
|
||||
--})
|
||||
|
||||
local ip = require("lanxu/ip")
|
||||
ipaddress = ip({
|
||||
|
@ -132,3 +169,4 @@ ipaddress = ip({
|
|||
widget.markup = create_markup("IP", address, "", valuecolor)
|
||||
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.
|
||||
# To change them, it is recommended to create the file
|
||||
# ~/.config/ranger/rc.conf and add your custom commands there.
|
||||
# To change them, it is recommended to create either /etc/ranger/rc.conf
|
||||
# (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
|
||||
# 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
|
||||
|
||||
# Use one of the supported image preview protocols
|
||||
set preview_images true
|
||||
set preview_images false
|
||||
|
||||
# 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
|
||||
# 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:
|
||||
# Preview images in full color using urxvt image backgrounds. This
|
||||
# requires using urxvt compiled with pixbuf support.
|
||||
|
@ -92,7 +97,20 @@ set preview_images true
|
|||
# * urxvt-full:
|
||||
# The same as urxvt but utilizing not only the preview pane but the
|
||||
# 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)
|
||||
set iterm2_font_width 8
|
||||
|
@ -101,6 +119,10 @@ set iterm2_font_height 11
|
|||
# Use a unicode "..." character to mark cut-off filenames?
|
||||
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?
|
||||
set show_hidden_bookmarks true
|
||||
|
||||
|
@ -124,8 +146,11 @@ set status_bar_on_top false
|
|||
# currently running tasks which support progress bars?
|
||||
set draw_progress_bar_in_status_bar true
|
||||
|
||||
# Draw borders around columns?
|
||||
set draw_borders false
|
||||
# Draw borders around columns? (separators, outline, both, or none)
|
||||
# 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?
|
||||
set dirname_in_tabs false
|
||||
|
@ -137,6 +162,9 @@ set mouse_enabled true
|
|||
set display_size_in_main_column 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?
|
||||
set display_tags_in_all_columns true
|
||||
|
||||
|
@ -144,7 +172,7 @@ set display_tags_in_all_columns true
|
|||
set update_title false
|
||||
|
||||
# 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
|
||||
# directories are displayed at once, 0 turns off this feature.
|
||||
|
@ -216,6 +244,10 @@ set cd_tab_fuzzy false
|
|||
# disable this feature.
|
||||
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
|
||||
set show_selection_in_titlebar true
|
||||
|
||||
|
@ -232,9 +264,14 @@ set metadata_deep_search false
|
|||
# Clear all existing filters when leaving a directory
|
||||
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
|
||||
|
||||
# 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
|
||||
set one_indexed false
|
||||
|
||||
|
@ -249,6 +286,10 @@ set wrap_scroll false
|
|||
# directories, files and symlinks respectively.
|
||||
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
|
||||
# ===================================================================
|
||||
|
@ -270,8 +311,8 @@ alias qall quitall
|
|||
alias qall! quitall!
|
||||
alias setl setlocal
|
||||
|
||||
alias filter scout -prt
|
||||
alias find scout -aeit
|
||||
alias filter scout -prts
|
||||
alias find scout -aets
|
||||
alias mark scout -mr
|
||||
alias unmark scout -Mr
|
||||
alias search scout -rs
|
||||
|
@ -311,6 +352,8 @@ map r chain draw_possible_programs; console open_with%%space
|
|||
map f console find%space
|
||||
map cd console cd%space
|
||||
|
||||
map <C-p> chain console; eval fm.ui.console.history_move(-1)
|
||||
|
||||
# Change the line mode
|
||||
map Mf linemode filename
|
||||
map Mi linemode fileinfo
|
||||
|
@ -374,6 +417,7 @@ map L history_go 1
|
|||
map ] move_parent 1
|
||||
map [ move_parent -1
|
||||
map } traverse
|
||||
map { traverse_backwards
|
||||
map ) jump_non
|
||||
|
||||
map gh cd ~
|
||||
|
@ -385,9 +429,10 @@ map gL cd -r %f
|
|||
map go cd /opt
|
||||
map gv cd /var
|
||||
map gm cd /media
|
||||
map gi eval fm.cd('/run/media/' + os.getenv('USER'))
|
||||
map gM cd /mnt
|
||||
map gs cd /srv
|
||||
map gt cd /tmp
|
||||
map gp cd /tmp
|
||||
map gr cd /
|
||||
map gR eval fm.cd(ranger.RANGERDIR)
|
||||
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 yd yank dir
|
||||
map yn yank name
|
||||
map y. yank name_without_extension
|
||||
|
||||
# Filesystem Operations
|
||||
map = chmod
|
||||
|
@ -474,6 +520,8 @@ map <a-6> tab_open 6
|
|||
map <a-7> tab_open 7
|
||||
map <a-8> tab_open 8
|
||||
map <a-9> tab_open 9
|
||||
map <a-r> tab_shift 1
|
||||
map <a-l> tab_shift -1
|
||||
|
||||
# Sorting
|
||||
map or set sort_reverse!
|
||||
|
@ -503,6 +551,8 @@ map zc set collapse_preview!
|
|||
map zd set sort_directories_first!
|
||||
map zh set show_hidden!
|
||||
map <C-h> set show_hidden!
|
||||
copymap <C-h> <backspace>
|
||||
copymap <backspace> <backspace2>
|
||||
map zI set flushinput!
|
||||
map zi set preview_images!
|
||||
map zm set mouse_enabled!
|
||||
|
@ -514,6 +564,21 @@ map zv set use_preview_script!
|
|||
map zf console filter%space
|
||||
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
|
||||
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 <home> eval fm.ui.console.move(right=0, 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-right> eval fm.ui.console.move_word(right=1)
|
||||
cmap <a-b> eval fm.ui.console.move_word(left=1)
|
||||
cmap <a-f> eval fm.ui.console.move_word(right=1)
|
||||
|
||||
copycmap <a-b> <a-left>
|
||||
copycmap <a-f> <a-right>
|
||||
|
||||
# Line Editing
|
||||
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()
|
||||
|
||||
# And of course the emacs way
|
||||
copycmap <ESC> <C-g>
|
||||
copycmap <up> <C-p>
|
||||
copycmap <down> <C-n>
|
||||
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 epdfview, X, flag f = epdfview -- "$@"
|
||||
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"
|
||||
|
||||
|
@ -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 evince, X, flag f = evince -- "$@"
|
||||
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 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 display, X, flag f = display -- "$@"
|
||||
|
||||
mime ^image, has imv, X, flag f = imv -- "$@"
|
||||
mime ^image, has pqiv, X, flag f = pqiv -- "$@"
|
||||
mime ^image, has sxiv, X, flag f = sxiv -- "$@"
|
||||
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 eom, X, flag f = eom -- "$@"
|
||||
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 -- "$@"
|
||||
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 = 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
|
||||
#-------------------------------------------
|
||||
|
|
|
@ -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.
|
||||
|
||||
FILE_EXTENSION="${FILE_PATH##*.}"
|
||||
FILE_EXTENSION_LOWER="${FILE_EXTENSION,,}"
|
||||
FILE_EXTENSION_LOWER="$(printf "%s" "${FILE_EXTENSION}" | tr '[:upper:]' '[:lower:]')"
|
||||
|
||||
# Settings
|
||||
HIGHLIGHT_SIZE_MAX=262143 # 256KiB
|
||||
HIGHLIGHT_TABWIDTH=8
|
||||
HIGHLIGHT_STYLE='pablo'
|
||||
PYGMENTIZE_STYLE='autumn'
|
||||
HIGHLIGHT_TABWIDTH=${HIGHLIGHT_TABWIDTH:-8}
|
||||
HIGHLIGHT_STYLE=${HIGHLIGHT_STYLE:-pablo}
|
||||
HIGHLIGHT_OPTIONS="--replace-tabs=${HIGHLIGHT_TABWIDTH} --style=${HIGHLIGHT_STYLE} ${HIGHLIGHT_OPTIONS:-}"
|
||||
PYGMENTIZE_STYLE=${PYGMENTIZE_STYLE:-autumn}
|
||||
|
||||
|
||||
handle_extension() {
|
||||
|
@ -60,9 +61,10 @@ handle_extension() {
|
|||
# PDF
|
||||
#pdf)
|
||||
# # 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
|
||||
# exit 1;;
|
||||
# exit 1;;
|
||||
|
||||
# BitTorrent
|
||||
torrent)
|
||||
|
@ -82,12 +84,22 @@ handle_extension() {
|
|||
lynx -dump -- "${FILE_PATH}" && exit 5
|
||||
elinks -dump "${FILE_PATH}" && exit 5
|
||||
;; # Continue with next handler on failure
|
||||
|
||||
# JSON
|
||||
json)
|
||||
jq --color-output . "${FILE_PATH}" && exit 5
|
||||
python -m json.tool -- "${FILE_PATH}" && exit 5
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
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}"
|
||||
|
||||
|
||||
case "${FILE_EXTENSION_LOWER}" in
|
||||
# Comic book previews
|
||||
cbz|cbr|epub)
|
||||
|
@ -97,10 +109,16 @@ handle_image() {
|
|||
|
||||
case "${mimetype}" in
|
||||
# SVG
|
||||
image/svg+xml)
|
||||
convert "${FILE_PATH}" "${IMAGE_CACHE_PATH}" && exit 6
|
||||
image/svg+xml|image/svg)
|
||||
convert -- "${FILE_PATH}" "${IMAGE_CACHE_PATH}" && exit 6
|
||||
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/*)
|
||||
local orientation
|
||||
|
@ -121,16 +139,84 @@ handle_image() {
|
|||
# Thumbnail
|
||||
ffmpegthumbnailer -i "${FILE_PATH}" -o "${IMAGE_CACHE_PATH}" -s 0 && exit 6
|
||||
exit 1;;
|
||||
|
||||
|
||||
# PDF
|
||||
application/pdf)
|
||||
pdftoppm -f 1 -l 1 \
|
||||
-scale-to-x 1920 \
|
||||
-scale-to-x "${DEFAULT_SIZE%x*}" \
|
||||
-scale-to-y -1 \
|
||||
-singlefile \
|
||||
-jpeg -tiffcompression jpeg \
|
||||
-- "${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
|
||||
}
|
||||
|
||||
|
@ -150,16 +236,25 @@ handle_mime() {
|
|||
local pygmentize_format='terminal'
|
||||
local highlight_format='ansi'
|
||||
fi
|
||||
highlight --replace-tabs="${HIGHLIGHT_TABWIDTH}" --out-format="${highlight_format}" \
|
||||
--style="${HIGHLIGHT_STYLE}" --force -- "${FILE_PATH}" && exit 5
|
||||
# pygmentize -f "${pygmentize_format}" -O "style=${PYGMENTIZE_STYLE}" -- "${FILE_PATH}" && exit 5
|
||||
env HIGHLIGHT_OPTIONS="${HIGHLIGHT_OPTIONS}" highlight \
|
||||
--out-format="${highlight_format}" \
|
||||
--force -- "${FILE_PATH}" && exit 5
|
||||
pygmentize -f "${pygmentize_format}" -O "style=${PYGMENTIZE_STYLE}"\
|
||||
-- "${FILE_PATH}" && exit 5
|
||||
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/*)
|
||||
# Preview as text conversion
|
||||
# img2txt --gamma=0.6 --width="${PV_WIDTH}" -- "${FILE_PATH}" && exit 4
|
||||
exiftool "${FILE_PATH}" && exit 5
|
||||
img2txt --gamma=0.6 --width="${PV_WIDTH}" -- "${FILE_PATH}" && exit 4
|
||||
#exiftool "${FILE_PATH}" && exit 5
|
||||
exit 1;;
|
||||
|
||||
# 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
|
||||
lain/
|
||||
|
||||
# vim
|
||||
.tmp
|
||||
.vim
|
||||
|
||||
# ranger
|
||||
ranger/bookmarks
|
||||
ranger/history
|
||||
ranger/tagged
|
||||
.pyc
|
||||
.vim/plugged
|
||||
.old
|
||||
.bak
|
||||
.config/i3blocks
|
||||
.config/awesome/lain
|
||||
.config/ranger/bookmarks
|
||||
.vim/view/
|
||||
|
|
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'}
|
||||
|
||||
" Syntax checking
|
||||
Plug 'Valloric/YouCompleteMe' " alternative #1, full-blown
|
||||
"Plug 'w0rp/ale',
|
||||
"Plug 'Valloric/YouCompleteMe' " alternative #1, full-blown
|
||||
Plug 'w0rp/ale',
|
||||
|
||||
" Useful plugins
|
||||
Plug 'Raimondi/delimitMate'
|
||||
|
@ -38,8 +38,8 @@ Plug 'honza/vim-snippets'
|
|||
"Plug 'tomasr/molokai'
|
||||
"Plug 'flazz/vim-colorschemes'
|
||||
"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
|
||||
Plug 'vim-airline/vim-airline'
|
||||
Plug 'vim-airline/vim-airline-themes'
|
||||
|
@ -52,11 +52,11 @@ call plug#end()
|
|||
filetype plugin indent on
|
||||
|
||||
" Magical color setup
|
||||
set t_Co=256
|
||||
set background=dark
|
||||
syntax on
|
||||
set t_Co=256
|
||||
set background=light
|
||||
let base16colorspace=256
|
||||
colorscheme base16-default-dark
|
||||
colorscheme base16-solarized-light
|
||||
|
||||
" Other
|
||||
set encoding=utf-8
|
||||
|
@ -64,6 +64,8 @@ set autoindent " Automatically indent
|
|||
set cindent " Indentation for c
|
||||
set number " Add line numbers
|
||||
set hlsearch " Highlight search
|
||||
set modeline
|
||||
set modelines=5
|
||||
"set sessionoptions=blank,buffers,curdir,folds,globals,help,localoptions,options,resize,tabpages,winsize,winpos
|
||||
set autochdir " Change directory automatically
|
||||
"set backupdir=~/.vim/temp/ " Save temporary backups to temp dir
|
||||
|
@ -76,17 +78,17 @@ set autochdir " Change directory automatically
|
|||
set colorcolumn=80
|
||||
" Set GUI parameters
|
||||
if has("gui_running")
|
||||
" GUI options.
|
||||
" GUI options.
|
||||
set guioptions-=m " remove menu bar
|
||||
set guioptions-=T " remove toolbar
|
||||
set guioptions-=r " remove right-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
|
||||
endif
|
||||
|
||||
" Keybindings
|
||||
" Long list following
|
||||
" Long list following
|
||||
" Indentation
|
||||
map <F7> mzgg=G`z
|
||||
map <F3> %s<cr>
|
||||
|
@ -142,15 +144,23 @@ let g:UltiSnipsJumpForwardTrigger="<c-b>"
|
|||
let g:UltiSnipsJumpBackwardTrigger="<c-z>"
|
||||
|
||||
augroup lexical
|
||||
autocmd!
|
||||
autocmd FileType markdown,mkd call lexical#init()
|
||||
autocmd FileType textile call lexical#init()
|
||||
autocmd FileType text call lexical#init({ 'spell': 0 })
|
||||
autocmd!
|
||||
autocmd FileType markdown,mkd call lexical#init()
|
||||
autocmd FileType textile call lexical#init()
|
||||
autocmd FileType text call lexical#init({ 'spell': 0 })
|
||||
augroup END
|
||||
|
||||
let g:ale_linters = {
|
||||
\ 'javascript': ['standard'],
|
||||
\ 'vue': ['standard --plugin html "**/*.{js,vue}"']
|
||||
\}
|
||||
let g:racer_experimental_completer = 1
|
||||
\'javascript': ['standard'],
|
||||
\'vue': ['standard --plugin html "**/*.{js,vue}"'],
|
||||
\'jsx': ['standard --plugin html "**/*.{js,jsx}"'],
|
||||
\'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
|
||||
|
|
14
.zprofile
|
@ -8,7 +8,7 @@ export PATH=$ANDROID_SDK_ROOT:$PATH
|
|||
export PATH=$ANDROID_SDK_ROOT/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 IONIC_INSTALL=${HOME}/Asiakirjat/Work/Android/ionic/node_modules/.bin
|
||||
export PATH=$IONIC_INSTALL:$COCOS_CONSOLE_ROOT:$PATH
|
||||
|
@ -54,3 +54,15 @@ export PATH="${HOME}/.dotnet:$PATH"
|
|||
|
||||
# Rust
|
||||
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
|
||||
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
||||
source ~/.zplugins
|
||||
|
||||
alias top=htop
|
||||
alias ll="ls -lh"
|
||||
alias la="ls -a"
|
||||
alias lp="lastpass.sh"
|
||||
alias ranger="TERMCMD=termite ranger"
|
||||
alias ranger="ranger"
|
||||
alias search="search.sh"
|
||||
#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'
|
||||
# Other
|
||||
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 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 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
|
||||
# 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
|
||||
#source /home/lanxu/Koodit/github/emsdk/emsdk_env.sh
|
||||
|
||||
# TERM=xterm-256color
|
||||
#TERM=xterm-256color
|
||||
#bindkey "${terminfo[khome]}" beginning-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
|
||||
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/
|
||||
|
|