nixos
Jukka Lankinen 2019-11-09 14:20:48 +02:00
commit 60d6eb34bf
80 changed files with 4412 additions and 120 deletions

View 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

View File

@ -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")

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 179 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 195 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 195 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 185 B

After

Width:  |  Height:  |  Size: 478 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 214 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 198 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 475 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 253 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 189 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 213 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 186 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 196 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 175 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 206 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 189 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 972 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 195 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 200 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 587 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 277 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 B

View File

@ -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
})

View 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
View 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

View 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>

View File

@ -0,0 +1 @@
/etc/fonts/conf.avail/10-autohint.conf

View File

@ -0,0 +1 @@
/etc/fonts/conf.avail/10-sub-pixel-rgb.conf

View File

@ -0,0 +1 @@
/etc/fonts/conf.avail/11-lcdfilter-default.conf

View File

@ -0,0 +1 @@
/etc/fonts/conf.avail/30-win32-aliases.conf

View File

@ -0,0 +1 @@
/etc/fonts/conf.avail/70-no-bitmaps.conf

View 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>

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 MiB

305
.config/i3/config Normal file
View 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 windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows 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
View 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"

View 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
View 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
View 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;

View 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

View 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=

View File

@ -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>

View File

@ -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
#-------------------------------------------

View File

@ -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
View File

@ -0,0 +1,4 @@
rofi.lines: 20
rofi.show-icons: true
rofi.width: 60
rofi.theme: Arc-Dark

View 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

View 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

View File

@ -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
View 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

File diff suppressed because it is too large Load Diff

46
.vimrc
View File

@ -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

View File

@ -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
View File

@ -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
View 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
View 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

View File

@ -0,0 +1,6 @@
/home/lanxu/Asiakirjat/
/home/lanxu/Documents/
/home/lanxu/Kuvat/
/home/lanxu/Koodit/
/home/lanxu/Musiikki/
/home/lanxu/.config/

View File

@ -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/