Compare commits
215 commits
Author | SHA1 | Date | |
---|---|---|---|
|
4253af6070 | ||
|
b1e9cbf32a | ||
|
8419b5e547 | ||
|
63b7d63120 | ||
|
3f22ca2fab | ||
|
6fa4e63bee | ||
|
6879351865 | ||
|
7c94414b1e | ||
|
5d5402f1b3 | ||
|
eb10c26ac2 | ||
|
4e4d30fc8b | ||
|
ebd5a2627f | ||
|
8158ddb2a2 | ||
|
fbf5500013 | ||
|
4043a451be | ||
|
f43db4d7a9 | ||
|
2c7fa84ca0 | ||
|
bac35f5254 | ||
|
c4d46e4cf8 | ||
|
140083567d | ||
|
bd3cbd1c20 | ||
|
978d153b9f | ||
|
6e4efd8af6 | ||
|
156094a9ce | ||
|
c8c40ec1b4 | ||
|
9d55d3faaf | ||
|
30dbbf3052 | ||
|
ffe6698ac4 | ||
|
ebc4b51cbe | ||
|
8a959fba18 | ||
|
da9c2eb765 | ||
|
2c953705f6 | ||
|
9458fb3129 | ||
|
49001711a8 | ||
77d8ad2b8a | |||
7c9a23b37f | |||
dcf6843593 | |||
9a3375a26e | |||
ef96a4aa91 | |||
33482938c1 | |||
014dadb86b | |||
54c335c378 | |||
|
f5f0261f44 | ||
|
cbdd1ecf16 | ||
|
1326d04bdf | ||
|
740ad06041 | ||
|
c40ba9f00b | ||
|
0980c627ea | ||
|
731e57b71d | ||
|
4bad5a9749 | ||
|
cc6d7a300a | ||
|
98033d9a8b | ||
|
1a4f0fbf24 | ||
|
1ac4972841 | ||
|
5455912565 | ||
|
127a9d7f9f | ||
|
ec686cdcd3 | ||
|
a9f97569a5 | ||
|
0c2859a39d | ||
|
6efcae5172 | ||
|
870991d993 | ||
|
17dc3cb9a1 | ||
|
81541a0486 | ||
|
c71fde1a01 | ||
|
ffe4446da4 | ||
|
c4dc8aa902 | ||
|
df9619122c | ||
|
8dfabd16d6 | ||
|
71068e75af | ||
|
9359e764d8 | ||
|
dbcf9e2208 | ||
|
8e565f08c9 | ||
|
fb18e89b6d | ||
|
ddf0c94016 | ||
|
6bfbe713a5 | ||
|
58a35c1730 | ||
|
4725220ba7 | ||
|
a3cfc2432b | ||
|
75f565a01e | ||
|
61ac847dc4 | ||
|
8b1c3062e2 | ||
|
1a82638336 | ||
|
d2191564a4 | ||
|
e1f9022b4e | ||
|
b64816fab9 | ||
|
4f2016d827 | ||
|
e60081a69d | ||
|
52955ddbbf | ||
|
ac70bced54 | ||
|
7b9221610c | ||
|
e26fa5ecdc | ||
|
7761cf1ecd | ||
|
00bc5ff257 | ||
|
7bfc26e61e | ||
|
edf295ab6c | ||
|
c99e12db24 | ||
|
05fcb2fb50 | ||
|
2f69cd2ed6 | ||
|
bf729262cc | ||
|
f85dc5cce3 | ||
|
cae9ec5030 | ||
|
b33a4ad59c | ||
|
73189456df | ||
|
7a2509b46f | ||
|
08a669a939 | ||
|
96a436319f | ||
|
5a68aac719 | ||
|
26f951e7ec | ||
|
ae043aa9f4 | ||
|
83d8610df4 | ||
|
d7f0cfed73 | ||
|
2fffd85374 | ||
|
c185a87d08 | ||
|
80693b9a5c | ||
|
75dc96747e | ||
|
9fa66ff5d0 | ||
|
2d7adf75d1 | ||
|
257396a78c | ||
|
fef026c3cd | ||
|
eec7d8e602 | ||
|
3f54411d7b | ||
|
1ba088eac3 | ||
|
829653e9d2 | ||
|
b21034f1d8 | ||
|
c460a39138 | ||
|
5b0d740bc7 | ||
|
06afd4066b | ||
|
a4fe85be41 | ||
|
28be269255 | ||
|
dda7fb4565 | ||
|
43e1833d57 | ||
|
fe48ad1a5c | ||
|
02952b1db8 | ||
|
67c70f7f8f | ||
|
f211b03e46 | ||
|
363400aa05 | ||
|
c8f1362178 | ||
|
f3e41aef62 | ||
|
84f1856f00 | ||
|
d63d5eeb3c | ||
|
626141fbcd | ||
|
7968207785 | ||
|
00f85cf9e4 | ||
|
1bda44376a | ||
|
1b7e6944d2 | ||
|
cdfbc6e307 | ||
|
f59fa65eee | ||
|
f022689a83 | ||
|
0b7d853a7b | ||
|
7f15568678 | ||
|
a0b95ad5bc | ||
|
c78091015d | ||
|
8bda06f7fc | ||
|
9a2ae347ef | ||
|
0865522a8f | ||
|
b862d29459 | ||
|
383647afdb | ||
|
0dbf6b2322 | ||
|
8f7d0927f2 | ||
|
237067a246 | ||
|
45205219d9 | ||
|
0ff8589b3d | ||
|
e993394ff0 | ||
|
ef601036e3 | ||
|
287e5acdb2 | ||
|
deb9ab8576 | ||
|
b2753bc422 | ||
|
2c6ab3bf5a | ||
|
79655efc1f | ||
|
9ec2ffac8b | ||
|
9706f82e8e | ||
|
6ab96129d5 | ||
|
cb14dd8ec3 | ||
|
e2e02fa768 | ||
|
e126b7bd6a | ||
|
e3c2a71c94 | ||
|
971c09083b | ||
|
68245ca45f | ||
|
3b457f947e | ||
|
f4198fefc7 | ||
|
393d07aeec | ||
|
5944967643 | ||
|
a13591224c | ||
|
90d79845fd | ||
|
2802acfe0a | ||
|
f1dce61f03 | ||
|
a995b00f1b | ||
|
3c436c7879 | ||
|
75b938a46d | ||
|
5fa96093b6 | ||
|
8b1aa5288b | ||
|
0f50309288 | ||
|
e86d9d292a | ||
|
4edf398a99 | ||
|
5f3fb9a142 | ||
|
1a318583e5 | ||
|
00c8beb6b2 | ||
|
17c849341e | ||
|
f78861713e | ||
|
c82a74dde5 | ||
|
a432400ee9 | ||
|
8a1d65be14 | ||
|
ae65165402 | ||
|
37ff5a1e97 | ||
|
7b10f48b6a | ||
|
c1c2fab5d3 | ||
|
afe44419d9 | ||
|
794069a7bf | ||
|
d8f806cd88 | ||
|
c3cbfded33 | ||
|
3693aade09 | ||
|
9d189fb67c | ||
|
8bb7aa3ad7 | ||
|
a91943d079 | ||
|
7d70d1090f |
|
@ -1,13 +0,0 @@
|
||||||
local awful = require("awful")
|
|
||||||
|
|
||||||
function flameshot_gui()
|
|
||||||
awful.spawn("flameshot gui")
|
|
||||||
end
|
|
||||||
|
|
||||||
function flameshot_screen()
|
|
||||||
awful.spawn("flameshot screen --clipboard")
|
|
||||||
end
|
|
||||||
|
|
||||||
function flameshot_full()
|
|
||||||
awful.spawn("flameshot full --clipboard")
|
|
||||||
end
|
|
|
@ -1,24 +0,0 @@
|
||||||
local awful = require("awful")
|
|
||||||
local naughty = require("naughty")
|
|
||||||
local session_type = os.getenv("XDG_SESSION_TYPE");
|
|
||||||
|
|
||||||
if session_type == nil or session_type == "" then
|
|
||||||
session_type = "x11"
|
|
||||||
end
|
|
||||||
|
|
||||||
function decode_clipboard_x11()
|
|
||||||
naughty.notify({ text = "Decoding PGP message" })
|
|
||||||
awful.spawn.with_shell("xclip -selection clipboard -out | sed 's/^ *//g' | gpg2 -d | gvim -")
|
|
||||||
end
|
|
||||||
|
|
||||||
function decode_clipboard_wayland()
|
|
||||||
-- TODO: Implement this when needed. wl-clipboard can be used here
|
|
||||||
end
|
|
||||||
|
|
||||||
function decode_clipboard()
|
|
||||||
if session_type == "x11" then
|
|
||||||
decode_clipboard_x11()
|
|
||||||
else
|
|
||||||
decode_clipboard_wayland()
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,4 +0,0 @@
|
||||||
local awful = require("awful")
|
|
||||||
|
|
||||||
awful.spawn("nextcloud")
|
|
||||||
awful.spawn("guake")
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit dc0a18c2c35a0cf888b5968115df810b90db91cf
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit e0bffc00566fbc0c05dc01700c569a589a6900eb
|
|
|
@ -1,811 +0,0 @@
|
||||||
--[[
|
|
||||||
|
|
||||||
Awesome WM configuration template
|
|
||||||
github.com/lcpz
|
|
||||||
|
|
||||||
--]]
|
|
||||||
|
|
||||||
-- {{{ Required libraries
|
|
||||||
local awesome, client, mouse, screen, tag = awesome, client, mouse, screen, tag
|
|
||||||
local ipairs, string, os, table, tostring, tonumber, type = ipairs, string, os, table, tostring, tonumber, type
|
|
||||||
|
|
||||||
local gears = require("gears")
|
|
||||||
local awful = require("awful")
|
|
||||||
require("awful.autofocus")
|
|
||||||
local wibox = require("wibox")
|
|
||||||
local beautiful = require("beautiful")
|
|
||||||
local naughty = require("naughty")
|
|
||||||
local lain = require("lain")
|
|
||||||
local menubar = require("menubar")
|
|
||||||
local freedesktop = require("freedesktop")
|
|
||||||
local hotkeys_popup = require("awful.hotkeys_popup").widget
|
|
||||||
require("awful.hotkeys_popup.keys")
|
|
||||||
local my_table = awful.util.table or gears.table -- 4.{0,1} compatibility
|
|
||||||
local dpi = require("beautiful.xresources").apply_dpi
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- {{{ Custom Imports
|
|
||||||
local flameshot = require("./dhalucario/flameshot")
|
|
||||||
local krdl = require("./dhalucario/krdl")
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- {{{ Error handling
|
|
||||||
-- Check if awesome encountered an error during startup and fell back to
|
|
||||||
-- another config (This code will only ever execute for the fallback config)
|
|
||||||
if awesome.startup_errors then
|
|
||||||
naughty.notify({ preset = naughty.config.presets.critical,
|
|
||||||
title = "Oops, there were errors during startup!",
|
|
||||||
text = awesome.startup_errors })
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Handle runtime errors after startup
|
|
||||||
do
|
|
||||||
local in_error = false
|
|
||||||
awesome.connect_signal("debug::error", function (err)
|
|
||||||
if in_error then return end
|
|
||||||
in_error = true
|
|
||||||
|
|
||||||
naughty.notify({ preset = naughty.config.presets.critical,
|
|
||||||
title = "Oops, an error happened!",
|
|
||||||
text = tostring(err) })
|
|
||||||
in_error = false
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- {{{ Autostart windowless processes
|
|
||||||
|
|
||||||
-- This function will run once every time Awesome is started
|
|
||||||
local function run_once(cmd_arr)
|
|
||||||
for _, cmd in ipairs(cmd_arr) do
|
|
||||||
awful.spawn.with_shell(string.format("pgrep -u $USER -fx '%s' > /dev/null || (%s)", cmd, cmd))
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
run_once({ "urxvtd", "unclutter -root" }) -- entries must be separated by commas
|
|
||||||
|
|
||||||
-- This function implements the XDG autostart specification
|
|
||||||
awful.spawn.with_shell(
|
|
||||||
'if (xrdb -query | grep -q "^awesome\\.started:\\s*true$"); then exit; fi;' ..
|
|
||||||
'xrdb -merge <<< "awesome.started:true";' ..
|
|
||||||
-- list each of your autostart commands, followed by ; inside single quotes, followed by ..
|
|
||||||
'dex --environment Awesome --autostart --search-paths "$XDG_CONFIG_DIRS/autostart:$XDG_CONFIG_HOME/autostart"' -- https://github.com/jceb/dex
|
|
||||||
)
|
|
||||||
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- {{{ Variable definitions
|
|
||||||
|
|
||||||
local themes = {
|
|
||||||
"blackburn", -- 1
|
|
||||||
"copland", -- 2
|
|
||||||
"dremora", -- 3
|
|
||||||
"holo", -- 4
|
|
||||||
"multicolor", -- 5
|
|
||||||
"powerarrow", -- 6
|
|
||||||
"powerarrow-dark", -- 7
|
|
||||||
"rainbow", -- 8
|
|
||||||
"steamburn", -- 9
|
|
||||||
"vertex", -- 10
|
|
||||||
}
|
|
||||||
|
|
||||||
local chosen_theme = themes[2]
|
|
||||||
local modkey = "Mod4"
|
|
||||||
local altkey = "Mod1"
|
|
||||||
local terminal = "urxvtc"
|
|
||||||
local vi_focus = false -- vi-like client focus - https://github.com/lcpz/awesome-copycats/issues/275
|
|
||||||
local cycle_prev = true -- cycle trough all previous client or just the first -- https://github.com/lcpz/awesome-copycats/issues/274
|
|
||||||
local editor = os.getenv("EDITOR") or "vim"
|
|
||||||
local gui_editor = os.getenv("GUI_EDITOR") or "gvim"
|
|
||||||
local browser = os.getenv("BROWSER") or "firefox"
|
|
||||||
local scrlocker = "slock"
|
|
||||||
|
|
||||||
awful.util.terminal = terminal
|
|
||||||
awful.util.tagnames = { "1", "2", "3", "4", "5" }
|
|
||||||
awful.layout.layouts = {
|
|
||||||
awful.layout.suit.max,
|
|
||||||
awful.layout.suit.magnifier,
|
|
||||||
awful.layout.suit.spiral,
|
|
||||||
awful.layout.suit.tile,
|
|
||||||
awful.layout.suit.tile.left,
|
|
||||||
awful.layout.suit.fair,
|
|
||||||
awful.layout.suit.fair.horizontal,
|
|
||||||
awful.layout.suit.corner.nw,
|
|
||||||
awful.layout.suit.corner.ne,
|
|
||||||
--awful.layout.suit.floating,
|
|
||||||
--awful.layout.suit.tile,
|
|
||||||
--awful.layout.suit.tile.left,
|
|
||||||
--awful.layout.suit.tile.bottom,
|
|
||||||
--awful.layout.suit.tile.top,
|
|
||||||
--awful.layout.suit.fair,
|
|
||||||
--awful.layout.suit.fair.horizontal,
|
|
||||||
--awful.layout.suit.spiral,
|
|
||||||
--awful.layout.suit.spiral.dwindle,
|
|
||||||
--awful.layout.suit.max,
|
|
||||||
--awful.layout.suit.max.fullscreen,
|
|
||||||
--awful.layout.suit.magnifier,
|
|
||||||
--awful.layout.suit.corner.nw,
|
|
||||||
--awful.layout.suit.corner.ne,
|
|
||||||
--awful.layout.suit.corner.sw,
|
|
||||||
--awful.layout.suit.corner.se,
|
|
||||||
--lain.layout.cascade,
|
|
||||||
--lain.layout.cascade.tile,
|
|
||||||
--lain.layout.centerwork,
|
|
||||||
--lain.layout.centerwork.horizontal,
|
|
||||||
--lain.layout.termfair,
|
|
||||||
--lain.layout.termfair.center,
|
|
||||||
}
|
|
||||||
|
|
||||||
awful.util.taglist_buttons = my_table.join(
|
|
||||||
awful.button({ }, 1, function(t) t:view_only() end),
|
|
||||||
awful.button({ modkey }, 1, function(t)
|
|
||||||
if client.focus then
|
|
||||||
client.focus:move_to_tag(t)
|
|
||||||
end
|
|
||||||
end),
|
|
||||||
awful.button({ }, 3, awful.tag.viewtoggle),
|
|
||||||
awful.button({ modkey }, 3, function(t)
|
|
||||||
if client.focus then
|
|
||||||
client.focus:toggle_tag(t)
|
|
||||||
end
|
|
||||||
end),
|
|
||||||
awful.button({ }, 4, function(t) awful.tag.viewnext(t.screen) end),
|
|
||||||
awful.button({ }, 5, function(t) awful.tag.viewprev(t.screen) end)
|
|
||||||
)
|
|
||||||
|
|
||||||
awful.util.tasklist_buttons = my_table.join(
|
|
||||||
awful.button({ }, 1, function (c)
|
|
||||||
if c == client.focus then
|
|
||||||
c.minimized = true
|
|
||||||
else
|
|
||||||
--c:emit_signal("request::activate", "tasklist", {raise = true})<Paste>
|
|
||||||
|
|
||||||
-- Without this, the following
|
|
||||||
-- :isvisible() makes no sense
|
|
||||||
c.minimized = false
|
|
||||||
if not c:isvisible() and c.first_tag then
|
|
||||||
c.first_tag:view_only()
|
|
||||||
end
|
|
||||||
-- This will also un-minimize
|
|
||||||
-- the client, if needed
|
|
||||||
client.focus = c
|
|
||||||
c:raise()
|
|
||||||
end
|
|
||||||
end),
|
|
||||||
awful.button({ }, 2, function (c) c:kill() end),
|
|
||||||
awful.button({ }, 3, function ()
|
|
||||||
local instance = nil
|
|
||||||
|
|
||||||
return function ()
|
|
||||||
if instance and instance.wibox.visible then
|
|
||||||
instance:hide()
|
|
||||||
instance = nil
|
|
||||||
else
|
|
||||||
instance = awful.menu.clients({theme = {width = dpi(250)}})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end),
|
|
||||||
awful.button({ }, 4, function () awful.client.focus.byidx(1) end),
|
|
||||||
awful.button({ }, 5, function () awful.client.focus.byidx(-1) end)
|
|
||||||
)
|
|
||||||
|
|
||||||
lain.layout.termfair.nmaster = 3
|
|
||||||
lain.layout.termfair.ncol = 1
|
|
||||||
lain.layout.termfair.center.nmaster = 3
|
|
||||||
lain.layout.termfair.center.ncol = 1
|
|
||||||
lain.layout.cascade.tile.offset_x = dpi(2)
|
|
||||||
lain.layout.cascade.tile.offset_y = dpi(32)
|
|
||||||
lain.layout.cascade.tile.extra_padding = dpi(5)
|
|
||||||
lain.layout.cascade.tile.nmaster = 5
|
|
||||||
lain.layout.cascade.tile.ncol = 2
|
|
||||||
|
|
||||||
beautiful.init(string.format("%s/.config/awesome/themes/%s/theme.lua", os.getenv("HOME"), chosen_theme))
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- {{{ Menu
|
|
||||||
local myawesomemenu = {
|
|
||||||
{ "hotkeys", function() return false, hotkeys_popup.show_help end },
|
|
||||||
{ "manual", terminal .. " -e man awesome" },
|
|
||||||
{ "edit config", string.format("%s -e %s %s", terminal, editor, awesome.conffile) },
|
|
||||||
{ "restart", awesome.restart },
|
|
||||||
{ "quit", function() awesome.quit() end }
|
|
||||||
}
|
|
||||||
awful.util.mymainmenu = freedesktop.menu.build({
|
|
||||||
icon_size = beautiful.menu_height or dpi(16),
|
|
||||||
before = {
|
|
||||||
{ "Awesome", myawesomemenu, beautiful.awesome_icon },
|
|
||||||
-- other triads can be put here
|
|
||||||
},
|
|
||||||
after = {
|
|
||||||
{ "Open terminal", terminal },
|
|
||||||
-- other triads can be put here
|
|
||||||
}
|
|
||||||
})
|
|
||||||
-- hide menu when mouse leaves it
|
|
||||||
awful.util.mymainmenu.wibox:connect_signal("mouse::leave", function() awful.util.mymainmenu:hide() end)
|
|
||||||
|
|
||||||
--menubar.utils.terminal = terminal -- Set the Menubar terminal for applications that require it
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- {{{ Screen
|
|
||||||
-- Re-set wallpaper when a screen's geometry changes (e.g. different resolution)
|
|
||||||
screen.connect_signal("property::geometry", function(s)
|
|
||||||
-- Wallpaper
|
|
||||||
if beautiful.wallpaper then
|
|
||||||
local wallpaper = beautiful.wallpaper
|
|
||||||
-- If wallpaper is a function, call it with the screen
|
|
||||||
if type(wallpaper) == "function" then
|
|
||||||
wallpaper = wallpaper(s)
|
|
||||||
end
|
|
||||||
gears.wallpaper.maximized(wallpaper, s, true)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
-- No borders when rearranging only 1 non-floating or maximized client
|
|
||||||
screen.connect_signal("arrange", function (s)
|
|
||||||
local only_one = #s.tiled_clients == 1
|
|
||||||
for _, c in pairs(s.clients) do
|
|
||||||
if only_one and not c.floating or c.maximized then
|
|
||||||
c.border_width = 0
|
|
||||||
else
|
|
||||||
c.border_width = beautiful.border_width
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
-- Create a wibox for each screen and add it
|
|
||||||
awful.screen.connect_for_each_screen(function(s) beautiful.at_screen_connect(s) end)
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- {{{ Mouse bindings
|
|
||||||
root.buttons(my_table.join(
|
|
||||||
awful.button({ }, 3, function () awful.util.mymainmenu:toggle() end),
|
|
||||||
awful.button({ }, 4, awful.tag.viewnext),
|
|
||||||
awful.button({ }, 5, awful.tag.viewprev)
|
|
||||||
))
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- {{{ Key bindings
|
|
||||||
globalkeys = my_table.join(
|
|
||||||
-- Take a screenshot
|
|
||||||
-- https://github.com/lcpz/dots/blob/master/bin/screenshot
|
|
||||||
-- awful.key({ altkey }, "p", function() os.execute("screenshot") end,
|
|
||||||
-- {description = "take a screenshot", group = "hotkeys"}),
|
|
||||||
|
|
||||||
-- X screen locker
|
|
||||||
awful.key({ altkey, "Control" }, "l", function () os.execute(scrlocker) end,
|
|
||||||
{description = "lock screen", group = "hotkeys"}),
|
|
||||||
|
|
||||||
-- Hotkeys
|
|
||||||
awful.key({ modkey, }, "s", hotkeys_popup.show_help,
|
|
||||||
{description = "show help", group="awesome"}),
|
|
||||||
-- Tag browsing
|
|
||||||
awful.key({ modkey, }, "Left", awful.tag.viewprev,
|
|
||||||
{description = "view previous", group = "tag"}),
|
|
||||||
awful.key({ modkey, }, "Right", awful.tag.viewnext,
|
|
||||||
{description = "view next", group = "tag"}),
|
|
||||||
awful.key({ modkey, }, "Escape", awful.tag.history.restore,
|
|
||||||
{description = "go back", group = "tag"}),
|
|
||||||
|
|
||||||
-- Non-empty tag browsing
|
|
||||||
awful.key({ altkey }, "Left", function () lain.util.tag_view_nonempty(-1) end,
|
|
||||||
{description = "view previous nonempty", group = "tag"}),
|
|
||||||
awful.key({ altkey }, "Right", function () lain.util.tag_view_nonempty(1) end,
|
|
||||||
{description = "view previous nonempty", group = "tag"}),
|
|
||||||
|
|
||||||
-- Default client focus
|
|
||||||
awful.key({ modkey, }, "j",
|
|
||||||
function ()
|
|
||||||
awful.client.focus.byidx( 1)
|
|
||||||
end,
|
|
||||||
{description = "focus next by index", group = "client"}
|
|
||||||
),
|
|
||||||
awful.key({ modkey, }, "k",
|
|
||||||
function ()
|
|
||||||
awful.client.focus.byidx(-1)
|
|
||||||
end,
|
|
||||||
{description = "focus previous by index", group = "client"}
|
|
||||||
),
|
|
||||||
|
|
||||||
-- By direction client focus
|
|
||||||
awful.key({ modkey }, "j",
|
|
||||||
function()
|
|
||||||
awful.client.focus.global_bydirection("down")
|
|
||||||
if client.focus then client.focus:raise() end
|
|
||||||
end,
|
|
||||||
{description = "focus down", group = "client"}),
|
|
||||||
awful.key({ modkey }, "k",
|
|
||||||
function()
|
|
||||||
awful.client.focus.global_bydirection("up")
|
|
||||||
if client.focus then client.focus:raise() end
|
|
||||||
end,
|
|
||||||
{description = "focus up", group = "client"}),
|
|
||||||
awful.key({ modkey }, "h",
|
|
||||||
function()
|
|
||||||
awful.client.focus.global_bydirection("left")
|
|
||||||
if client.focus then client.focus:raise() end
|
|
||||||
end,
|
|
||||||
{description = "focus left", group = "client"}),
|
|
||||||
awful.key({ modkey }, "l",
|
|
||||||
function()
|
|
||||||
awful.client.focus.global_bydirection("right")
|
|
||||||
if client.focus then client.focus:raise() end
|
|
||||||
end,
|
|
||||||
{description = "focus right", group = "client"}),
|
|
||||||
awful.key({ modkey, }, "w", function () awful.util.mymainmenu:show() end,
|
|
||||||
{description = "show main menu", group = "awesome"}),
|
|
||||||
|
|
||||||
-- Layout manipulation
|
|
||||||
awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end,
|
|
||||||
{description = "swap with next client by index", group = "client"}),
|
|
||||||
awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end,
|
|
||||||
{description = "swap with previous client by index", group = "client"}),
|
|
||||||
awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end,
|
|
||||||
{description = "focus the next screen", group = "screen"}),
|
|
||||||
awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end,
|
|
||||||
{description = "focus the previous screen", group = "screen"}),
|
|
||||||
awful.key({ modkey, }, "u", awful.client.urgent.jumpto,
|
|
||||||
{description = "jump to urgent client", group = "client"}),
|
|
||||||
awful.key({ modkey, }, "Tab",
|
|
||||||
function ()
|
|
||||||
if cycle_prev then
|
|
||||||
awful.client.focus.history.previous()
|
|
||||||
else
|
|
||||||
awful.client.focus.byidx(-1)
|
|
||||||
end
|
|
||||||
if client.focus then
|
|
||||||
client.focus:raise()
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
{description = "cycle with previous/go back", group = "client"}),
|
|
||||||
awful.key({ modkey, "Shift" }, "Tab",
|
|
||||||
function ()
|
|
||||||
if cycle_prev then
|
|
||||||
awful.client.focus.byidx(1)
|
|
||||||
if client.focus then
|
|
||||||
client.focus:raise()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
{description = "go forth", group = "client"}),
|
|
||||||
|
|
||||||
-- Show/Hide Wibox
|
|
||||||
awful.key({ modkey }, "b", function ()
|
|
||||||
for s in screen do
|
|
||||||
s.mywibox.visible = not s.mywibox.visible
|
|
||||||
if s.mybottomwibox then
|
|
||||||
s.mybottomwibox.visible = not s.mybottomwibox.visible
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
{description = "toggle wibox", group = "awesome"}),
|
|
||||||
|
|
||||||
-- On the fly useless gaps change
|
|
||||||
awful.key({ altkey, "Control" }, "+", function () lain.util.useless_gaps_resize(1) end,
|
|
||||||
{description = "increment useless gaps", group = "tag"}),
|
|
||||||
awful.key({ altkey, "Control" }, "-", function () lain.util.useless_gaps_resize(-1) end,
|
|
||||||
{description = "decrement useless gaps", group = "tag"}),
|
|
||||||
|
|
||||||
-- Dynamic tagging
|
|
||||||
awful.key({ modkey, "Shift" }, "n", function () lain.util.add_tag() end,
|
|
||||||
{description = "add new tag", group = "tag"}),
|
|
||||||
awful.key({ modkey, "Shift" }, "r", function () lain.util.rename_tag() end,
|
|
||||||
{description = "rename tag", group = "tag"}),
|
|
||||||
awful.key({ modkey, "Shift" }, "Left", function () lain.util.move_tag(-1) end,
|
|
||||||
{description = "move tag to the left", group = "tag"}),
|
|
||||||
awful.key({ modkey, "Shift" }, "Right", function () lain.util.move_tag(1) end,
|
|
||||||
{description = "move tag to the right", group = "tag"}),
|
|
||||||
awful.key({ modkey, "Shift" }, "d", function () lain.util.delete_tag() end,
|
|
||||||
{description = "delete tag", group = "tag"}),
|
|
||||||
|
|
||||||
-- Standard program
|
|
||||||
awful.key({ modkey, }, "Return", function () awful.spawn(terminal) end,
|
|
||||||
{description = "open a terminal", group = "launcher"}),
|
|
||||||
awful.key({ modkey, "Control" }, "r", awesome.restart,
|
|
||||||
{description = "reload awesome", group = "awesome"}),
|
|
||||||
awful.key({ modkey, "Shift" }, "q", awesome.quit,
|
|
||||||
{description = "quit awesome", group = "awesome"}),
|
|
||||||
|
|
||||||
awful.key({ altkey, "Shift" }, "l", function () awful.tag.incmwfact( 0.05) end,
|
|
||||||
{description = "increase master width factor", group = "layout"}),
|
|
||||||
awful.key({ altkey, "Shift" }, "h", function () awful.tag.incmwfact(-0.05) end,
|
|
||||||
{description = "decrease master width factor", group = "layout"}),
|
|
||||||
awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1, nil, true) end,
|
|
||||||
{description = "increase the number of master clients", group = "layout"}),
|
|
||||||
awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1, nil, true) end,
|
|
||||||
{description = "decrease the number of master clients", group = "layout"}),
|
|
||||||
awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1, nil, true) end,
|
|
||||||
{description = "increase the number of columns", group = "layout"}),
|
|
||||||
awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1, nil, true) end,
|
|
||||||
{description = "decrease the number of columns", group = "layout"}),
|
|
||||||
awful.key({ modkey, }, "space", function () awful.layout.inc( 1) end,
|
|
||||||
{description = "select next", group = "layout"}),
|
|
||||||
awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(-1) end,
|
|
||||||
{description = "select previous", group = "layout"}),
|
|
||||||
|
|
||||||
awful.key({ modkey, "Control" }, "n",
|
|
||||||
function ()
|
|
||||||
local c = awful.client.restore()
|
|
||||||
-- Focus restored client
|
|
||||||
if c then
|
|
||||||
client.focus = c
|
|
||||||
c:raise()
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
{description = "restore minimized", group = "client"}),
|
|
||||||
|
|
||||||
-- Dropdown application
|
|
||||||
awful.key({ modkey, }, "z", function () awful.screen.focused().quake:toggle() end,
|
|
||||||
{description = "dropdown application", group = "launcher"}),
|
|
||||||
|
|
||||||
-- Widgets popups
|
|
||||||
awful.key({ altkey, }, "c", function () if beautiful.cal then beautiful.cal.show(7) end end,
|
|
||||||
{description = "show calendar", group = "widgets"}),
|
|
||||||
awful.key({ altkey, }, "h", function () if beautiful.fs then beautiful.fs.show(7) end end,
|
|
||||||
{description = "show filesystem", group = "widgets"}),
|
|
||||||
awful.key({ altkey, }, "w", function () if beautiful.weather then beautiful.weather.show(7) end end,
|
|
||||||
{description = "show weather", group = "widgets"}),
|
|
||||||
|
|
||||||
-- Brightness
|
|
||||||
awful.key({ }, "XF86MonBrightnessUp", function () os.execute("xbacklight -inc 10") end,
|
|
||||||
{description = "+10%", group = "hotkeys"}),
|
|
||||||
awful.key({ }, "XF86MonBrightnessDown", function () os.execute("xbacklight -dec 10") end,
|
|
||||||
{description = "-10%", group = "hotkeys"}),
|
|
||||||
|
|
||||||
-- ALSA volume control
|
|
||||||
awful.key({ altkey }, "Up",
|
|
||||||
function ()
|
|
||||||
os.execute(string.format("amixer -q set %s 1%%+", beautiful.volume.channel))
|
|
||||||
beautiful.volume.update()
|
|
||||||
end,
|
|
||||||
{description = "volume up", group = "hotkeys"}),
|
|
||||||
awful.key({ altkey }, "Down",
|
|
||||||
function ()
|
|
||||||
os.execute(string.format("amixer -q set %s 1%%-", beautiful.volume.channel))
|
|
||||||
beautiful.volume.update()
|
|
||||||
end,
|
|
||||||
{description = "volume down", group = "hotkeys"}),
|
|
||||||
awful.key({ altkey }, "m",
|
|
||||||
function ()
|
|
||||||
os.execute(string.format("amixer -q set %s toggle", beautiful.volume.togglechannel or beautiful.volume.channel))
|
|
||||||
beautiful.volume.update()
|
|
||||||
end,
|
|
||||||
{description = "toggle mute", group = "hotkeys"}),
|
|
||||||
awful.key({ altkey, "Control" }, "m",
|
|
||||||
function ()
|
|
||||||
os.execute(string.format("amixer -q set %s 100%%", beautiful.volume.channel))
|
|
||||||
beautiful.volume.update()
|
|
||||||
end,
|
|
||||||
{description = "volume 100%", group = "hotkeys"}),
|
|
||||||
awful.key({ altkey, "Control" }, "0",
|
|
||||||
function ()
|
|
||||||
os.execute(string.format("amixer -q set %s 0%%", beautiful.volume.channel))
|
|
||||||
beautiful.volume.update()
|
|
||||||
end,
|
|
||||||
{description = "volume 0%", group = "hotkeys"}),
|
|
||||||
|
|
||||||
-- MPD control
|
|
||||||
awful.key({ altkey, "Control" }, "Up",
|
|
||||||
function ()
|
|
||||||
os.execute("mpc toggle")
|
|
||||||
beautiful.mpd.update()
|
|
||||||
end,
|
|
||||||
{description = "mpc toggle", group = "widgets"}),
|
|
||||||
awful.key({ altkey, "Control" }, "Down",
|
|
||||||
function ()
|
|
||||||
os.execute("mpc stop")
|
|
||||||
beautiful.mpd.update()
|
|
||||||
end,
|
|
||||||
{description = "mpc stop", group = "widgets"}),
|
|
||||||
awful.key({ altkey, "Control" }, "Left",
|
|
||||||
function ()
|
|
||||||
os.execute("mpc prev")
|
|
||||||
beautiful.mpd.update()
|
|
||||||
end,
|
|
||||||
{description = "mpc prev", group = "widgets"}),
|
|
||||||
awful.key({ altkey, "Control" }, "Right",
|
|
||||||
function ()
|
|
||||||
os.execute("mpc next")
|
|
||||||
beautiful.mpd.update()
|
|
||||||
end,
|
|
||||||
{description = "mpc next", group = "widgets"}),
|
|
||||||
awful.key({ altkey }, "0",
|
|
||||||
function ()
|
|
||||||
local common = { text = "MPD widget ", position = "top_middle", timeout = 2 }
|
|
||||||
if beautiful.mpd.timer.started then
|
|
||||||
beautiful.mpd.timer:stop()
|
|
||||||
common.text = common.text .. lain.util.markup.bold("OFF")
|
|
||||||
else
|
|
||||||
beautiful.mpd.timer:start()
|
|
||||||
common.text = common.text .. lain.util.markup.bold("ON")
|
|
||||||
end
|
|
||||||
naughty.notify(common)
|
|
||||||
end,
|
|
||||||
{description = "mpc on/off", group = "widgets"}),
|
|
||||||
|
|
||||||
-- Copy primary to clipboard (terminals to gtk)
|
|
||||||
awful.key({ modkey }, "c", function () awful.spawn.with_shell("xsel | xsel -i -b") end,
|
|
||||||
{description = "copy terminal to gtk", group = "hotkeys"}),
|
|
||||||
-- Copy clipboard to primary (gtk to terminals)
|
|
||||||
awful.key({ modkey }, "v", function () awful.spawn.with_shell("xsel -b | xsel") end,
|
|
||||||
{description = "copy gtk to terminal", group = "hotkeys"}),
|
|
||||||
|
|
||||||
-- User programs
|
|
||||||
awful.key({ modkey }, "q", function () awful.spawn(browser) end,
|
|
||||||
{description = "run browser", group = "launcher"}),
|
|
||||||
awful.key({ modkey }, "a", function () awful.spawn(gui_editor) end,
|
|
||||||
{description = "run gui editor", group = "launcher"}),
|
|
||||||
|
|
||||||
awful.key({ modkey }, "p", function() menubar.show() end,
|
|
||||||
{description = "show the menubar", group = "launcher"}),
|
|
||||||
|
|
||||||
-- Default
|
|
||||||
--[[ Menubar
|
|
||||||
awful.key({ modkey }, "p", function() menubar.show() end,
|
|
||||||
{description = "show the menubar", group = "launcher"})
|
|
||||||
--]]
|
|
||||||
--[[ dmenu
|
|
||||||
awful.key({ modkey }, "x", function ()
|
|
||||||
os.execute(string.format("dmenu_run -i -fn 'Monospace' -nb '%s' -nf '%s' -sb '%s' -sf '%s'",
|
|
||||||
beautiful.bg_normal, beautiful.fg_normal, beautiful.bg_focus, beautiful.fg_focus))
|
|
||||||
end,
|
|
||||||
{description = "show dmenu", group = "launcher"})
|
|
||||||
--]]
|
|
||||||
-- alternatively use rofi, a dmenu-like application with more features
|
|
||||||
-- check https://github.com/DaveDavenport/rofi for more details
|
|
||||||
--[[ rofi
|
|
||||||
awful.key({ modkey }, "x", function ()
|
|
||||||
os.execute(string.format("rofi -show %s -theme %s",
|
|
||||||
'run', 'dmenu'))
|
|
||||||
end,
|
|
||||||
{description = "show rofi", group = "launcher"}),
|
|
||||||
--]]
|
|
||||||
-- Prompt
|
|
||||||
awful.key({ modkey }, "r", function () awful.screen.focused().mypromptbox:run() end,
|
|
||||||
{description = "run prompt", group = "launcher"}),
|
|
||||||
|
|
||||||
awful.key({ modkey }, "x",
|
|
||||||
function ()
|
|
||||||
awful.prompt.run {
|
|
||||||
prompt = "Run Lua code: ",
|
|
||||||
textbox = awful.screen.focused().mypromptbox.widget,
|
|
||||||
exe_callback = awful.util.eval,
|
|
||||||
history_path = awful.util.get_cache_dir() .. "/history_eval"
|
|
||||||
}
|
|
||||||
end,
|
|
||||||
{description = "lua execute prompt", group = "awesome"})
|
|
||||||
--]]
|
|
||||||
)
|
|
||||||
|
|
||||||
clientkeys = my_table.join(
|
|
||||||
awful.key({ altkey, "Shift" }, "m", lain.util.magnify_client,
|
|
||||||
{description = "magnify client", group = "client"}),
|
|
||||||
awful.key({ modkey, }, "f",
|
|
||||||
function (c)
|
|
||||||
c.fullscreen = not c.fullscreen
|
|
||||||
c:raise()
|
|
||||||
end,
|
|
||||||
{description = "toggle fullscreen", group = "client"}),
|
|
||||||
awful.key({ modkey, "Shift" }, "c", function (c) c:kill() end,
|
|
||||||
{description = "close", group = "client"}),
|
|
||||||
awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle ,
|
|
||||||
{description = "toggle floating", group = "client"}),
|
|
||||||
awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end,
|
|
||||||
{description = "move to master", group = "client"}),
|
|
||||||
awful.key({ modkey, }, "o", function (c) c:move_to_screen() end,
|
|
||||||
{description = "move to screen", group = "client"}),
|
|
||||||
awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end,
|
|
||||||
{description = "toggle keep on top", group = "client"}),
|
|
||||||
awful.key({ modkey, }, "n",
|
|
||||||
function (c)
|
|
||||||
-- The client currently has the input focus, so it cannot be
|
|
||||||
-- minimized, since minimized clients can't have the focus.
|
|
||||||
c.minimized = true
|
|
||||||
end ,
|
|
||||||
{description = "minimize", group = "client"}),
|
|
||||||
awful.key({ modkey, }, "m",
|
|
||||||
function (c)
|
|
||||||
c.maximized = not c.maximized
|
|
||||||
c:raise()
|
|
||||||
end ,
|
|
||||||
{description = "maximize", group = "client"})
|
|
||||||
)
|
|
||||||
|
|
||||||
-- Bind all key numbers to tags.
|
|
||||||
-- Be careful: we use keycodes to make it works on any keyboard layout.
|
|
||||||
-- This should map on the top row of your keyboard, usually 1 to 9.
|
|
||||||
for i = 1, 9 do
|
|
||||||
-- Hack to only show tags 1 and 9 in the shortcut window (mod+s)
|
|
||||||
local descr_view, descr_toggle, descr_move, descr_toggle_focus
|
|
||||||
if i == 1 or i == 9 then
|
|
||||||
descr_view = {description = "view tag #", group = "tag"}
|
|
||||||
descr_toggle = {description = "toggle tag #", group = "tag"}
|
|
||||||
descr_move = {description = "move focused client to tag #", group = "tag"}
|
|
||||||
descr_toggle_focus = {description = "toggle focused client on tag #", group = "tag"}
|
|
||||||
end
|
|
||||||
globalkeys = my_table.join(globalkeys,
|
|
||||||
-- View tag only.
|
|
||||||
awful.key({ modkey }, "#" .. i + 9,
|
|
||||||
function ()
|
|
||||||
local screen = awful.screen.focused()
|
|
||||||
local tag = screen.tags[i]
|
|
||||||
if tag then
|
|
||||||
tag:view_only()
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
descr_view),
|
|
||||||
-- Toggle tag display.
|
|
||||||
awful.key({ modkey, "Control" }, "#" .. i + 9,
|
|
||||||
function ()
|
|
||||||
local screen = awful.screen.focused()
|
|
||||||
local tag = screen.tags[i]
|
|
||||||
if tag then
|
|
||||||
awful.tag.viewtoggle(tag)
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
descr_toggle),
|
|
||||||
-- Move client to tag.
|
|
||||||
awful.key({ modkey, "Shift" }, "#" .. i + 9,
|
|
||||||
function ()
|
|
||||||
if client.focus then
|
|
||||||
local tag = client.focus.screen.tags[i]
|
|
||||||
if tag then
|
|
||||||
client.focus:move_to_tag(tag)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
descr_move),
|
|
||||||
-- Toggle tag on focused client.
|
|
||||||
awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
|
|
||||||
function ()
|
|
||||||
if client.focus then
|
|
||||||
local tag = client.focus.screen.tags[i]
|
|
||||||
if tag then
|
|
||||||
client.focus:toggle_tag(tag)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
descr_toggle_focus)
|
|
||||||
)
|
|
||||||
end
|
|
||||||
|
|
||||||
clientbuttons = gears.table.join(
|
|
||||||
awful.button({ }, 1, function (c)
|
|
||||||
c:emit_signal("request::activate", "mouse_click", {raise = true})
|
|
||||||
end),
|
|
||||||
awful.button({ modkey }, 1, function (c)
|
|
||||||
c:emit_signal("request::activate", "mouse_click", {raise = true})
|
|
||||||
awful.mouse.client.move(c)
|
|
||||||
end),
|
|
||||||
awful.button({ modkey }, 3, function (c)
|
|
||||||
c:emit_signal("request::activate", "mouse_click", {raise = true})
|
|
||||||
awful.mouse.client.resize(c)
|
|
||||||
end)
|
|
||||||
)
|
|
||||||
|
|
||||||
globalkeys = gears.table.join(globalkeys,
|
|
||||||
-- Screenshot
|
|
||||||
awful.key({ }, "Print", flameshot_gui,
|
|
||||||
{description = "Take a screenshot of entire screen", group = "screenshot"}),
|
|
||||||
awful.key({ "Shift" }, "Print", flameshot_screen,
|
|
||||||
{description = "Take a screenshot of focused window", group = "screenshot"}),
|
|
||||||
awful.key({ "Ctrl" }, "Print", flameshot_full,
|
|
||||||
{description = "Take a screenshot of delay", group = "screenshot"}),
|
|
||||||
|
|
||||||
-- Krdl
|
|
||||||
awful.key({ modkey }, "#", decode_clipboard,
|
|
||||||
{description = "Decode GPG message from clipboard", group = "user"}),
|
|
||||||
|
|
||||||
-- Media keys
|
|
||||||
awful.key({ }, "XF86AudioRaiseVolume", function() os.execute("pactl set-sink-volume @DEFAULT_SINK@ +5%") end, {description = "Volume Up (+5%)", group = "mediakeys"}),
|
|
||||||
awful.key({ }, "XF86AudioLowerVolume", function() os.execute("pactl set-sink-volume @DEFAULT_SINK@ -5%") end, {description = "Volume Up (-5%)", group = "mediakeys"}),
|
|
||||||
awful.key({ }, "XF86AudioMute", function() os.execute("pactl set-sink-mute @DEFAULT_SINK@ toggle") end, {description = "Mute", group = "mediakeys"})
|
|
||||||
)
|
|
||||||
|
|
||||||
-- Set keys
|
|
||||||
root.keys(globalkeys)
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- {{{ Rules
|
|
||||||
-- Rules to apply to new clients (through the "manage" signal).
|
|
||||||
awful.rules.rules = {
|
|
||||||
-- All clients will match this rule.
|
|
||||||
{ rule = { },
|
|
||||||
properties = { border_width = beautiful.border_width,
|
|
||||||
border_color = beautiful.border_normal,
|
|
||||||
focus = awful.client.focus.filter,
|
|
||||||
raise = true,
|
|
||||||
keys = clientkeys,
|
|
||||||
buttons = clientbuttons,
|
|
||||||
screen = awful.screen.preferred,
|
|
||||||
placement = awful.placement.no_overlap+awful.placement.no_offscreen,
|
|
||||||
size_hints_honor = false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Titlebars
|
|
||||||
{ rule_any = { type = { "dialog", "normal" } },
|
|
||||||
properties = { titlebars_enabled = true } },
|
|
||||||
|
|
||||||
-- Set Firefox to always map on the first tag on screen 1.
|
|
||||||
{ rule = { class = "Firefox" },
|
|
||||||
properties = { screen = 1, tag = awful.util.tagnames[1] } },
|
|
||||||
|
|
||||||
{ rule = { class = "Gimp", role = "gimp-image-window" },
|
|
||||||
properties = { maximized = true } },
|
|
||||||
}
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- {{{ Signals
|
|
||||||
-- Signal function to execute when a new client appears.
|
|
||||||
client.connect_signal("manage", function (c)
|
|
||||||
-- Set the windows at the slave,
|
|
||||||
-- i.e. put it at the end of others instead of setting it master.
|
|
||||||
-- if not awesome.startup then awful.client.setslave(c) end
|
|
||||||
|
|
||||||
if awesome.startup and
|
|
||||||
not c.size_hints.user_position
|
|
||||||
and not c.size_hints.program_position then
|
|
||||||
-- Prevent clients from being unreachable after screen count changes.
|
|
||||||
awful.placement.no_offscreen(c)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
-- Add a titlebar if titlebars_enabled is set to true in the rules.
|
|
||||||
client.connect_signal("request::titlebars", function(c)
|
|
||||||
-- Custom
|
|
||||||
if beautiful.titlebar_fun then
|
|
||||||
beautiful.titlebar_fun(c)
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Default
|
|
||||||
-- buttons for the titlebar
|
|
||||||
local buttons = my_table.join(
|
|
||||||
awful.button({ }, 1, function()
|
|
||||||
c:emit_signal("request::activate", "titlebar", {raise = true})
|
|
||||||
awful.mouse.client.move(c)
|
|
||||||
end),
|
|
||||||
awful.button({ }, 2, function() c:kill() end),
|
|
||||||
awful.button({ }, 3, function()
|
|
||||||
c:emit_signal("request::activate", "titlebar", {raise = true})
|
|
||||||
awful.mouse.client.resize(c)
|
|
||||||
end)
|
|
||||||
)
|
|
||||||
|
|
||||||
awful.titlebar(c, {size = dpi(16)}) : setup {
|
|
||||||
{ -- Left
|
|
||||||
awful.titlebar.widget.iconwidget(c),
|
|
||||||
buttons = buttons,
|
|
||||||
layout = wibox.layout.fixed.horizontal
|
|
||||||
},
|
|
||||||
{ -- Middle
|
|
||||||
{ -- Title
|
|
||||||
align = "center",
|
|
||||||
widget = awful.titlebar.widget.titlewidget(c)
|
|
||||||
},
|
|
||||||
buttons = buttons,
|
|
||||||
layout = wibox.layout.flex.horizontal
|
|
||||||
},
|
|
||||||
{ -- Right
|
|
||||||
awful.titlebar.widget.floatingbutton (c),
|
|
||||||
awful.titlebar.widget.maximizedbutton(c),
|
|
||||||
awful.titlebar.widget.stickybutton (c),
|
|
||||||
awful.titlebar.widget.ontopbutton (c),
|
|
||||||
awful.titlebar.widget.closebutton (c),
|
|
||||||
layout = wibox.layout.fixed.horizontal()
|
|
||||||
},
|
|
||||||
layout = wibox.layout.align.horizontal
|
|
||||||
}
|
|
||||||
end)
|
|
||||||
|
|
||||||
-- Enable sloppy focus, so that focus follows mouse.
|
|
||||||
client.connect_signal("mouse::enter", function(c)
|
|
||||||
c:emit_signal("request::activate", "mouse_enter", {raise = vi_focus})
|
|
||||||
end)
|
|
||||||
|
|
||||||
client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end)
|
|
||||||
client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
|
|
||||||
|
|
||||||
-- possible workaround for tag preservation when switching back to default screen:
|
|
||||||
-- https://github.com/lcpz/awesome-copycats/issues/251
|
|
||||||
-- }}}
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit b386269d61cb8acb3d26fe37aed37eaae645a04f
|
|
Before Width: | Height: | Size: 212 B |
Before Width: | Height: | Size: 174 B |
Before Width: | Height: | Size: 242 B |
Before Width: | Height: | Size: 275 B |
Before Width: | Height: | Size: 244 B |
Before Width: | Height: | Size: 223 B |
Before Width: | Height: | Size: 231 B |
Before Width: | Height: | Size: 219 B |
Before Width: | Height: | Size: 238 B |
Before Width: | Height: | Size: 230 B |
Before Width: | Height: | Size: 240 B |
Before Width: | Height: | Size: 226 B |
Before Width: | Height: | Size: 154 B |
Before Width: | Height: | Size: 220 B |
Before Width: | Height: | Size: 241 B |
Before Width: | Height: | Size: 223 B |
Before Width: | Height: | Size: 179 B |
Before Width: | Height: | Size: 240 B |
Before Width: | Height: | Size: 203 B |
Before Width: | Height: | Size: 122 B |
Before Width: | Height: | Size: 206 B |
Before Width: | Height: | Size: 142 B |
Before Width: | Height: | Size: 232 B |
Before Width: | Height: | Size: 236 B |
Before Width: | Height: | Size: 236 B |
Before Width: | Height: | Size: 226 B |
Before Width: | Height: | Size: 217 B |
Before Width: | Height: | Size: 170 B |
Before Width: | Height: | Size: 216 B |
Before Width: | Height: | Size: 170 B |
Before Width: | Height: | Size: 154 B |
Before Width: | Height: | Size: 214 B |
Before Width: | Height: | Size: 176 B |
Before Width: | Height: | Size: 251 B |
Before Width: | Height: | Size: 176 B |
Before Width: | Height: | Size: 219 B |
Before Width: | Height: | Size: 174 B |
Before Width: | Height: | Size: 174 B |
Before Width: | Height: | Size: 161 B |
Before Width: | Height: | Size: 221 B |
Before Width: | Height: | Size: 171 B |
Before Width: | Height: | Size: 170 B |
Before Width: | Height: | Size: 155 B |
Before Width: | Height: | Size: 234 B |
Before Width: | Height: | Size: 165 B |
Before Width: | Height: | Size: 177 B |
Before Width: | Height: | Size: 195 B |
Before Width: | Height: | Size: 211 B |
Before Width: | Height: | Size: 196 B |
|
@ -1,372 +0,0 @@
|
||||||
--[[
|
|
||||||
|
|
||||||
Copland Awesome WM theme 2.0
|
|
||||||
github.com/lcpz
|
|
||||||
|
|
||||||
--]]
|
|
||||||
|
|
||||||
local gears = require("gears")
|
|
||||||
local lain = require("lain")
|
|
||||||
local awful = require("awful")
|
|
||||||
local wibox = require("wibox")
|
|
||||||
local dpi = require("beautiful.xresources").apply_dpi
|
|
||||||
|
|
||||||
local awesome, client, os = awesome, client, os
|
|
||||||
local my_table = awful.util.table or gears.table -- 4.{0,1} compatibility
|
|
||||||
|
|
||||||
local theme = {}
|
|
||||||
theme.dir = os.getenv("HOME") .. "/.config/awesome/themes/copland"
|
|
||||||
theme.wallpaper = theme.dir .. "/wall.png"
|
|
||||||
theme.font = "Terminus 10.5"
|
|
||||||
theme.fg_normal = "#BBBBBB"
|
|
||||||
theme.fg_focus = "#78A4FF"
|
|
||||||
theme.bg_normal = "#111111"
|
|
||||||
theme.bg_focus = "#111111"
|
|
||||||
theme.fg_urgent = "#000000"
|
|
||||||
theme.bg_urgent = "#FFFFFF"
|
|
||||||
theme.border_width = dpi(1)
|
|
||||||
theme.border_normal = "#141414"
|
|
||||||
theme.border_focus = "#93B6FF"
|
|
||||||
theme.taglist_fg_focus = "#FFFFFF"
|
|
||||||
theme.taglist_bg_focus = "#111111"
|
|
||||||
theme.taglist_bg_normal = "#111111"
|
|
||||||
theme.titlebar_bg_normal = "#191919"
|
|
||||||
theme.titlebar_bg_focus = "#262626"
|
|
||||||
theme.menu_height = dpi(16)
|
|
||||||
theme.menu_width = dpi(130)
|
|
||||||
theme.tasklist_disable_icon = true
|
|
||||||
theme.awesome_icon = theme.dir .."/icons/awesome.png"
|
|
||||||
theme.menu_submenu_icon = theme.dir .. "/icons/submenu.png"
|
|
||||||
theme.taglist_squares_sel = theme.dir .. "/icons/square_unsel.png"
|
|
||||||
theme.taglist_squares_unsel = theme.dir .. "/icons/square_unsel.png"
|
|
||||||
theme.vol = theme.dir .. "/icons/vol.png"
|
|
||||||
theme.vol_low = theme.dir .. "/icons/vol_low.png"
|
|
||||||
theme.vol_no = theme.dir .. "/icons/vol_no.png"
|
|
||||||
theme.vol_mute = theme.dir .. "/icons/vol_mute.png"
|
|
||||||
theme.disk = theme.dir .. "/icons/disk.png"
|
|
||||||
theme.ac = theme.dir .. "/icons/ac.png"
|
|
||||||
theme.bat = theme.dir .. "/icons/bat.png"
|
|
||||||
theme.bat_low = theme.dir .. "/icons/bat_low.png"
|
|
||||||
theme.bat_no = theme.dir .. "/icons/bat_no.png"
|
|
||||||
theme.play = theme.dir .. "/icons/play.png"
|
|
||||||
theme.pause = theme.dir .. "/icons/pause.png"
|
|
||||||
theme.stop = theme.dir .. "/icons/stop.png"
|
|
||||||
theme.layout_tile = theme.dir .. "/icons/tile.png"
|
|
||||||
theme.layout_tileleft = theme.dir .. "/icons/tileleft.png"
|
|
||||||
theme.layout_tilebottom = theme.dir .. "/icons/tilebottom.png"
|
|
||||||
theme.layout_tiletop = theme.dir .. "/icons/tiletop.png"
|
|
||||||
theme.layout_fairv = theme.dir .. "/icons/fairv.png"
|
|
||||||
theme.layout_fairh = theme.dir .. "/icons/fairh.png"
|
|
||||||
theme.layout_spiral = theme.dir .. "/icons/spiral.png"
|
|
||||||
theme.layout_dwindle = theme.dir .. "/icons/dwindle.png"
|
|
||||||
theme.layout_max = theme.dir .. "/icons/max.png"
|
|
||||||
theme.layout_fullscreen = theme.dir .. "/icons/fullscreen.png"
|
|
||||||
theme.layout_magnifier = theme.dir .. "/icons/magnifier.png"
|
|
||||||
theme.layout_floating = theme.dir .. "/icons/floating.png"
|
|
||||||
theme.useless_gap = 0
|
|
||||||
theme.titlebar_close_button_focus = theme.dir .. "/icons/titlebar/close_focus.png"
|
|
||||||
theme.titlebar_close_button_normal = theme.dir .. "/icons/titlebar/close_normal.png"
|
|
||||||
theme.titlebar_ontop_button_focus_active = theme.dir .. "/icons/titlebar/ontop_focus_active.png"
|
|
||||||
theme.titlebar_ontop_button_normal_active = theme.dir .. "/icons/titlebar/ontop_normal_active.png"
|
|
||||||
theme.titlebar_ontop_button_focus_inactive = theme.dir .. "/icons/titlebar/ontop_focus_inactive.png"
|
|
||||||
theme.titlebar_ontop_button_normal_inactive = theme.dir .. "/icons/titlebar/ontop_normal_inactive.png"
|
|
||||||
theme.titlebar_sticky_button_focus_active = theme.dir .. "/icons/titlebar/sticky_focus_active.png"
|
|
||||||
theme.titlebar_sticky_button_normal_active = theme.dir .. "/icons/titlebar/sticky_normal_active.png"
|
|
||||||
theme.titlebar_sticky_button_focus_inactive = theme.dir .. "/icons/titlebar/sticky_focus_inactive.png"
|
|
||||||
theme.titlebar_sticky_button_normal_inactive = theme.dir .. "/icons/titlebar/sticky_normal_inactive.png"
|
|
||||||
theme.titlebar_floating_button_focus_active = theme.dir .. "/icons/titlebar/floating_focus_active.png"
|
|
||||||
theme.titlebar_floating_button_normal_active = theme.dir .. "/icons/titlebar/floating_normal_active.png"
|
|
||||||
theme.titlebar_floating_button_focus_inactive = theme.dir .. "/icons/titlebar/floating_focus_inactive.png"
|
|
||||||
theme.titlebar_floating_button_normal_inactive = theme.dir .. "/icons/titlebar/floating_normal_inactive.png"
|
|
||||||
theme.titlebar_maximized_button_focus_active = theme.dir .. "/icons/titlebar/maximized_focus_active.png"
|
|
||||||
theme.titlebar_maximized_button_normal_active = theme.dir .. "/icons/titlebar/maximized_normal_active.png"
|
|
||||||
theme.titlebar_maximized_button_focus_inactive = theme.dir .. "/icons/titlebar/maximized_focus_inactive.png"
|
|
||||||
theme.titlebar_maximized_button_normal_inactive = theme.dir .. "/icons/titlebar/maximized_normal_inactive.png"
|
|
||||||
|
|
||||||
-- lain related
|
|
||||||
theme.layout_centerfair = theme.dir .. "/icons/centerfair.png"
|
|
||||||
theme.layout_termfair = theme.dir .. "/icons/termfair.png"
|
|
||||||
theme.layout_centerwork = theme.dir .. "/icons/centerwork.png"
|
|
||||||
|
|
||||||
local markup = lain.util.markup
|
|
||||||
local blue = theme.fg_focus
|
|
||||||
local red = "#EB8F8F"
|
|
||||||
local green = "#8FEB8F"
|
|
||||||
|
|
||||||
-- Textclock
|
|
||||||
--os.setlocale(os.getenv("LANG")) -- to localize the clock
|
|
||||||
local mytextclock = wibox.widget.textclock("<span font='Terminus 5'> </span>%H:%M ")
|
|
||||||
mytextclock.font = theme.font
|
|
||||||
|
|
||||||
-- Calendar
|
|
||||||
theme.cal = lain.widget.cal({
|
|
||||||
attach_to = { mytextclock },
|
|
||||||
notification_preset = {
|
|
||||||
font = "Terminus 11",
|
|
||||||
fg = theme.fg_normal,
|
|
||||||
bg = theme.bg_normal
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Mail IMAP check
|
|
||||||
--[[ commented because it needs to be set before use
|
|
||||||
theme.mail = lain.widget.imap({
|
|
||||||
timeout = 180,
|
|
||||||
server = "server",
|
|
||||||
mail = "mail",
|
|
||||||
password = "keyring get mail",
|
|
||||||
settings = function()
|
|
||||||
mail = ""
|
|
||||||
count = ""
|
|
||||||
|
|
||||||
if mailcount > 0 then
|
|
||||||
mail = "<span font='Terminus 5'> </span>Mail "
|
|
||||||
count = mailcount .. " "
|
|
||||||
end
|
|
||||||
|
|
||||||
widget:set_markup(markup(blue, mail) .. count)
|
|
||||||
end
|
|
||||||
})
|
|
||||||
--]]
|
|
||||||
|
|
||||||
-- MPD
|
|
||||||
local mpdicon = wibox.widget.imagebox()
|
|
||||||
theme.mpd = lain.widget.mpd({
|
|
||||||
settings = function()
|
|
||||||
if mpd_now.state == "play" then
|
|
||||||
title = mpd_now.title
|
|
||||||
artist = " " .. mpd_now.artist .. markup("#777777", " <span font='Terminus 2'> </span>|<span font='Terminus 5'> </span>")
|
|
||||||
mpdicon:set_image(theme.play)
|
|
||||||
elseif mpd_now.state == "pause" then
|
|
||||||
title = "mpd "
|
|
||||||
artist = "paused" .. markup("#777777", " |<span font='Terminus 5'> </span>")
|
|
||||||
mpdicon:set_image(theme.pause)
|
|
||||||
else
|
|
||||||
title = ""
|
|
||||||
artist = ""
|
|
||||||
mpdicon._private.image = nil
|
|
||||||
mpdicon:emit_signal("widget::redraw_needed")
|
|
||||||
mpdicon:emit_signal("widget::layout_changed")
|
|
||||||
end
|
|
||||||
|
|
||||||
widget:set_markup(markup.font(theme.font, markup(blue, title) .. artist))
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Battery
|
|
||||||
local baticon = wibox.widget.imagebox(theme.bat)
|
|
||||||
local batbar = wibox.widget {
|
|
||||||
forced_height = dpi(1),
|
|
||||||
forced_width = dpi(59),
|
|
||||||
color = theme.fg_normal,
|
|
||||||
background_color = theme.bg_normal,
|
|
||||||
margins = 1,
|
|
||||||
paddings = 1,
|
|
||||||
ticks = true,
|
|
||||||
ticks_size = dpi(6),
|
|
||||||
widget = wibox.widget.progressbar,
|
|
||||||
}
|
|
||||||
local batupd = lain.widget.bat({
|
|
||||||
settings = function()
|
|
||||||
if (not bat_now.status) or bat_now.status == "N/A" or type(bat_now.perc) ~= "number" then return end
|
|
||||||
|
|
||||||
if bat_now.status == "Charging" then
|
|
||||||
baticon:set_image(theme.ac)
|
|
||||||
if bat_now.perc >= 98 then
|
|
||||||
batbar:set_color(green)
|
|
||||||
elseif bat_now.perc > 50 then
|
|
||||||
batbar:set_color(theme.fg_normal)
|
|
||||||
elseif bat_now.perc > 15 then
|
|
||||||
batbar:set_color(theme.fg_normal)
|
|
||||||
else
|
|
||||||
batbar:set_color(red)
|
|
||||||
end
|
|
||||||
else
|
|
||||||
if bat_now.perc >= 98 then
|
|
||||||
batbar:set_color(green)
|
|
||||||
elseif bat_now.perc > 50 then
|
|
||||||
batbar:set_color(theme.fg_normal)
|
|
||||||
baticon:set_image(theme.bat)
|
|
||||||
elseif bat_now.perc > 15 then
|
|
||||||
batbar:set_color(theme.fg_normal)
|
|
||||||
baticon:set_image(theme.bat_low)
|
|
||||||
else
|
|
||||||
batbar:set_color(red)
|
|
||||||
baticon:set_image(theme.bat_no)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
batbar:set_value(bat_now.perc / 100)
|
|
||||||
end
|
|
||||||
})
|
|
||||||
local batbg = wibox.container.background(batbar, "#474747", gears.shape.rectangle)
|
|
||||||
local batwidget = wibox.container.margin(batbg, dpi(2), dpi(7), dpi(4), dpi(4))
|
|
||||||
|
|
||||||
-- /home fs
|
|
||||||
--[[ commented because it needs Gio/Glib >= 2.54
|
|
||||||
local fsicon = wibox.widget.imagebox(theme.disk)
|
|
||||||
local fsbar = wibox.widget {
|
|
||||||
forced_height = dpi(1),
|
|
||||||
forced_width = dpi(59),
|
|
||||||
color = theme.fg_normal,
|
|
||||||
background_color = theme.bg_normal,
|
|
||||||
margins = 1,
|
|
||||||
paddings = 1,
|
|
||||||
ticks = true,
|
|
||||||
ticks_size = dpi(6),
|
|
||||||
widget = wibox.widget.progressbar,
|
|
||||||
}
|
|
||||||
theme.fs = lain.widget.fs {
|
|
||||||
notification_preset = { fg = theme.fg_normal, bg = theme.bg_normal, font = "Terminus 10.5" },
|
|
||||||
settings = function()
|
|
||||||
if fs_now["/home"].percentage < 90 then
|
|
||||||
fsbar:set_color(theme.fg_normal)
|
|
||||||
else
|
|
||||||
fsbar:set_color("#EB8F8F")
|
|
||||||
end
|
|
||||||
fsbar:set_value(fs_now["/home"].percentage / 100)
|
|
||||||
end
|
|
||||||
}
|
|
||||||
local fsbg = wibox.container.background(fsbar, "#474747", gears.shape.rectangle)
|
|
||||||
local fswidget = wibox.container.margin(fsbg, dpi(2), dpi(7), dpi(4), dpi(4))
|
|
||||||
--]]
|
|
||||||
|
|
||||||
-- ALSA volume bar
|
|
||||||
local volicon = wibox.widget.imagebox(theme.vol)
|
|
||||||
theme.volume = lain.widget.alsabar {
|
|
||||||
width = dpi(59), border_width = 0, ticks = true, ticks_size = dpi(6),
|
|
||||||
notification_preset = { font = theme.font },
|
|
||||||
--togglechannel = "IEC958,3",
|
|
||||||
settings = function()
|
|
||||||
if volume_now.status == "off" then
|
|
||||||
volicon:set_image(theme.vol_mute)
|
|
||||||
elseif volume_now.level == 0 then
|
|
||||||
volicon:set_image(theme.vol_no)
|
|
||||||
elseif volume_now.level <= 50 then
|
|
||||||
volicon:set_image(theme.vol_low)
|
|
||||||
else
|
|
||||||
volicon:set_image(theme.vol)
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
colors = {
|
|
||||||
background = theme.bg_normal,
|
|
||||||
mute = red,
|
|
||||||
unmute = theme.fg_normal
|
|
||||||
}
|
|
||||||
}
|
|
||||||
theme.volume.tooltip.wibox.fg = theme.fg_focus
|
|
||||||
theme.volume.bar:buttons(my_table.join (
|
|
||||||
awful.button({}, 1, function()
|
|
||||||
awful.spawn(string.format("%s -e alsamixer", awful.util.terminal))
|
|
||||||
end),
|
|
||||||
awful.button({}, 2, function()
|
|
||||||
os.execute(string.format("%s set %s 100%%", theme.volume.cmd, theme.volume.channel))
|
|
||||||
theme.volume.update()
|
|
||||||
end),
|
|
||||||
awful.button({}, 3, function()
|
|
||||||
os.execute(string.format("%s set %s toggle", theme.volume.cmd, theme.volume.togglechannel or theme.volume.channel))
|
|
||||||
theme.volume.update()
|
|
||||||
end),
|
|
||||||
awful.button({}, 4, function()
|
|
||||||
os.execute(string.format("%s set %s 1%%+", theme.volume.cmd, theme.volume.channel))
|
|
||||||
theme.volume.update()
|
|
||||||
end),
|
|
||||||
awful.button({}, 5, function()
|
|
||||||
os.execute(string.format("%s set %s 1%%-", theme.volume.cmd, theme.volume.channel))
|
|
||||||
theme.volume.update()
|
|
||||||
end)
|
|
||||||
))
|
|
||||||
local volumebg = wibox.container.background(theme.volume.bar, "#474747", gears.shape.rectangle)
|
|
||||||
local volumewidget = wibox.container.margin(volumebg, dpi(2), dpi(7), dpi(4), dpi(4))
|
|
||||||
|
|
||||||
-- Weather
|
|
||||||
theme.weather = lain.widget.weather({
|
|
||||||
city_id = 2643743, -- placeholder (London)
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Separators
|
|
||||||
local first = wibox.widget.textbox(markup.font("Terminus 3", " "))
|
|
||||||
local spr = wibox.widget.textbox(' ')
|
|
||||||
local small_spr = wibox.widget.textbox(markup.font("Terminus 4", " "))
|
|
||||||
local bar_spr = wibox.widget.textbox(markup.font("Terminus 3", " ") .. markup.fontfg(theme.font, "#777777", "|") .. markup.font("Terminus 5", " "))
|
|
||||||
|
|
||||||
-- Eminent-like task filtering
|
|
||||||
local orig_filter = awful.widget.taglist.filter.all
|
|
||||||
|
|
||||||
-- Taglist label functions
|
|
||||||
awful.widget.taglist.filter.all = function (t, args)
|
|
||||||
if t.selected or #t:clients() > 0 then
|
|
||||||
return orig_filter(t, args)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function theme.at_screen_connect(s)
|
|
||||||
-- Quake application
|
|
||||||
s.quake = lain.util.quake({ app = awful.util.terminal })
|
|
||||||
|
|
||||||
-- If wallpaper is a function, call it with the screen
|
|
||||||
local wallpaper = theme.wallpaper
|
|
||||||
if type(wallpaper) == "function" then
|
|
||||||
wallpaper = wallpaper(s)
|
|
||||||
end
|
|
||||||
gears.wallpaper.maximized(wallpaper, s, true)
|
|
||||||
|
|
||||||
-- Tags
|
|
||||||
awful.tag(awful.util.tagnames, s, awful.layout.layouts)
|
|
||||||
|
|
||||||
-- Create a promptbox for each screen
|
|
||||||
s.mypromptbox = awful.widget.prompt()
|
|
||||||
-- Create an imagebox widget which will contains an icon indicating which layout we're using.
|
|
||||||
-- We need one layoutbox per screen.
|
|
||||||
s.mylayoutbox = awful.widget.layoutbox(s)
|
|
||||||
s.mylayoutbox:buttons(my_table.join(
|
|
||||||
awful.button({}, 1, function () awful.layout.inc( 1) end),
|
|
||||||
awful.button({}, 2, function () awful.layout.set( awful.layout.layouts[1] ) end),
|
|
||||||
awful.button({}, 3, function () awful.layout.inc(-1) end),
|
|
||||||
awful.button({}, 4, function () awful.layout.inc( 1) end),
|
|
||||||
awful.button({}, 5, function () awful.layout.inc(-1) end)))
|
|
||||||
|
|
||||||
-- Create a taglist widget
|
|
||||||
s.mytaglist = awful.widget.taglist(s, awful.widget.taglist.filter.all, awful.util.taglist_buttons)
|
|
||||||
|
|
||||||
-- Create a tasklist widget
|
|
||||||
s.mytasklist = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, awful.util.tasklist_buttons)
|
|
||||||
|
|
||||||
-- Create the wibox
|
|
||||||
s.mywibox = awful.wibar({ position = "top", screen = s, height = dpi(18), bg = theme.bg_normal, fg = theme.fg_normal })
|
|
||||||
|
|
||||||
-- Add widgets to the wibox
|
|
||||||
s.mywibox:setup {
|
|
||||||
layout = wibox.layout.align.horizontal,
|
|
||||||
{ -- Left widgets
|
|
||||||
layout = wibox.layout.fixed.horizontal,
|
|
||||||
small_spr,
|
|
||||||
s.mylayoutbox,
|
|
||||||
first,
|
|
||||||
bar_spr,
|
|
||||||
s.mytaglist,
|
|
||||||
first,
|
|
||||||
s.mypromptbox,
|
|
||||||
},
|
|
||||||
s.mytasklist, -- Middle widget
|
|
||||||
{ -- Right widgets
|
|
||||||
layout = wibox.layout.fixed.horizontal,
|
|
||||||
wibox.widget.systray(),
|
|
||||||
small_spr,
|
|
||||||
--theme.mail.widget,
|
|
||||||
mpdicon,
|
|
||||||
theme.mpd.widget,
|
|
||||||
baticon,
|
|
||||||
batwidget,
|
|
||||||
bar_spr,
|
|
||||||
--fsicon,
|
|
||||||
--fswidget,
|
|
||||||
bar_spr,
|
|
||||||
volicon,
|
|
||||||
volumewidget,
|
|
||||||
bar_spr,
|
|
||||||
mytextclock,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return theme
|
|
Before Width: | Height: | Size: 6.3 MiB |
|
@ -1,4 +0,0 @@
|
||||||
.include /etc/pulse/default.pa
|
|
||||||
|
|
||||||
load-sample-lazy x11-bell ~/.config/pulse/bell.wav
|
|
||||||
load-module module-x11-bell sample=x11-bell
|
|
15
.gitmodules
vendored
|
@ -1,15 +0,0 @@
|
||||||
[submodule ".oh-my-zsh"]
|
|
||||||
path = .oh-my-zsh
|
|
||||||
url = https://github.com/ohmyzsh/ohmyzsh.git
|
|
||||||
[submodule ".zplug"]
|
|
||||||
path = .zplug
|
|
||||||
url = https://github.com/zplug/zplug.git
|
|
||||||
[submodule ".config/awesome/lain"]
|
|
||||||
path = .config/awesome/lain
|
|
||||||
url = https://github.com/lcpz/lain.git
|
|
||||||
[submodule ".config/awesome/freedesktop"]
|
|
||||||
path = .config/awesome/freedesktop
|
|
||||||
url = https://github.com/lcpz/awesome-freedesktop.git
|
|
||||||
[submodule ".config/awesome/scratch"]
|
|
||||||
path = .config/awesome/scratch
|
|
||||||
url = https://github.com/proteansec/awesome-scratch.git
|
|
13
.ideavimrc
|
@ -1,13 +0,0 @@
|
||||||
let mapleader=" "
|
|
||||||
|
|
||||||
" https://github.com/easymotion/vim-easymotion
|
|
||||||
set easymotion
|
|
||||||
" https://github.com/terryma/vim-multiple-cursors
|
|
||||||
set multiple-cursors
|
|
||||||
" https://github.com/tpope/vim-commentary
|
|
||||||
set commentary
|
|
||||||
" https://github.com/tpope/vim-surround
|
|
||||||
set surround
|
|
||||||
|
|
||||||
" Copy to system clipboard as well
|
|
||||||
set clipboard+=unnamed
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit 7deaff71a2be08145d83f0177edbf2dfb3e91262
|
|
135
.vimrc
|
@ -1,135 +0,0 @@
|
||||||
if empty(glob('~/.vim/autoload/plug.vim'))
|
|
||||||
silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
|
|
||||||
\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
|
||||||
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Specify a directory for plugins
|
|
||||||
" - For Neovim: stdpath('data') . '/plugged'
|
|
||||||
" - Avoid using standard Vim directory names like 'plugin'
|
|
||||||
call plug#begin('~/.vim/plugged')
|
|
||||||
|
|
||||||
"" Editing Helper
|
|
||||||
" Vim Multiple Cursors
|
|
||||||
Plug 'terryma/vim-multiple-cursors'
|
|
||||||
|
|
||||||
" Vim Surround: Quickly surround stuff
|
|
||||||
Plug 'tpope/vim-surround'
|
|
||||||
|
|
||||||
"" Coding Assistance
|
|
||||||
" Ale: Runs fast and works well.
|
|
||||||
Plug 'dense-analysis/ale'
|
|
||||||
|
|
||||||
" Better HTML PHP support
|
|
||||||
Plug 'beanworks/vim-phpfmt'
|
|
||||||
|
|
||||||
" Guten Tag: Automatically generates ctags (variable names, function, classes)
|
|
||||||
Plug 'ludovicchabant/vim-gutentags'
|
|
||||||
|
|
||||||
" php.vim: PHP syntax higlighting and indent
|
|
||||||
Plug 'StanAngeloff/php.vim'
|
|
||||||
|
|
||||||
" PHP Namespace: Helps to keep track of namespaces and autcompletes them
|
|
||||||
Plug 'arnaud-lb/vim-php-namespace', {'for': 'php'}
|
|
||||||
|
|
||||||
"" Debugger
|
|
||||||
" v-debug: PHP Debugger with xdebug
|
|
||||||
Plug 'vim-vdebug/vdebug'
|
|
||||||
|
|
||||||
"" GUI
|
|
||||||
" NERDTree: Sidebar file tree
|
|
||||||
Plug 'scrooloose/nerdtree'
|
|
||||||
Plug 'Xuyuanp/nerdtree-git-plugin'
|
|
||||||
|
|
||||||
" MINIBUFXPL: A nice buffer explorer
|
|
||||||
Plug 'fholgado/minibufexpl.vim'
|
|
||||||
|
|
||||||
" Airline: Some file infos
|
|
||||||
Plug 'vim-airline/vim-airline'
|
|
||||||
|
|
||||||
"" Indexing
|
|
||||||
" ctrlp.vim: Quickly find files by name without navigating
|
|
||||||
Plug 'kien/ctrlp.vim'
|
|
||||||
|
|
||||||
" Ferret: Quickly finds file content
|
|
||||||
Plug 'wincent/ferret'
|
|
||||||
|
|
||||||
" Initialize plugin system
|
|
||||||
call plug#end()
|
|
||||||
|
|
||||||
let g:fugitive_gitlab_domains = ['http://gitlab.kreativ.rudel:8001', 'gitlab.kreativ.rudel']
|
|
||||||
let g:fugitive_gitea_domains = ['https://git.doggoat.de']
|
|
||||||
|
|
||||||
"" NERDTree config
|
|
||||||
" Autostart NERDTree on start
|
|
||||||
autocmd vimenter * NERDTree | wincmd w
|
|
||||||
let NERDTreeShowHidden=1
|
|
||||||
|
|
||||||
" Close vim if the only window left open is a NERDTree
|
|
||||||
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
|
|
||||||
|
|
||||||
"" ALE config
|
|
||||||
" Define fixers
|
|
||||||
let g:ale_fixers = {
|
|
||||||
\ '*': ['remove_trailing_lines', 'trim_whitespace'],
|
|
||||||
\ 'javascript': ['eslint'],
|
|
||||||
\ 'php': ['phpcbf'],
|
|
||||||
\ 'rust': ['rustfmt'],
|
|
||||||
\}
|
|
||||||
|
|
||||||
" Run linter on save
|
|
||||||
let g:ale_fix_on_save = 1
|
|
||||||
|
|
||||||
let g:ale_linters = {
|
|
||||||
\ 'rust': ['rls', 'cargo']
|
|
||||||
\}
|
|
||||||
|
|
||||||
" Enable completion where available.
|
|
||||||
let g:ale_completion_enabled = 1
|
|
||||||
set omnifunc=ale#completion#OmniFunc
|
|
||||||
|
|
||||||
"" Gutentags
|
|
||||||
" Auto generate ctags on startup
|
|
||||||
autocmd! User vim-gutentags call gutentags#setup_gutentags()
|
|
||||||
|
|
||||||
"" PHP
|
|
||||||
" PHP Namespace: Automatically use fully qualified name
|
|
||||||
function! IPhpExpandClass()
|
|
||||||
call PhpExpandClass()
|
|
||||||
call feedkeys('a', 'n')
|
|
||||||
endfunction
|
|
||||||
autocmd FileType php inoremap <Leader>e <Esc>:call IPhpExpandClass()<CR>
|
|
||||||
autocmd FileType php noremap <Leader>e :call PhpExpandClass()<CR>
|
|
||||||
|
|
||||||
"" vdebug config
|
|
||||||
" Set xdebug config
|
|
||||||
let g:vdebug_options = {'ide_key': 'PHPSTORM'}
|
|
||||||
let g:vdebug_options = {'break_on_open': 0}
|
|
||||||
let g:vdebug_options = {'server': '172.17.0.1'}
|
|
||||||
let g:vdebug_options = {'port': '9002'}
|
|
||||||
|
|
||||||
" Configure paths
|
|
||||||
let g:vdebug_options["path_maps"] = { "/var/www/html": "/home/leong/workspace/upwire-2019" }
|
|
||||||
|
|
||||||
" Don't break on open
|
|
||||||
let g:vdebug_options['break_on_open'] = 0
|
|
||||||
|
|
||||||
"" CtrlP config
|
|
||||||
" Self explainatory
|
|
||||||
let g:ctrlp_max_files=0
|
|
||||||
let g:ctrlp_max_depth=40
|
|
||||||
let g:ctrlp_custom_ignore = 'node_modules\|DS_Store\|git'
|
|
||||||
|
|
||||||
"" Vim Config
|
|
||||||
" Some autocompletion settings.
|
|
||||||
set completeopt+=longest,menuone,menu,preview
|
|
||||||
|
|
||||||
" Add clipboard support
|
|
||||||
set clipboard=unnamedplus
|
|
||||||
|
|
||||||
" Intendation
|
|
||||||
set tabstop=4
|
|
||||||
set softtabstop=4
|
|
||||||
set shiftwidth=4
|
|
||||||
set expandtab
|
|
||||||
set autoindent
|
|
|
@ -1,76 +0,0 @@
|
||||||
#########################################
|
|
||||||
# Aliases #
|
|
||||||
#########################################
|
|
||||||
|
|
||||||
#alias sudo="sudo "
|
|
||||||
alias ws="cd ~/workspace"
|
|
||||||
|
|
||||||
alias open="xdg-open"
|
|
||||||
|
|
||||||
alias dc-up="docker-compose up"
|
|
||||||
alias dc-upd="docker-compose up -d"
|
|
||||||
alias dc-down="docker-compose down"
|
|
||||||
|
|
||||||
alias dss-s="docker-sync-stack start"
|
|
||||||
|
|
||||||
# Mirons docker init script
|
|
||||||
alias docker-init="bash <(curl -s https://raw.githubusercontent.com/micron/docker-setup/master/init.sh)"
|
|
||||||
|
|
||||||
# Quick install script for projects
|
|
||||||
alias krinstall="echo '###=== NodeJS ===###' && npm install && echo '###=== Bower ===###' && bower install && echo '###=== Composer ===###' && composer install && echo '###=== Finished ===###'"
|
|
||||||
|
|
||||||
# Quickly ZIP and Delete on enter press
|
|
||||||
alias quickzip='ALEXAFILE="${PWD##*/}_$(cat /dev/urandom | env LC_CTYPE=C tr -cd 'a-f0-9' | head -c 32).zip"; zip ${ALEXAFILE} -r * && echo "Press enter to delete file." && read && rm ${ALEXAFILE}'
|
|
||||||
|
|
||||||
copydl() {
|
|
||||||
|
|
||||||
if [ $# -eq 1 ]
|
|
||||||
then
|
|
||||||
dlFileCount=1
|
|
||||||
elif [ $# -eq 2 ]
|
|
||||||
then
|
|
||||||
dlFileCount=$1
|
|
||||||
fi
|
|
||||||
|
|
||||||
lastdlFiles=$(ls -1tp ~/Downloads | head -$dlFileCount)
|
|
||||||
|
|
||||||
if [ $# -eq 1 ]
|
|
||||||
then
|
|
||||||
while read line; do
|
|
||||||
cp "$HOME/Downloads/$line" "$1"
|
|
||||||
done <<< "$lastdlFiles"
|
|
||||||
elif [ $# -eq 2 ]
|
|
||||||
then
|
|
||||||
while read line; do
|
|
||||||
cp "$HOME/Downloads/$line" "$2"
|
|
||||||
done <<< "$lastdlFiles"
|
|
||||||
fi
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
ytplaylist(){
|
|
||||||
youtube-dl --get-id "$1" | awk '{print "https://www.youtube.com/watch?v=" $0;}' | vlc -
|
|
||||||
}
|
|
||||||
|
|
||||||
alias dl-wpcli="wget https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar"
|
|
||||||
alias dl-wp="curl https://wordpress.org/latest.tar.gz | tar -xzv"
|
|
||||||
|
|
||||||
alias gitroot='cd $(git rev-parse --show-toplevel)'
|
|
||||||
alias dc-clearmysql='find $(git rev-parse --show-toplevel)/docker/lib/mysql -mindepth 1 -maxdepth 1 -not -name '.gitkeep' -exec rm -rf "{}" \;'
|
|
||||||
|
|
||||||
alias gpgcb="xsel --clipboard | sed 's/^ *//g' | gpg2 -d"
|
|
||||||
|
|
||||||
if [ -n "$(command -v vimx)" ]; then
|
|
||||||
alias oldvim='vim'
|
|
||||||
alias vim='vimx'
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "$(command -v bat)" ]; then
|
|
||||||
alias cat='bat'
|
|
||||||
alias oldcat='cat'
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "$(command -v exa)" ]; then
|
|
||||||
alias ls='exa'
|
|
||||||
alias oldls='ls --color=tty'
|
|
||||||
fi
|
|
|
@ -1,13 +0,0 @@
|
||||||
# Don't check for new mail
|
|
||||||
export MAILCHECK=1
|
|
||||||
|
|
||||||
export GOPATH=$HOME/.golang
|
|
||||||
export FONTCONFIG_PATH=/etc/fonts
|
|
||||||
|
|
||||||
export UID=$(id -u)
|
|
||||||
export GID=$(id -g)
|
|
||||||
|
|
||||||
export PATH=$PATH:~/.local/bin:~/bin:
|
|
||||||
export PATH=$PATH:$(composer global config bin-dir --absolute -q)
|
|
||||||
|
|
||||||
export EDITOR=vim
|
|
|
@ -1,2 +0,0 @@
|
||||||
zplug "romkatv/powerlevel10k", use:powerlevel10k.zsh-theme
|
|
||||||
zplug "rupa/z", use:z.sh
|
|
1
.zplug
|
@ -1 +0,0 @@
|
||||||
Subproject commit c4dea766566b168a32dbfa8d10335e525ce39fcc
|
|
13
.zshrc
|
@ -1,13 +0,0 @@
|
||||||
# Use Oh My Zsh
|
|
||||||
export ZSH="$HOME/.oh-my-zsh"
|
|
||||||
source $ZSH/oh-my-zsh.sh
|
|
||||||
|
|
||||||
export NVM_DIR="$HOME/.nvm"
|
|
||||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
|
||||||
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
|
|
||||||
|
|
||||||
# Use zplug
|
|
||||||
source ~/.zplug/init.zsh
|
|
||||||
|
|
||||||
# Use custom config
|
|
||||||
source ~/.zcustom/init.zsh
|
|
|
@ -1 +0,0 @@
|
||||||
README.md.html
|
|
|
@ -1,29 +0,0 @@
|
||||||
# Developer Configuration
|
|
||||||
|
|
||||||
## zsh
|
|
||||||
|
|
||||||
### Oh My Zsh
|
|
||||||
https://github.com/ohmyzsh/ohmyzsh
|
|
||||||
```bash
|
|
||||||
sh -c "$(curl -fsSL \
|
|
||||||
https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
|
|
||||||
```
|
|
||||||
|
|
||||||
### zplug
|
|
||||||
https://github.com/zplug/zplug
|
|
||||||
```bash
|
|
||||||
curl -sL --proto-redir -all,https \
|
|
||||||
https://raw.githubusercontent.com/zplug/installer/master/installer.zsh | zsh
|
|
||||||
```
|
|
||||||
|
|
||||||
## Vim
|
|
||||||
|
|
||||||
### Vim Plug
|
|
||||||
https://github.com/junegunn/vim-plug
|
|
||||||
```bash
|
|
||||||
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
|
|
||||||
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
|
||||||
```
|
|
||||||
|
|
||||||
<style class="fallback">body{visibility:hidden}</style><script>markdeepOptions={tocStyle:'long'};</script>
|
|
||||||
<!-- Markdeep: --><script src="https://casual-effects.com/markdeep/latest/markdeep.min.js?" charset="utf-8"></script>
|
|
|
@ -0,0 +1,205 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Categories=Utility;X-SuSE-SyncUtility;
|
||||||
|
Type=Application
|
||||||
|
Exec=nextcloud
|
||||||
|
Name=Nextcloud desktop sync client
|
||||||
|
Comment=Nextcloud desktop synchronization client
|
||||||
|
GenericName=Folder Sync
|
||||||
|
Icon=Nextcloud
|
||||||
|
Keywords=Nextcloud;syncing;file;sharing;
|
||||||
|
X-GNOME-Autostart-Delay=3
|
||||||
|
MimeType=application/vnd.nextcloud;
|
||||||
|
Actions=Quit;
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
Comment[oc]=Nextcloud sincronizacion del client
|
||||||
|
GenericName[oc]=Dorsièr de Sincronizacion
|
||||||
|
Name[oc]=Nextcloud sincronizacion del client
|
||||||
|
Icon[oc]=Nextcloud
|
||||||
|
Comment[ar]=Nextcloud زبون مزامنة مكتبي
|
||||||
|
GenericName[ar]=مزامنة المجلد
|
||||||
|
Name[ar]=Nextcloud زبون مزامنة مكتبي
|
||||||
|
Icon[ar]=Nextcloud
|
||||||
|
Comment[bg_BG]=Nextcloud клиент за десктоп синхронизация
|
||||||
|
GenericName[bg_BG]=Синхронизиране на папката
|
||||||
|
Name[bg_BG]=Nextcloud клиент десктоп синхронизация
|
||||||
|
Icon[bg_BG]=Nextcloud
|
||||||
|
Comment[ca]=Client de sincronització d'escriptori Nextcloud
|
||||||
|
GenericName[ca]=Sincronització de carpetes
|
||||||
|
Name[ca]=Client de sincronització d'escriptori Nextcloud
|
||||||
|
Icon[ca]=Nextcloud
|
||||||
|
Comment[da]=Nextcloud skrivebordsklient til synkronisering
|
||||||
|
GenericName[da]=Mappesynkronisering
|
||||||
|
Name[da]=Nextcloud skrivebordsklient til synk
|
||||||
|
Icon[da]=Nextcloud
|
||||||
|
Comment[de]=Nextcloud Desktop-Synchronisationsclient
|
||||||
|
GenericName[de]=Ordner-Synchronisation
|
||||||
|
Name[de]=Nextcloud Desktop-Synchronisationsclient
|
||||||
|
Icon[de]=Nextcloud
|
||||||
|
Comment[ja_JP]=Nextcloud デスクトップ同期クライアント
|
||||||
|
GenericName[ja_JP]=フォルダー同期
|
||||||
|
Name[ja_JP]=Nextcloud デスクトップ同期クライアント
|
||||||
|
Icon[ja_JP]=Nextcloud
|
||||||
|
Comment[el]=@ΟΝΟΜΑ_ΕΦΑΡΜΟΓΗΣ@ συγχρονισμός επιφάνειας εργασίας πελάτη
|
||||||
|
GenericName[el]=Συγχρονισμός φακέλου
|
||||||
|
Name[el]=@ΟΝΟΜΑ_ΕΦΑΡΜΟΓΗΣ@ συγχρονισμός επιφάνειας εργασίας πελάτη
|
||||||
|
Icon[el]=Nextcloud
|
||||||
|
Comment[en_GB]=Nextcloud desktop synchronisation client
|
||||||
|
GenericName[en_GB]=Folder Sync
|
||||||
|
Name[en_GB]=Nextcloud desktop sync client
|
||||||
|
Icon[en_GB]=Nextcloud
|
||||||
|
Comment[es]=Nextcloud cliente de sincronización de escritorio
|
||||||
|
GenericName[es]=Sincronización de carpeta
|
||||||
|
Name[es]=Nextcloud cliente de sincronización de escritorio
|
||||||
|
Icon[es]=Nextcloud
|
||||||
|
Comment[de_DE]=Nextcloud Desktop-Synchronisationsclient
|
||||||
|
GenericName[de_DE]=Ordner-Synchronisation
|
||||||
|
Name[de_DE]=Nextcloud Desktop-Synchronisationsclient
|
||||||
|
Icon[de_DE]=Nextcloud
|
||||||
|
Comment[eu]=Nextcloud mahaigaineko sinkronizazio bezeroa
|
||||||
|
GenericName[eu]=Karpetaren sinkronizazioa
|
||||||
|
Name[eu]=Nextcloud mahaigaineko sinkronizazio bezeroa
|
||||||
|
Icon[eu]=Nextcloud
|
||||||
|
GenericName[fa]=همسان سازی پوشهها
|
||||||
|
Name[fa]=nextcloud نسخهی همسان سازی مشتری
|
||||||
|
Icon[fa]=Nextcloud
|
||||||
|
Comment[fr]=Synchronisez vos dossiers avec un serveur Nextcloud
|
||||||
|
GenericName[fr]=Synchronisation de dossier
|
||||||
|
Name[fr]=Client de synchronisation Nextcloud
|
||||||
|
Icon[fr]=Nextcloud
|
||||||
|
Comment[gl]=Nextcloud cliente de sincronización para escritorio
|
||||||
|
GenericName[gl]=Sincronizar Cartafol
|
||||||
|
Name[gl]=Nextcloud cliente de sincronización para escritorio
|
||||||
|
Icon[gl]=Nextcloud
|
||||||
|
Comment[he]=Nextcloud לקוח סנכון שולחן עבודה
|
||||||
|
GenericName[he]=סנכון תיקייה
|
||||||
|
Name[he]=Nextcloud לקוח סנכרון שולחן עבודה
|
||||||
|
Icon[he]=Nextcloud
|
||||||
|
Comment[ia]=Nextcloud cliente de synchronisation pro scriptorio
|
||||||
|
GenericName[ia]=Synchronisar Dossier
|
||||||
|
Name[ia]=Nextcloud cliente de synchronisation pro scriptorio
|
||||||
|
Icon[ia]=Nextcloud
|
||||||
|
Comment[id]=Klien sinkronisasi desktop Nextcloud
|
||||||
|
GenericName[id]=Folder Sync
|
||||||
|
Name[id]=Klien sync desktop Nextcloud
|
||||||
|
Icon[id]=Nextcloud
|
||||||
|
Comment[is]=Nextcloud skjáborðsforrit samstillingar
|
||||||
|
GenericName[is]=Samstilling möppu
|
||||||
|
Name[is]=Nextcloud skjáborðsforrit samstillingar
|
||||||
|
Icon[is]=Nextcloud
|
||||||
|
Comment[it]=Client di sincronizzazione del desktop di Nextcloud
|
||||||
|
GenericName[it]=Sincronizzazione cartella
|
||||||
|
Name[it]=Client di sincronizzazione del desktop di Nextcloud
|
||||||
|
Icon[it]=Nextcloud
|
||||||
|
Comment[ko]=Nextcloud 데스크톱 동기화 클라이언트
|
||||||
|
GenericName[ko]=폴더 동기화
|
||||||
|
Name[ko]=Nextcloud 데스크톱 동기화 클라이언트
|
||||||
|
Icon[ko]=Nextcloud
|
||||||
|
Comment[hu_HU]=Nextcloud asztali szinkronizációs kliens
|
||||||
|
GenericName[hu_HU]=Könyvtár szinkronizálás
|
||||||
|
Name[hu_HU]=Nextcloud asztali szinkr. kliens
|
||||||
|
Icon[hu_HU]=Nextcloud
|
||||||
|
Comment[af_ZA]=Nextcloud werkskermsinchroniseerkliënt
|
||||||
|
GenericName[af_ZA]=Vouersinchronisering
|
||||||
|
Name[af_ZA]=Nextcloud werkskermsinchroniseerkliënt
|
||||||
|
Icon[af_ZA]=Nextcloud
|
||||||
|
Comment[nl]=Nextcloud desktop synchronisatie client
|
||||||
|
GenericName[nl]=Mappen sync
|
||||||
|
Name[nl]=Nextcloud desktop sync client
|
||||||
|
Icon[nl]=Nextcloud
|
||||||
|
Comment[et_EE]=Nextcloud sünkroonimise klient töölauale
|
||||||
|
GenericName[et_EE]=Kaustade sünkroonimine
|
||||||
|
Name[et_EE]=Nextcloud sünkroonimise klient töölauale
|
||||||
|
Icon[et_EE]=Nextcloud
|
||||||
|
Comment[pl]=Nextcloud klient synchronizacji dla komputerów stacjonarnych
|
||||||
|
GenericName[pl]=Folder Synchronizacji
|
||||||
|
Name[pl]=Nextcloud klient synchronizacji dla komputerów stacjonarnych
|
||||||
|
Icon[pl]=Nextcloud
|
||||||
|
Comment[pt_BR]=Nextcloud cliente de sincronização do computador
|
||||||
|
GenericName[pt_BR]=Sincronização de Pasta
|
||||||
|
Name[pt_BR]=Nextcloud cliente de sincronização de desktop
|
||||||
|
Icon[pt_BR]=Nextcloud
|
||||||
|
Comment[cs_CZ]=Nextcloud počítačový synchronizační klient
|
||||||
|
GenericName[cs_CZ]=Synchronizace adresáře
|
||||||
|
Name[cs_CZ]=Nextcloud počítačový synchronizační klient
|
||||||
|
Icon[cs_CZ]=Nextcloud
|
||||||
|
Comment[ru]=Настольный клиент синхронизации Nextcloud
|
||||||
|
GenericName[ru]=Синхронизация каталогов
|
||||||
|
Name[ru]=Настольный клиент синхронизации Nextcloud
|
||||||
|
Icon[ru]=Nextcloud
|
||||||
|
Comment[sl]=Nextcloud ‒ Program za usklajevanje datotek z namizjem
|
||||||
|
GenericName[sl]=Usklajevanje map
|
||||||
|
Name[sl]=Nextcloud ‒ Program za usklajevanje datotek z namizjem
|
||||||
|
Icon[sl]=Nextcloud
|
||||||
|
Comment[sq]=Klient njëkohësimesh Nextcloud për desktop
|
||||||
|
GenericName[sq]=Njëkohësim Dosjesh
|
||||||
|
Name[sq]=Klient njëkohësimesh Nextcloud për desktop
|
||||||
|
Icon[sq]=Nextcloud
|
||||||
|
Comment[fi_FI]=Nextcloud työpöytäsynkronointisovellus
|
||||||
|
GenericName[fi_FI]=Kansion synkronointi
|
||||||
|
Name[fi_FI]=Nextcloud työpöytäsynkronointisovellus
|
||||||
|
Icon[fi_FI]=Nextcloud
|
||||||
|
Comment[sv]=Nextcloud desktop synkroniseringsklient
|
||||||
|
GenericName[sv]=Mappsynk
|
||||||
|
Name[sv]=Nextcloud desktop synk-klient
|
||||||
|
Icon[sv]=Nextcloud
|
||||||
|
Comment[tr]=Nextcloud masaüstü eşitleme istemcisi
|
||||||
|
GenericName[tr]=Dosya Eşitleme
|
||||||
|
Name[tr]=Nextcloud masaüstü eşitleme istemcisi
|
||||||
|
Icon[tr]=Nextcloud
|
||||||
|
Comment[uk]=Настільний клієнт синхронізації Nextcloud
|
||||||
|
GenericName[uk]=Синхронізація теки
|
||||||
|
Name[uk]=Настільний клієнт синхронізації Nextcloud
|
||||||
|
Icon[uk]=Nextcloud
|
||||||
|
Comment[ro]=Nextcloud client de sincronizare pe desktop
|
||||||
|
GenericName[ro]=Sincronizare director
|
||||||
|
Name[ro]=Nextcloud client de sincronizare pe desktop
|
||||||
|
Icon[ro]=Nextcloud
|
||||||
|
Comment[zh_CN]=Nextcloud 桌面同步客户端
|
||||||
|
GenericName[zh_CN]=文件夹同步
|
||||||
|
Name[zh_CN]=Nextcloud 桌面同步客户端
|
||||||
|
Icon[zh_CN]=Nextcloud
|
||||||
|
Comment[zh_HK]=桌面版同步客户端
|
||||||
|
Comment[zh_TW]=Nextcloud 桌面同步客戶端
|
||||||
|
GenericName[zh_TW]=資料夾同步
|
||||||
|
Name[zh_TW]=Nextcloud 桌面同步客戶端
|
||||||
|
Icon[zh_TW]=Nextcloud
|
||||||
|
Comment[es_AR]=Cliente de sincronización para escritorio Nextcloud
|
||||||
|
GenericName[es_AR]=Sincronización de directorio
|
||||||
|
Name[es_AR]=Cliente de sincronización para escritorio Nextcloud
|
||||||
|
Icon[es_AR]=Nextcloud
|
||||||
|
Comment[lt_LT]=Nextcloud darbalaukio sinchronizavimo programa
|
||||||
|
GenericName[lt_LT]=Katalogo sinchnorizacija
|
||||||
|
Name[lt_LT]=Nextcloud darbalaukio programa
|
||||||
|
Icon[lt_LT]=Nextcloud
|
||||||
|
Comment[th_TH]=Nextcloud ไคลเอนต์ประสานข้อมูลเดสก์ท็อป
|
||||||
|
GenericName[th_TH]=ประสานข้อมูลโฟลเดอร์
|
||||||
|
Name[th_TH]= Nextcloud ไคลเอนต์ประสานข้อมูลเดสก์ท็อป
|
||||||
|
Icon[th_TH]=Nextcloud
|
||||||
|
Comment[es_MX]=Cliente de escritorio para sincronziación de Nextcloud
|
||||||
|
GenericName[es_MX]=Sincronización de Carpetas
|
||||||
|
Name[es_MX]=Cliente de escritorio para sincronziación de Nextcloud
|
||||||
|
Icon[es_MX]=Nextcloud
|
||||||
|
Comment[nb_NO]=Nextcloud skrivebordssynkroniseringsklient
|
||||||
|
GenericName[nb_NO]=Mappesynkronisering
|
||||||
|
Name[nb_NO]=Nextcloud skrivebordssynkroniseringsklient
|
||||||
|
Icon[nb_NO]=Nextcloud
|
||||||
|
Comment[nn_NO]=Nextcloud klient for å synkronisera frå skrivebord
|
||||||
|
GenericName[nn_NO]=Mappe synkronisering
|
||||||
|
Name[nn_NO]=Nextcloud klient for å synkronisera frå skrivebord
|
||||||
|
Icon[nn_NO]=Nextcloud
|
||||||
|
Comment[pt_PT]=Nextcloud - Cliente de Sincronização para PC
|
||||||
|
GenericName[pt_PT]=Sincronizar Pasta
|
||||||
|
Name[pt_PT]=Nextcloud - Cliente de Sincronização para PC
|
||||||
|
Icon[pt_PT]=Nextcloud
|
||||||
|
Icon[km]=Nextcloud
|
||||||
|
Comment[lb]=Nextcloud Desktop Synchronisatioun Client
|
||||||
|
GenericName[lb]=Dossier Dync
|
||||||
|
Name[lb]=Nextcloud Desktop Sync Client
|
||||||
|
Icon[lb]=Nextcloud
|
||||||
|
|
||||||
|
|
||||||
|
[Desktop Action Quit]
|
||||||
|
Exec=nextcloud --quit
|
||||||
|
Name=Quit Nextcloud
|
||||||
|
Icon=nextcloud
|
15
desktop/.config/autostart/jetbrains-toolbox.desktop
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Icon=/home/dhalucario/.local/share/JetBrains/Toolbox/toolbox.svg
|
||||||
|
Exec=/home/dhalucario/.local/share/JetBrains/Toolbox/bin/jetbrains-toolbox --minimize
|
||||||
|
Version=1.0
|
||||||
|
Type=Application
|
||||||
|
Categories=Development
|
||||||
|
Name=JetBrains Toolbox
|
||||||
|
StartupWMClass=jetbrains-toolbox
|
||||||
|
Terminal=false
|
||||||
|
MimeType=x-scheme-handler/jetbrains;
|
||||||
|
X-GNOME-Autostart-enabled=true
|
||||||
|
StartupNotify=false
|
||||||
|
X-GNOME-Autostart-Delay=10
|
||||||
|
X-MATE-Autostart-Delay=10
|
||||||
|
X-KDE-autostart-after=panel
|
14
desktop/.config/autostart/mozilla-thunderbird.desktop
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Name=Thunderbird
|
||||||
|
GenericName=Email
|
||||||
|
Comment=Send and Receive Email
|
||||||
|
Exec=thunderbird %u
|
||||||
|
TryExec=thunderbird
|
||||||
|
Icon=thunderbird
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
MimeType=message/rfc822;x-scheme-handler/mailto;
|
||||||
|
StartupNotify=true
|
||||||
|
Categories=Network;Email;
|
||||||
|
X-Desktop-File-Install-Version=0.24
|
31
desktop/.config/autostart/org.mozilla.Thunderbird.desktop
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Name=Thunderbird
|
||||||
|
GenericName=Email
|
||||||
|
Comment=Send and Receive Email
|
||||||
|
Exec=/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=thunderbird --file-forwarding org.mozilla.Thunderbird @@u %u @@
|
||||||
|
Icon=org.mozilla.Thunderbird
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
MimeType=message/rfc822;x-scheme-handler/mailto;
|
||||||
|
StartupNotify=true
|
||||||
|
Categories=Network;Email;
|
||||||
|
Name[cs]=Poštovní klient Thunderbird
|
||||||
|
Name[ca]=Client de correu Thunderbird
|
||||||
|
Name[fi]=Thunderbird-sähköposti
|
||||||
|
Name[fr]=Messagerie Thunderbird
|
||||||
|
Name[pl]=Klient poczty Thunderbird
|
||||||
|
Name[pt_BR]=Cliente de E-mail Thunderbird
|
||||||
|
Name[sv]=E-postklienten Thunderbird
|
||||||
|
Comment[ca]=Llegiu i escriviu correu
|
||||||
|
Comment[cs]=Čtení a psaní pošty
|
||||||
|
Comment[de]=Emails lesen und verfassen
|
||||||
|
Comment[fi]=Lue ja kirjoita sähköposteja
|
||||||
|
Comment[fr]=Lire et écrire des courriels
|
||||||
|
Comment[it]=Leggere e scrivere email
|
||||||
|
Comment[ja]=メールの読み書き
|
||||||
|
Comment[pl]=Czytanie i wysyłanie e-maili
|
||||||
|
Comment[pt_BR]=Ler e escrever suas mensagens
|
||||||
|
Comment[sv]=Läs och skriv e-post
|
||||||
|
X-Desktop-File-Install-Version=0.26
|
||||||
|
X-Flatpak=org.mozilla.Thunderbird
|
10
desktop/.config/autostart/teams-for-linux.desktop
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Name=Teams for Linux
|
||||||
|
Exec=/opt/teams-for-linux/teams-for-linux %U
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
Icon=teams-for-linux
|
||||||
|
StartupWMClass=teams-for-linux
|
||||||
|
Comment=Unofficial Microsoft Teams client for Linux using Electron. It uses the Web App and wraps it as a standalone application using Electron.
|
||||||
|
MimeType=x-scheme-handler/msteams;
|
||||||
|
Categories=Chat;Network;Office;
|
1244
desktop/.config/gzdoom/gzdoom.ini
Normal file
1474
desktop/.config/kitty/kitty.conf
Normal file
58
desktop/.config/ntfy/client.yml
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
# ntfy client config file
|
||||||
|
|
||||||
|
# Base URL used to expand short topic names in the "ntfy publish" and "ntfy subscribe" commands.
|
||||||
|
# If you self-host a ntfy server, you'll likely want to change this.
|
||||||
|
#
|
||||||
|
default-host: https://ntfy.413.one
|
||||||
|
|
||||||
|
# Default username and password will be used with "ntfy publish" if no credentials are provided on command line
|
||||||
|
# Default username and password will be used with "ntfy subscribe" if no credentials are provided in subscription below
|
||||||
|
# For an empty password, use empty double-quotes ("")
|
||||||
|
#
|
||||||
|
default-user: leon
|
||||||
|
default-password: 1bims
|
||||||
|
|
||||||
|
# Default command will execute after "ntfy subscribe" receives a message if no command is provided in subscription below
|
||||||
|
# default-command:
|
||||||
|
|
||||||
|
# Subscriptions to topics and their actions. This option is primarily used by the systemd service,
|
||||||
|
# or if you cann "ntfy subscribe --from-config" directly.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# subscribe:
|
||||||
|
# - topic: mytopic
|
||||||
|
# command: /usr/local/bin/mytopic-triggered.sh
|
||||||
|
# - topic: myserver.com/anothertopic
|
||||||
|
# command: 'echo "$message"'
|
||||||
|
# if:
|
||||||
|
# priority: high,urgent
|
||||||
|
# - topic: secret
|
||||||
|
# command: 'notify-send "$m"'
|
||||||
|
# user: phill
|
||||||
|
# password: mypass
|
||||||
|
#
|
||||||
|
# Variables:
|
||||||
|
# Variable Aliases Description
|
||||||
|
# --------------- --------------------- -----------------------------------
|
||||||
|
# $NTFY_ID $id Unique message ID
|
||||||
|
# $NTFY_TIME $time Unix timestamp of the message delivery
|
||||||
|
# $NTFY_TOPIC $topic Topic name
|
||||||
|
# $NTFY_MESSAGE $message, $m Message body
|
||||||
|
# $NTFY_TITLE $title, $t Message title
|
||||||
|
# $NTFY_PRIORITY $priority, $prio, $p Message priority (1=min, 5=max)
|
||||||
|
# $NTFY_TAGS $tags, $tag, $ta Message tags (comma separated list)
|
||||||
|
# $NTFY_RAW $raw Raw JSON message
|
||||||
|
#
|
||||||
|
# Filters ('if:'):
|
||||||
|
# You can filter 'message', 'title', 'priority' (comma-separated list, logical OR)
|
||||||
|
# and 'tags' (comma-separated list, logical AND). See https://ntfy.sh/docs/subscribe/api/#filter-messages.
|
||||||
|
#
|
||||||
|
subscribe:
|
||||||
|
- topic: 'leon-general'
|
||||||
|
command: 'notify-send "$t" "$m"'
|
||||||
|
- topic: 'leon-services'
|
||||||
|
command: 'notify-send "$t" "$m"'
|
||||||
|
# - topic: 'bonmercato-alerts'
|
||||||
|
# command: 'notify-send "$t" "$m"'
|
||||||
|
# - topic: 'bonmercato-imports'
|
||||||
|
# command: 'notify-send "$t" "$m"'
|
279
desktop/.config/zandronum/zandronum.ini
Normal file
|
@ -0,0 +1,279 @@
|
||||||
|
# This file was generated by Zandronum 3.0 on Wed Sep 23 21:40:11 2020
|
||||||
|
|
||||||
|
# These are the directories to automatically search for IWADs.
|
||||||
|
# Each directory should be on a separate line, preceded by Path=
|
||||||
|
[IWADSearch.Directories]
|
||||||
|
Path=.
|
||||||
|
Path=$DOOMWADDIR
|
||||||
|
Path=~/.config/zandronum
|
||||||
|
Path=/usr/local/share/
|
||||||
|
Path=~/wads
|
||||||
|
|
||||||
|
# These are the directories to search for wads added with the -file
|
||||||
|
# command line parameter, if they cannot be found with the path
|
||||||
|
# as-is. Layout is the same as for IWADSearch.Directories
|
||||||
|
[FileSearch.Directories]
|
||||||
|
Path=~/.config/zandronum
|
||||||
|
Path=/usr/local/share/
|
||||||
|
Path=$DOOMWADDIR
|
||||||
|
Path=~/wads
|
||||||
|
|
||||||
|
# Files to automatically execute when running the corresponding game.
|
||||||
|
# Each file should be on its own line, preceded by Path=
|
||||||
|
|
||||||
|
[Doom.AutoExec]
|
||||||
|
Path=/home/dhalucario/.config/zandronum/autoexec.cfg
|
||||||
|
|
||||||
|
[Heretic.AutoExec]
|
||||||
|
Path=/home/dhalucario/.config/zandronum/autoexec.cfg
|
||||||
|
|
||||||
|
[Hexen.AutoExec]
|
||||||
|
Path=/home/dhalucario/.config/zandronum/autoexec.cfg
|
||||||
|
|
||||||
|
[Strife.AutoExec]
|
||||||
|
Path=/home/dhalucario/.config/zandronum/autoexec.cfg
|
||||||
|
|
||||||
|
[Chex.AutoExec]
|
||||||
|
Path=/home/dhalucario/.config/zandronum/autoexec.cfg
|
||||||
|
|
||||||
|
# WAD files to always load. These are loaded after the IWAD but before
|
||||||
|
# any files added with -file. Place each file on its own line, preceded
|
||||||
|
# by Path=
|
||||||
|
[Global.Autoload]
|
||||||
|
|
||||||
|
# Wad files to automatically load depending on the game and IWAD you are
|
||||||
|
# playing. You may have have files that are loaded for all similar IWADs
|
||||||
|
# (the game) and files that are only loaded for particular IWADs. For example,
|
||||||
|
# any files listed under Doom.Autoload will be loaded for any version of Doom,
|
||||||
|
# but files listed under Doom2.Autoload will only load when you are
|
||||||
|
# playing Doom 2.
|
||||||
|
|
||||||
|
[Doom.Autoload]
|
||||||
|
|
||||||
|
[Doom1.Autoload]
|
||||||
|
|
||||||
|
[Doom2.Autoload]
|
||||||
|
|
||||||
|
[TNT.Autoload]
|
||||||
|
|
||||||
|
[Plutonia.Autoload]
|
||||||
|
|
||||||
|
[Freedoom.Autoload]
|
||||||
|
|
||||||
|
[Freedoom1.Autoload]
|
||||||
|
|
||||||
|
[FreeDM.Autoload]
|
||||||
|
|
||||||
|
[Heretic.Autoload]
|
||||||
|
|
||||||
|
[Hexen.Autoload]
|
||||||
|
|
||||||
|
[HexenDK.Autoload]
|
||||||
|
|
||||||
|
[HexenDemo.Autoload]
|
||||||
|
|
||||||
|
[Strife.Autoload]
|
||||||
|
|
||||||
|
[Chex.Autoload]
|
||||||
|
|
||||||
|
[Chex3.Autoload]
|
||||||
|
|
||||||
|
[UrbanBrawl.Autoload]
|
||||||
|
|
||||||
|
[Harmony.Autoload]
|
||||||
|
|
||||||
|
[LastRun]
|
||||||
|
Version=210
|
||||||
|
Version-ZANDRONUM=181
|
||||||
|
|
||||||
|
[GlobalSettings]
|
||||||
|
gus_memsize=0
|
||||||
|
midi_dmxgus=true
|
||||||
|
gus_patchdir=
|
||||||
|
midi_timiditylike=false
|
||||||
|
midi_voices=32
|
||||||
|
midi_config=timidity.cfg
|
||||||
|
fluid_chorus_type=0
|
||||||
|
fluid_chorus_depth=8
|
||||||
|
fluid_chorus_speed=0.3
|
||||||
|
fluid_chorus_level=1.2
|
||||||
|
fluid_chorus_voices=3
|
||||||
|
fluid_reverb_level=0.57
|
||||||
|
fluid_reverb_width=0.76
|
||||||
|
fluid_reverb_damping=0.23
|
||||||
|
fluid_reverb_roomsize=0.61
|
||||||
|
fluid_threads=1
|
||||||
|
fluid_samplerate=0
|
||||||
|
fluid_interp=1
|
||||||
|
fluid_voices=128
|
||||||
|
fluid_chorus=true
|
||||||
|
fluid_reverb=true
|
||||||
|
fluid_gain=0.5
|
||||||
|
fluid_patchset=
|
||||||
|
opl_core=0
|
||||||
|
opl_numchips=2
|
||||||
|
timidity_frequency=22050
|
||||||
|
timidity_pipe=90
|
||||||
|
timidity_mastervolume=1
|
||||||
|
timidity_byteswap=false
|
||||||
|
timidity_8bit=false
|
||||||
|
timidity_stereo=true
|
||||||
|
timidity_reverb=0
|
||||||
|
timidity_chorus=0
|
||||||
|
timidity_extargs=
|
||||||
|
timidity_exe=timidity
|
||||||
|
snd_mididevice=-1
|
||||||
|
spc_amp=1.875
|
||||||
|
mod_autochip_scan_threshold=12
|
||||||
|
mod_autochip_size_scan=500
|
||||||
|
mod_autochip_size_force=100
|
||||||
|
mod_autochip=false
|
||||||
|
mod_interp=1
|
||||||
|
mod_volramp=0
|
||||||
|
mod_samplerate=0
|
||||||
|
mod_dumb=true
|
||||||
|
snd_sfxvolume=1
|
||||||
|
snd_output=default
|
||||||
|
snd_buffersize=0
|
||||||
|
snd_samplerate=0
|
||||||
|
snd_musicvolume=0.5
|
||||||
|
snd_waterlp=250
|
||||||
|
snd_midipatchset=
|
||||||
|
snd_output_format=PCM-16
|
||||||
|
snd_speakermode=Auto
|
||||||
|
snd_resampler=Linear
|
||||||
|
snd_waterreverb=true
|
||||||
|
snd_hrtf=false
|
||||||
|
snd_buffercount=0
|
||||||
|
snd_driver=0
|
||||||
|
opl_fullpan=true
|
||||||
|
vid_contrast=1
|
||||||
|
vid_brightness=0
|
||||||
|
gl_render_precise=false
|
||||||
|
gl_plane_reflection=true
|
||||||
|
r_mirror_recursions=4
|
||||||
|
gl_seamless=false
|
||||||
|
gl_render_segs=false
|
||||||
|
gl_mirror_envmap=true
|
||||||
|
gl_texture_useshaders=true
|
||||||
|
gl_glow_shader=true
|
||||||
|
gl_brightmap_shader=false
|
||||||
|
gl_colormap_shader=false
|
||||||
|
gl_fog_shader=false
|
||||||
|
gl_warp_shader=false
|
||||||
|
gl_lights_additive=false
|
||||||
|
gl_light_particles=true
|
||||||
|
gl_light_sprites=true
|
||||||
|
gl_lights_size=1
|
||||||
|
gl_lights_intensity=1
|
||||||
|
gl_lights_checkside=true
|
||||||
|
gl_attachedlights=true
|
||||||
|
gl_dynlight_shader=false
|
||||||
|
gl_lights=true
|
||||||
|
gl_usefb=false
|
||||||
|
gl_mask_sprite_threshold=0.5
|
||||||
|
gl_no_skyclear=false
|
||||||
|
gl_sky_detail=16
|
||||||
|
gl_enhanced_nv_stealth=3
|
||||||
|
gl_billboard_particles=true
|
||||||
|
gl_billboard_mode=0
|
||||||
|
gl_particles_style=2
|
||||||
|
gl_sprite_blend=false
|
||||||
|
gl_spritebrightfog=false
|
||||||
|
gl_usecolorblending=true
|
||||||
|
gl_sort_textures=true
|
||||||
|
gl_texture_hqresize_targets=7
|
||||||
|
gl_texture_hqresize_maxinputsize=512
|
||||||
|
gl_texture_hqresize=0
|
||||||
|
gl_clamp_per_texture=false
|
||||||
|
gl_texture_format=0
|
||||||
|
gl_texture_filter=0
|
||||||
|
gl_texture_filter_anisotropic=1
|
||||||
|
gl_distfog=70
|
||||||
|
gl_light_ambient=20
|
||||||
|
gl_usevbo=-1
|
||||||
|
vid_tft=true
|
||||||
|
m_showinputgrid=false
|
||||||
|
m_show_backbutton=0
|
||||||
|
m_use_mouse=1
|
||||||
|
show_messages=true
|
||||||
|
mouse_sensitivity=1
|
||||||
|
map_point_coordinates=true
|
||||||
|
vid_aspect=0
|
||||||
|
vid_nowidescreen=false
|
||||||
|
vid_refreshrate=0
|
||||||
|
vid_vsync=false
|
||||||
|
vid_defbits=8
|
||||||
|
vid_defheight=480
|
||||||
|
vid_defwidth=640
|
||||||
|
Gamma=1
|
||||||
|
masterhostname=master.zandronum.com
|
||||||
|
sv_showwarnings=false
|
||||||
|
statfile=zdoomstat.txt
|
||||||
|
savestatistics=0
|
||||||
|
r_drawspectatingstring=true
|
||||||
|
snd_flipstereo=false
|
||||||
|
snd_channels=32
|
||||||
|
r_columnmethod=1
|
||||||
|
r_quakeintensity=1
|
||||||
|
cl_oldfreelooklimit=false
|
||||||
|
cl_spectatormove=1
|
||||||
|
cl_noprediction=false
|
||||||
|
telezoom=true
|
||||||
|
r_fakecontrast=1
|
||||||
|
chase_dist=90
|
||||||
|
chase_height=-8
|
||||||
|
gl_cachetime=0.6
|
||||||
|
gl_cachenodes=true
|
||||||
|
nomonsterinterpolation=false
|
||||||
|
authhostname=auth.zandronum.com:16666
|
||||||
|
png_gamma=0
|
||||||
|
png_level=5
|
||||||
|
screenshot_dir=
|
||||||
|
screenshot_type=png
|
||||||
|
screenshot_quiet=false
|
||||||
|
use_joystick=false
|
||||||
|
autosavecount=4
|
||||||
|
disableautosave=0
|
||||||
|
autosavenum=0
|
||||||
|
smooth_mouse=false
|
||||||
|
m_side=2
|
||||||
|
m_forward=1
|
||||||
|
m_yaw=1
|
||||||
|
m_pitch=1
|
||||||
|
lookstrafe=false
|
||||||
|
freelook=true
|
||||||
|
invertmouse=false
|
||||||
|
cl_run=true
|
||||||
|
demo_compress=true
|
||||||
|
save_dir=
|
||||||
|
longsavemessages=true
|
||||||
|
storesavepic=true
|
||||||
|
nofilecompression=false
|
||||||
|
cl_capfps=false
|
||||||
|
defaultiwad=
|
||||||
|
queryiwad=true
|
||||||
|
demo_pure=true
|
||||||
|
con_ctrl_d=
|
||||||
|
snd_announcervolume=1
|
||||||
|
cl_allowmultipleannouncersounds=true
|
||||||
|
cl_alwaysplayfragsleft=false
|
||||||
|
showendoom=0
|
||||||
|
gl_vid_multisample=0
|
||||||
|
bgamma=1
|
||||||
|
ggamma=1
|
||||||
|
rgamma=1
|
||||||
|
vid_asyncblit=true
|
||||||
|
vid_displaybits=8
|
||||||
|
mouse_capturemode=1
|
||||||
|
cl_soundwhennotactive=true
|
||||||
|
sdl_nokeyrepeat=false
|
||||||
|
m_filter=false
|
||||||
|
m_noprescale=false
|
||||||
|
use_mouse=true
|
||||||
|
vid_winscale=1
|
||||||
|
fullscreen=false
|
||||||
|
vid_maxfps=200
|
||||||
|
vid_renderer=0
|
||||||
|
|
||||||
|
[GlobalSettings.Unknown]
|
13
desktop/.ideavimrc
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
let mapleader=" "
|
||||||
|
|
||||||
|
set easymotion
|
||||||
|
set multiple-cursors
|
||||||
|
set commentary
|
||||||
|
set surround
|
||||||
|
set sneak
|
||||||
|
|
||||||
|
" Copy to system clipboard as well
|
||||||
|
set clipboard+=unnamedplus
|
||||||
|
|
||||||
|
vnoremap < <gv
|
||||||
|
vnoremap > >gv
|
6
desktop/.xsession
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
autorandr -c
|
||||||
|
if (xrdb -query | grep -q "^awesome\\.started:\\s*true$"); then exit; fi
|
||||||
|
xrdb -merge <<< "awesome.started:true"
|
||||||
|
picom -b --config $HOME/.config/picom.conf
|
||||||
|
dex-autostart --environment Awesome --autostart --search-paths "$HOME/.config/autostart:$HOME/autostart"
|
|
@ -1,11 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
git submodule update --init --recursive
|
|
||||||
|
|
||||||
cp ./.config ~ -r
|
|
||||||
cp ./.zcustom ~ -r
|
|
||||||
cp ./.zplug ~ -r
|
|
||||||
cp ./.oh-my-zsh ~ -r
|
|
||||||
|
|
||||||
cp ./.zshrc ~
|
|
||||||
cp ./.vimrc ~
|
|
||||||
cp ./.ideavimrc ~
|
|
22
install.sh
|
@ -1,22 +0,0 @@
|
||||||
echo 'Starting installation'
|
|
||||||
sudo dnf install -y \
|
|
||||||
git zsh vim-enhanced tig \
|
|
||||||
guake gvim firefox thunderbird keepassxc filezilla telegram-desktop nextcloud-client libreoffice lpf-spotify-client teamviewer flameshot \
|
|
||||||
gnome-tweak-tool poedit pavucontrol ibus-uniemoji xsel apache-ant \
|
|
||||||
mpv xt7-player-mpv \
|
|
||||||
docker-ce docker-compose \
|
|
||||||
php-cli php-json php-mysqli php-zip php-xml php-mbstring php-xdebug mysql wp-cli java
|
|
||||||
|
|
||||||
echo 'Switching shell to zsh'
|
|
||||||
chsh -s $(which zsh)
|
|
||||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
|
||||||
|
|
||||||
cd ~
|
|
||||||
mkdir workspace
|
|
||||||
cd workspace
|
|
||||||
git clone https://git.doggoat.de/dhalucario/devconf.git
|
|
||||||
git submodule update --init --recusive
|
|
||||||
rm README.md.html
|
|
||||||
cp * ../
|
|
||||||
cp .* ../
|
|
||||||
vim +PlugInstall +qall
|
|
29
shell/.config/alacritty/alacritty.toml
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
[window]
|
||||||
|
padding = { x = 5, y = 5}
|
||||||
|
opacity = 0.95
|
||||||
|
blur = true
|
||||||
|
|
||||||
|
[shell]
|
||||||
|
program = "/usr/bin/tmux"
|
||||||
|
|
||||||
|
[font]
|
||||||
|
size = 13.0
|
||||||
|
|
||||||
|
[font.bold]
|
||||||
|
family = "Hack"
|
||||||
|
style = "Bold"
|
||||||
|
|
||||||
|
[font.bold_italic]
|
||||||
|
family = "Hack"
|
||||||
|
style = "Bold Italic"
|
||||||
|
|
||||||
|
[font.italic]
|
||||||
|
family = "Hack"
|
||||||
|
style = "Italic"
|
||||||
|
|
||||||
|
[font.normal]
|
||||||
|
family = "Hack"
|
||||||
|
style = "Regular"
|
||||||
|
|
||||||
|
|
||||||
|
|
14
shell/.config/fish/config.fish
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
if status is-interactive
|
||||||
|
# Commands to run in interactive sessions can go here
|
||||||
|
end
|
||||||
|
|
||||||
|
# tabtab source for packages
|
||||||
|
# uninstall by removing these lines
|
||||||
|
[ -f ~/.config/tabtab/fish/__tabtab.fish ]; and . ~/.config/tabtab/fish/__tabtab.fish; or true
|
||||||
|
|
||||||
|
# pnpm
|
||||||
|
set -gx PNPM_HOME "$HOME/.local/share/pnpm"
|
||||||
|
if not string match -q -- $PNPM_HOME $PATH
|
||||||
|
set -gx PATH "$PNPM_HOME" $PATH
|
||||||
|
end
|
||||||
|
# pnpm end
|
544
shell/.config/nushell/config.nu
Normal file
|
@ -0,0 +1,544 @@
|
||||||
|
# Nushell Config File
|
||||||
|
#
|
||||||
|
# version = 0.79.0
|
||||||
|
|
||||||
|
# For more information on defining custom themes, see
|
||||||
|
# https://www.nushell.sh/book/coloring_and_theming.html
|
||||||
|
# And here is the theme collection
|
||||||
|
# https://github.com/nushell/nu_scripts/tree/main/themes
|
||||||
|
let dark_theme = {
|
||||||
|
# color for nushell primitives
|
||||||
|
separator: white
|
||||||
|
leading_trailing_space_bg: { attr: n } # no fg, no bg, attr none effectively turns this off
|
||||||
|
header: green_bold
|
||||||
|
empty: blue
|
||||||
|
# Closures can be used to choose colors for specific values.
|
||||||
|
# The value (in this case, a bool) is piped into the closure.
|
||||||
|
bool: {|| if $in { 'light_cyan' } else { 'light_gray' } }
|
||||||
|
int: white
|
||||||
|
filesize: {|e|
|
||||||
|
if $e == 0b {
|
||||||
|
'white'
|
||||||
|
} else if $e < 1mb {
|
||||||
|
'cyan'
|
||||||
|
} else { 'blue' }
|
||||||
|
}
|
||||||
|
duration: white
|
||||||
|
date: {|| (date now) - $in |
|
||||||
|
if $in < 1hr {
|
||||||
|
'purple'
|
||||||
|
} else if $in < 6hr {
|
||||||
|
'red'
|
||||||
|
} else if $in < 1day {
|
||||||
|
'yellow'
|
||||||
|
} else if $in < 3day {
|
||||||
|
'green'
|
||||||
|
} else if $in < 1wk {
|
||||||
|
'light_green'
|
||||||
|
} else if $in < 6wk {
|
||||||
|
'cyan'
|
||||||
|
} else if $in < 52wk {
|
||||||
|
'blue'
|
||||||
|
} else { 'dark_gray' }
|
||||||
|
}
|
||||||
|
range: white
|
||||||
|
float: white
|
||||||
|
string: white
|
||||||
|
nothing: white
|
||||||
|
binary: white
|
||||||
|
cellpath: white
|
||||||
|
row_index: green_bold
|
||||||
|
record: white
|
||||||
|
list: white
|
||||||
|
block: white
|
||||||
|
hints: dark_gray
|
||||||
|
|
||||||
|
shape_and: purple_bold
|
||||||
|
shape_binary: purple_bold
|
||||||
|
shape_block: blue_bold
|
||||||
|
shape_bool: light_cyan
|
||||||
|
shape_closure: green_bold
|
||||||
|
shape_custom: green
|
||||||
|
shape_datetime: cyan_bold
|
||||||
|
shape_directory: cyan
|
||||||
|
shape_external: cyan
|
||||||
|
shape_externalarg: green_bold
|
||||||
|
shape_filepath: cyan
|
||||||
|
shape_flag: blue_bold
|
||||||
|
shape_float: purple_bold
|
||||||
|
# shapes are used to change the cli syntax highlighting
|
||||||
|
shape_garbage: { fg: white bg: red attr: b}
|
||||||
|
shape_globpattern: cyan_bold
|
||||||
|
shape_int: purple_bold
|
||||||
|
shape_internalcall: cyan_bold
|
||||||
|
shape_list: cyan_bold
|
||||||
|
shape_literal: blue
|
||||||
|
shape_match_pattern: green
|
||||||
|
shape_matching_brackets: { attr: u }
|
||||||
|
shape_nothing: light_cyan
|
||||||
|
shape_operator: yellow
|
||||||
|
shape_or: purple_bold
|
||||||
|
shape_pipe: purple_bold
|
||||||
|
shape_range: yellow_bold
|
||||||
|
shape_record: cyan_bold
|
||||||
|
shape_redirection: purple_bold
|
||||||
|
shape_signature: green_bold
|
||||||
|
shape_string: green
|
||||||
|
shape_string_interpolation: cyan_bold
|
||||||
|
shape_table: blue_bold
|
||||||
|
shape_variable: purple
|
||||||
|
shape_vardecl: purple
|
||||||
|
}
|
||||||
|
|
||||||
|
let light_theme = {
|
||||||
|
# color for nushell primitives
|
||||||
|
separator: dark_gray
|
||||||
|
leading_trailing_space_bg: { attr: n } # no fg, no bg, attr none effectively turns this off
|
||||||
|
header: green_bold
|
||||||
|
empty: blue
|
||||||
|
# Closures can be used to choose colors for specific values.
|
||||||
|
# The value (in this case, a bool) is piped into the closure.
|
||||||
|
bool: {|| if $in { 'dark_cyan' } else { 'dark_gray' } }
|
||||||
|
int: dark_gray
|
||||||
|
filesize: {|e|
|
||||||
|
if $e == 0b {
|
||||||
|
'dark_gray'
|
||||||
|
} else if $e < 1mb {
|
||||||
|
'cyan_bold'
|
||||||
|
} else { 'blue_bold' }
|
||||||
|
}
|
||||||
|
duration: dark_gray
|
||||||
|
date: {|| (date now) - $in |
|
||||||
|
if $in < 1hr {
|
||||||
|
'purple'
|
||||||
|
} else if $in < 6hr {
|
||||||
|
'red'
|
||||||
|
} else if $in < 1day {
|
||||||
|
'yellow'
|
||||||
|
} else if $in < 3day {
|
||||||
|
'green'
|
||||||
|
} else if $in < 1wk {
|
||||||
|
'light_green'
|
||||||
|
} else if $in < 6wk {
|
||||||
|
'cyan'
|
||||||
|
} else if $in < 52wk {
|
||||||
|
'blue'
|
||||||
|
} else { 'dark_gray' }
|
||||||
|
}
|
||||||
|
range: dark_gray
|
||||||
|
float: dark_gray
|
||||||
|
string: dark_gray
|
||||||
|
nothing: dark_gray
|
||||||
|
binary: dark_gray
|
||||||
|
cellpath: dark_gray
|
||||||
|
row_index: green_bold
|
||||||
|
record: white
|
||||||
|
list: white
|
||||||
|
block: white
|
||||||
|
hints: dark_gray
|
||||||
|
|
||||||
|
shape_and: purple_bold
|
||||||
|
shape_binary: purple_bold
|
||||||
|
shape_block: blue_bold
|
||||||
|
shape_bool: light_cyan
|
||||||
|
shape_closure: green_bold
|
||||||
|
shape_custom: green
|
||||||
|
shape_datetime: cyan_bold
|
||||||
|
shape_directory: cyan
|
||||||
|
shape_external: cyan
|
||||||
|
shape_externalarg: green_bold
|
||||||
|
shape_filepath: cyan
|
||||||
|
shape_flag: blue_bold
|
||||||
|
shape_float: purple_bold
|
||||||
|
# shapes are used to change the cli syntax highlighting
|
||||||
|
shape_garbage: { fg: white bg: red attr: b}
|
||||||
|
shape_globpattern: cyan_bold
|
||||||
|
shape_int: purple_bold
|
||||||
|
shape_internalcall: cyan_bold
|
||||||
|
shape_list: cyan_bold
|
||||||
|
shape_literal: blue
|
||||||
|
shape_match_pattern: green
|
||||||
|
shape_matching_brackets: { attr: u }
|
||||||
|
shape_nothing: light_cyan
|
||||||
|
shape_operator: yellow
|
||||||
|
shape_or: purple_bold
|
||||||
|
shape_pipe: purple_bold
|
||||||
|
shape_range: yellow_bold
|
||||||
|
shape_record: cyan_bold
|
||||||
|
shape_redirection: purple_bold
|
||||||
|
shape_signature: green_bold
|
||||||
|
shape_string: green
|
||||||
|
shape_string_interpolation: cyan_bold
|
||||||
|
shape_table: blue_bold
|
||||||
|
shape_variable: purple
|
||||||
|
shape_vardecl: purple
|
||||||
|
}
|
||||||
|
|
||||||
|
# External completer example
|
||||||
|
# let carapace_completer = {|spans|
|
||||||
|
# carapace $spans.0 nushell $spans | from json
|
||||||
|
# }
|
||||||
|
|
||||||
|
|
||||||
|
# The default config record. This is where much of your global configuration is setup.
|
||||||
|
let-env config = {
|
||||||
|
# true or false to enable or disable the welcome banner at startup
|
||||||
|
show_banner: true
|
||||||
|
ls: {
|
||||||
|
use_ls_colors: true # use the LS_COLORS environment variable to colorize output
|
||||||
|
clickable_links: true # enable or disable clickable links. Your terminal has to support links.
|
||||||
|
}
|
||||||
|
rm: {
|
||||||
|
always_trash: false # always act as if -t was given. Can be overridden with -p
|
||||||
|
}
|
||||||
|
cd: {
|
||||||
|
abbreviations: false # allows `cd s/o/f` to expand to `cd some/other/folder`
|
||||||
|
}
|
||||||
|
table: {
|
||||||
|
mode: rounded # basic, compact, compact_double, light, thin, with_love, rounded, reinforced, heavy, none, other
|
||||||
|
index_mode: always # "always" show indexes, "never" show indexes, "auto" = show indexes when a table has "index" column
|
||||||
|
show_empty: true # show 'empty list' and 'empty record' placeholders for command output
|
||||||
|
trim: {
|
||||||
|
methodology: wrapping # wrapping or truncating
|
||||||
|
wrapping_try_keep_words: true # A strategy used by the 'wrapping' methodology
|
||||||
|
truncating_suffix: "..." # A suffix used by the 'truncating' methodology
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
explore: {
|
||||||
|
help_banner: true
|
||||||
|
exit_esc: true
|
||||||
|
|
||||||
|
command_bar_text: '#C4C9C6'
|
||||||
|
# command_bar: {fg: '#C4C9C6' bg: '#223311' }
|
||||||
|
|
||||||
|
status_bar_background: {fg: '#1D1F21' bg: '#C4C9C6' }
|
||||||
|
# status_bar_text: {fg: '#C4C9C6' bg: '#223311' }
|
||||||
|
|
||||||
|
highlight: {bg: 'yellow' fg: 'black' }
|
||||||
|
|
||||||
|
status: {
|
||||||
|
# warn: {bg: 'yellow', fg: 'blue'}
|
||||||
|
# error: {bg: 'yellow', fg: 'blue'}
|
||||||
|
# info: {bg: 'yellow', fg: 'blue'}
|
||||||
|
}
|
||||||
|
|
||||||
|
try: {
|
||||||
|
# border_color: 'red'
|
||||||
|
# highlighted_color: 'blue'
|
||||||
|
|
||||||
|
# reactive: false
|
||||||
|
}
|
||||||
|
|
||||||
|
table: {
|
||||||
|
split_line: '#404040'
|
||||||
|
|
||||||
|
cursor: true
|
||||||
|
|
||||||
|
line_index: true
|
||||||
|
line_shift: true
|
||||||
|
line_head_top: true
|
||||||
|
line_head_bottom: true
|
||||||
|
|
||||||
|
show_head: true
|
||||||
|
show_index: true
|
||||||
|
|
||||||
|
# selected_cell: {fg: 'white', bg: '#777777'}
|
||||||
|
# selected_row: {fg: 'yellow', bg: '#C1C2A3'}
|
||||||
|
# selected_column: blue
|
||||||
|
|
||||||
|
# padding_column_right: 2
|
||||||
|
# padding_column_left: 2
|
||||||
|
|
||||||
|
# padding_index_left: 2
|
||||||
|
# padding_index_right: 1
|
||||||
|
}
|
||||||
|
|
||||||
|
config: {
|
||||||
|
cursor_color: {bg: 'yellow' fg: 'black' }
|
||||||
|
|
||||||
|
# border_color: white
|
||||||
|
# list_color: green
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
history: {
|
||||||
|
max_size: 10000 # Session has to be reloaded for this to take effect
|
||||||
|
sync_on_enter: true # Enable to share history between multiple sessions, else you have to close the session to write history to file
|
||||||
|
file_format: "plaintext" # "sqlite" or "plaintext"
|
||||||
|
}
|
||||||
|
completions: {
|
||||||
|
case_sensitive: false # set to true to enable case-sensitive completions
|
||||||
|
quick: true # set this to false to prevent auto-selecting completions when only one remains
|
||||||
|
partial: true # set this to false to prevent partial filling of the prompt
|
||||||
|
algorithm: "prefix" # prefix or fuzzy
|
||||||
|
external: {
|
||||||
|
enable: true # set to false to prevent nushell looking into $env.PATH to find more suggestions, `false` recommended for WSL users as this look up my be very slow
|
||||||
|
max_results: 100 # setting it lower can improve completion performance at the cost of omitting some options
|
||||||
|
completer: null # check 'carapace_completer' above as an example
|
||||||
|
}
|
||||||
|
}
|
||||||
|
filesize: {
|
||||||
|
metric: true # true => KB, MB, GB (ISO standard), false => KiB, MiB, GiB (Windows standard)
|
||||||
|
format: "auto" # b, kb, kib, mb, mib, gb, gib, tb, tib, pb, pib, eb, eib, zb, zib, auto
|
||||||
|
}
|
||||||
|
cursor_shape: {
|
||||||
|
emacs: line # block, underscore, line (line is the default)
|
||||||
|
vi_insert: block # block, underscore, line (block is the default)
|
||||||
|
vi_normal: underscore # block, underscore, line (underscore is the default)
|
||||||
|
}
|
||||||
|
color_config: $dark_theme # if you want a light theme, replace `$dark_theme` to `$light_theme`
|
||||||
|
use_grid_icons: true
|
||||||
|
footer_mode: "25" # always, never, number_of_rows, auto
|
||||||
|
float_precision: 2 # the precision for displaying floats in tables
|
||||||
|
# buffer_editor: "emacs" # command that will be used to edit the current line buffer with ctrl+o, if unset fallback to $env.EDITOR and $env.VISUAL
|
||||||
|
use_ansi_coloring: true
|
||||||
|
edit_mode: emacs # emacs, vi
|
||||||
|
shell_integration: true # enables terminal markers and a workaround to arrow keys stop working issue
|
||||||
|
render_right_prompt_on_last_line: false # true or false to enable or disable right prompt to be rendered on last line of the prompt.
|
||||||
|
|
||||||
|
hooks: {
|
||||||
|
pre_prompt: [{||
|
||||||
|
null # replace with source code to run before the prompt is shown
|
||||||
|
}]
|
||||||
|
pre_execution: [{||
|
||||||
|
null # replace with source code to run before the repl input is run
|
||||||
|
}]
|
||||||
|
env_change: {
|
||||||
|
PWD: [{|before, after|
|
||||||
|
null # replace with source code to run if the PWD environment is different since the last repl input
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
display_output: {||
|
||||||
|
if (term size).columns >= 100 { table -e } else { table }
|
||||||
|
}
|
||||||
|
command_not_found: {||
|
||||||
|
null # replace with source code to return an error message when a command is not found
|
||||||
|
}
|
||||||
|
}
|
||||||
|
menus: [
|
||||||
|
# Configuration for default nushell menus
|
||||||
|
# Note the lack of source parameter
|
||||||
|
{
|
||||||
|
name: completion_menu
|
||||||
|
only_buffer_difference: false
|
||||||
|
marker: "| "
|
||||||
|
type: {
|
||||||
|
layout: columnar
|
||||||
|
columns: 4
|
||||||
|
col_width: 20 # Optional value. If missing all the screen width is used to calculate column width
|
||||||
|
col_padding: 2
|
||||||
|
}
|
||||||
|
style: {
|
||||||
|
text: green
|
||||||
|
selected_text: green_reverse
|
||||||
|
description_text: yellow
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: history_menu
|
||||||
|
only_buffer_difference: true
|
||||||
|
marker: "? "
|
||||||
|
type: {
|
||||||
|
layout: list
|
||||||
|
page_size: 10
|
||||||
|
}
|
||||||
|
style: {
|
||||||
|
text: green
|
||||||
|
selected_text: green_reverse
|
||||||
|
description_text: yellow
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: help_menu
|
||||||
|
only_buffer_difference: true
|
||||||
|
marker: "? "
|
||||||
|
type: {
|
||||||
|
layout: description
|
||||||
|
columns: 4
|
||||||
|
col_width: 20 # Optional value. If missing all the screen width is used to calculate column width
|
||||||
|
col_padding: 2
|
||||||
|
selection_rows: 4
|
||||||
|
description_rows: 10
|
||||||
|
}
|
||||||
|
style: {
|
||||||
|
text: green
|
||||||
|
selected_text: green_reverse
|
||||||
|
description_text: yellow
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# Example of extra menus created using a nushell source
|
||||||
|
# Use the source field to create a list of records that populates
|
||||||
|
# the menu
|
||||||
|
{
|
||||||
|
name: commands_menu
|
||||||
|
only_buffer_difference: false
|
||||||
|
marker: "# "
|
||||||
|
type: {
|
||||||
|
layout: columnar
|
||||||
|
columns: 4
|
||||||
|
col_width: 20
|
||||||
|
col_padding: 2
|
||||||
|
}
|
||||||
|
style: {
|
||||||
|
text: green
|
||||||
|
selected_text: green_reverse
|
||||||
|
description_text: yellow
|
||||||
|
}
|
||||||
|
source: { |buffer, position|
|
||||||
|
$nu.scope.commands
|
||||||
|
| where name =~ $buffer
|
||||||
|
| each { |it| {value: $it.name description: $it.usage} }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: vars_menu
|
||||||
|
only_buffer_difference: true
|
||||||
|
marker: "# "
|
||||||
|
type: {
|
||||||
|
layout: list
|
||||||
|
page_size: 10
|
||||||
|
}
|
||||||
|
style: {
|
||||||
|
text: green
|
||||||
|
selected_text: green_reverse
|
||||||
|
description_text: yellow
|
||||||
|
}
|
||||||
|
source: { |buffer, position|
|
||||||
|
$nu.scope.vars
|
||||||
|
| where name =~ $buffer
|
||||||
|
| sort-by name
|
||||||
|
| each { |it| {value: $it.name description: $it.type} }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: commands_with_description
|
||||||
|
only_buffer_difference: true
|
||||||
|
marker: "# "
|
||||||
|
type: {
|
||||||
|
layout: description
|
||||||
|
columns: 4
|
||||||
|
col_width: 20
|
||||||
|
col_padding: 2
|
||||||
|
selection_rows: 4
|
||||||
|
description_rows: 10
|
||||||
|
}
|
||||||
|
style: {
|
||||||
|
text: green
|
||||||
|
selected_text: green_reverse
|
||||||
|
description_text: yellow
|
||||||
|
}
|
||||||
|
source: { |buffer, position|
|
||||||
|
$nu.scope.commands
|
||||||
|
| where name =~ $buffer
|
||||||
|
| each { |it| {value: $it.name description: $it.usage} }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
keybindings: [
|
||||||
|
{
|
||||||
|
name: completion_menu
|
||||||
|
modifier: none
|
||||||
|
keycode: tab
|
||||||
|
mode: [emacs vi_normal vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menu name: completion_menu }
|
||||||
|
{ send: menunext }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: completion_previous
|
||||||
|
modifier: shift
|
||||||
|
keycode: backtab
|
||||||
|
mode: [emacs, vi_normal, vi_insert] # Note: You can add the same keybinding to all modes by using a list
|
||||||
|
event: { send: menuprevious }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: history_menu
|
||||||
|
modifier: control
|
||||||
|
keycode: char_r
|
||||||
|
mode: emacs
|
||||||
|
event: { send: menu name: history_menu }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: next_page
|
||||||
|
modifier: control
|
||||||
|
keycode: char_x
|
||||||
|
mode: emacs
|
||||||
|
event: { send: menupagenext }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: undo_or_previous_page
|
||||||
|
modifier: control
|
||||||
|
keycode: char_z
|
||||||
|
mode: emacs
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{ send: menupageprevious }
|
||||||
|
{ edit: undo }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: yank
|
||||||
|
modifier: control
|
||||||
|
keycode: char_y
|
||||||
|
mode: emacs
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{edit: pastecutbufferafter}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: unix-line-discard
|
||||||
|
modifier: control
|
||||||
|
keycode: char_u
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{edit: cutfromlinestart}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: kill-line
|
||||||
|
modifier: control
|
||||||
|
keycode: char_k
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: {
|
||||||
|
until: [
|
||||||
|
{edit: cuttolineend}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# Keybindings used to trigger the user defined menus
|
||||||
|
{
|
||||||
|
name: commands_menu
|
||||||
|
modifier: control
|
||||||
|
keycode: char_t
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: menu name: commands_menu }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: vars_menu
|
||||||
|
modifier: alt
|
||||||
|
keycode: char_o
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: menu name: vars_menu }
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name: commands_with_description
|
||||||
|
modifier: control
|
||||||
|
keycode: char_s
|
||||||
|
mode: [emacs, vi_normal, vi_insert]
|
||||||
|
event: { send: menu name: commands_with_description }
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
source ~/.oh-my-posh.nu
|
||||||
|
|
||||||
|
let-env EDITOR = nvim
|
86
shell/.config/nushell/env.nu
Normal file
|
@ -0,0 +1,86 @@
|
||||||
|
# Nushell Environment Config File
|
||||||
|
#
|
||||||
|
# version = 0.79.0
|
||||||
|
|
||||||
|
def create_left_prompt [] {
|
||||||
|
mut home = ""
|
||||||
|
try {
|
||||||
|
if $nu.os-info.name == "windows" {
|
||||||
|
$home = $env.USERPROFILE
|
||||||
|
} else {
|
||||||
|
$home = $env.HOME
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let dir = ([
|
||||||
|
($env.PWD | str substring 0..($home | str length) | str replace -s $home "~"),
|
||||||
|
($env.PWD | str substring ($home | str length)..)
|
||||||
|
] | str join)
|
||||||
|
|
||||||
|
let path_segment = if (is-admin) {
|
||||||
|
$"(ansi red_bold)($dir)"
|
||||||
|
} else {
|
||||||
|
$"(ansi green_bold)($dir)"
|
||||||
|
}
|
||||||
|
|
||||||
|
$path_segment
|
||||||
|
}
|
||||||
|
|
||||||
|
def create_right_prompt [] {
|
||||||
|
let time_segment = ([
|
||||||
|
(ansi reset)
|
||||||
|
(ansi magenta)
|
||||||
|
(date now | date format '%m/%d/%Y %r')
|
||||||
|
] | str join)
|
||||||
|
|
||||||
|
let last_exit_code = if ($env.LAST_EXIT_CODE != 0) {([
|
||||||
|
(ansi rb)
|
||||||
|
($env.LAST_EXIT_CODE)
|
||||||
|
] | str join)
|
||||||
|
} else { "" }
|
||||||
|
|
||||||
|
([$last_exit_code, (char space), $time_segment] | str join)
|
||||||
|
}
|
||||||
|
|
||||||
|
# Use nushell functions to define your right and left prompt
|
||||||
|
let-env PROMPT_COMMAND = {|| create_left_prompt }
|
||||||
|
let-env PROMPT_COMMAND_RIGHT = {|| create_right_prompt }
|
||||||
|
|
||||||
|
# The prompt indicators are environmental variables that represent
|
||||||
|
# the state of the prompt
|
||||||
|
let-env PROMPT_INDICATOR = {|| "> " }
|
||||||
|
let-env PROMPT_INDICATOR_VI_INSERT = {|| ": " }
|
||||||
|
let-env PROMPT_INDICATOR_VI_NORMAL = {|| "> " }
|
||||||
|
let-env PROMPT_MULTILINE_INDICATOR = {|| "::: " }
|
||||||
|
|
||||||
|
# Specifies how environment variables are:
|
||||||
|
# - converted from a string to a value on Nushell startup (from_string)
|
||||||
|
# - converted from a value back to a string when running external commands (to_string)
|
||||||
|
# Note: The conversions happen *after* config.nu is loaded
|
||||||
|
let-env ENV_CONVERSIONS = {
|
||||||
|
"PATH": {
|
||||||
|
from_string: { |s| $s | split row (char esep) | path expand -n }
|
||||||
|
to_string: { |v| $v | path expand -n | str join (char esep) }
|
||||||
|
}
|
||||||
|
"Path": {
|
||||||
|
from_string: { |s| $s | split row (char esep) | path expand -n }
|
||||||
|
to_string: { |v| $v | path expand -n | str join (char esep) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Directories to search for scripts when calling source or use
|
||||||
|
#
|
||||||
|
# By default, <nushell-config-dir>/scripts is added
|
||||||
|
let-env NU_LIB_DIRS = [
|
||||||
|
($nu.default-config-dir | path join 'scripts')
|
||||||
|
]
|
||||||
|
|
||||||
|
# Directories to search for plugin binaries when calling register
|
||||||
|
#
|
||||||
|
# By default, <nushell-config-dir>/plugins is added
|
||||||
|
let-env NU_PLUGIN_DIRS = [
|
||||||
|
($nu.default-config-dir | path join 'plugins')
|
||||||
|
]
|
||||||
|
|
||||||
|
# To add entries to PATH (on Windows you might use Path), you can use the following pattern:
|
||||||
|
# let-env PATH = ($env.PATH | split row (char esep) | prepend '/some/path')
|
21
shell/.config/nvim/init.vim
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
source ~/.vimrc
|
||||||
|
|
||||||
|
lua << EOF
|
||||||
|
require('nvim-treesitter.configs').setup {
|
||||||
|
auto_install = true,
|
||||||
|
highlight = {
|
||||||
|
enable = true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
vim.g.coq_settings = {
|
||||||
|
keymap = { recommended = true },
|
||||||
|
auto_start = 'shut-up',
|
||||||
|
clients = {
|
||||||
|
tmux = { enabled = true },
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
require('coq')
|
||||||
|
EOF
|
||||||
|
|
3
shell/.config/omf/bundle
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
package git@github.com:PatrickF1/fzf.fish.git
|
||||||
|
theme default
|
||||||
|
theme sashimi
|
1
shell/.config/omf/channel
Normal file
|
@ -0,0 +1 @@
|
||||||
|
stable
|
21
shell/.config/omf/init.fish
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
export DENO_INSTALL="$HOME/.deno"
|
||||||
|
|
||||||
|
fish_add_path $DENO_INSTALL/bin
|
||||||
|
fish_add_path $HOME/.local/bin
|
||||||
|
fish_add_path $HOME/.cargo/bin
|
||||||
|
|
||||||
|
export BROWSER="firefox"
|
||||||
|
if type -q lvim
|
||||||
|
export EDITOR="lvim"
|
||||||
|
alias vim lvim
|
||||||
|
else
|
||||||
|
export EDITOR="vim"
|
||||||
|
end
|
||||||
|
|
||||||
|
alias gitroot='cd $(git rev-parse --show-toplevel)'
|
||||||
|
alias dc-up="docker compose up"
|
||||||
|
alias dc-upd="docker compose up -d"
|
||||||
|
alias dc-down="docker compose down"
|
||||||
|
alias kubectl="minikube kubectl --"
|
||||||
|
# abbr cd $(find ~/workspace -mindepth 1 -maxdepth 1 -type d | sed "s|$HOME|~|g" | fzf)
|
||||||
|
alias ws="cd ~/workspace/\$(ls ~/workspace | fzf)"
|
1
shell/.config/omf/theme
Normal file
|
@ -0,0 +1 @@
|
||||||
|
sashimi
|
|
@ -0,0 +1 @@
|
||||||
|
/usr/lib/systemd/user/appimagelauncherd.service
|
|
@ -0,0 +1 @@
|
||||||
|
/usr/lib/systemd/user/pipewire-pulse.service
|
1
shell/.config/systemd/user/default.target.wants/pipewire.service
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
/usr/lib/systemd/user/pipewire.service
|
|
@ -0,0 +1 @@
|
||||||
|
/usr/lib/systemd/user/syncthing.service
|
16
shell/.config/systemd/user/mopidy.service
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Mopidy music server
|
||||||
|
After=avahi-daemon.service
|
||||||
|
After=dbus.service
|
||||||
|
After=network-online.target
|
||||||
|
Wants=network-online.target
|
||||||
|
After=nss-lookup.target
|
||||||
|
After=pulseaudio.service
|
||||||
|
After=remote-fs.target
|
||||||
|
After=sound.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=/usr/bin/mopidy
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|