init .config files
This commit is contained in:
parent
3e6e703783
commit
8b4ce67189
97
config/alacritty/alacritty.toml
Normal file
97
config/alacritty/alacritty.toml
Normal file
|
|
@ -0,0 +1,97 @@
|
||||||
|
[bell.command]
|
||||||
|
program = "bell"
|
||||||
|
|
||||||
|
[colors.bright]
|
||||||
|
black = "#666666"
|
||||||
|
blue = "#7aa6da"
|
||||||
|
cyan = "#70c0b1"
|
||||||
|
green = "#b9ca4a"
|
||||||
|
magenta = "#c397d8"
|
||||||
|
red = "#d54e53"
|
||||||
|
white = "#eaeaea"
|
||||||
|
yellow = "#e7c547"
|
||||||
|
|
||||||
|
[colors.cursor]
|
||||||
|
cursor = "CellForeground"
|
||||||
|
text = "CellBackground"
|
||||||
|
|
||||||
|
[colors.normal]
|
||||||
|
black = "#6e6c7e"
|
||||||
|
blue = "#96cdfb"
|
||||||
|
cyan = "#89dceb"
|
||||||
|
green = "#abe9b3"
|
||||||
|
magenta = "#f5c2e7"
|
||||||
|
red = "#f28fad"
|
||||||
|
white = "#d9e0ee"
|
||||||
|
yellow = "#fae3b0"
|
||||||
|
|
||||||
|
[colors.primary]
|
||||||
|
background = "#1E1E2E"
|
||||||
|
foreground = "#D9E0EE"
|
||||||
|
|
||||||
|
[colors.vi_mode_cursor]
|
||||||
|
cursor = "#AFAFFF"
|
||||||
|
text = "#202020"
|
||||||
|
|
||||||
|
[cursor]
|
||||||
|
vi_mode_style = "Block"
|
||||||
|
|
||||||
|
[cursor.style]
|
||||||
|
shape = "Block"
|
||||||
|
|
||||||
|
[env]
|
||||||
|
TERM = "xterm-256color"
|
||||||
|
|
||||||
|
[font]
|
||||||
|
builtin_box_drawing = true
|
||||||
|
size = 14.0
|
||||||
|
|
||||||
|
[font.bold]
|
||||||
|
style = "ExtraBold"
|
||||||
|
|
||||||
|
[font.bold_italic]
|
||||||
|
style = "ExtraBold Italic"
|
||||||
|
|
||||||
|
[font.italic]
|
||||||
|
style = "Medium Italic"
|
||||||
|
|
||||||
|
[font.normal]
|
||||||
|
family = "JetBrainsMono Nerd Font"
|
||||||
|
style = "Medium"
|
||||||
|
|
||||||
|
[font.offset]
|
||||||
|
x = 0
|
||||||
|
y = 0
|
||||||
|
|
||||||
|
[[keyboard.bindings]]
|
||||||
|
chars = "\u001B[105;5u"
|
||||||
|
key = "I"
|
||||||
|
mods = "Control"
|
||||||
|
|
||||||
|
[[keyboard.bindings]]
|
||||||
|
chars = "\u001B[13;5u"
|
||||||
|
key = "Return"
|
||||||
|
mods = "Control"
|
||||||
|
|
||||||
|
[[keyboard.bindings]]
|
||||||
|
chars = "\u001B[13;5u"
|
||||||
|
key = "Back"
|
||||||
|
mods = "Control"
|
||||||
|
|
||||||
|
[[keyboard.bindings]]
|
||||||
|
chars = ""
|
||||||
|
key = "B"
|
||||||
|
mods = "Control|Shift"
|
||||||
|
[[keyboard.bindings]]
|
||||||
|
chars = ""
|
||||||
|
key = "F"
|
||||||
|
mods = "Control|Shift"
|
||||||
|
|
||||||
|
[window]
|
||||||
|
dynamic_padding = true
|
||||||
|
opacity = 0.8
|
||||||
|
|
||||||
|
[window.padding]
|
||||||
|
x = 10
|
||||||
|
y = 10
|
||||||
|
|
||||||
602
config/awesome/rc.lua
Normal file
602
config/awesome/rc.lua
Normal file
|
|
@ -0,0 +1,602 @@
|
||||||
|
-- If LuaRocks is installed, make sure that packages installed through it are
|
||||||
|
-- found (e.g. lgi). If LuaRocks is not installed, do nothing.
|
||||||
|
pcall(require, "luarocks.loader")
|
||||||
|
|
||||||
|
-- Standard awesome library
|
||||||
|
local gears = require("gears")
|
||||||
|
local awful = require("awful")
|
||||||
|
require("awful.autofocus")
|
||||||
|
-- Widget and layout library
|
||||||
|
local wibox = require("wibox")
|
||||||
|
-- Theme handling library
|
||||||
|
local beautiful = require("beautiful")
|
||||||
|
-- Notification library
|
||||||
|
local naughty = require("naughty")
|
||||||
|
local menubar = require("menubar")
|
||||||
|
local hotkeys_popup = require("awful.hotkeys_popup")
|
||||||
|
-- Enable hotkeys help widget for VIM and other apps
|
||||||
|
-- when client with a matching name is opened:
|
||||||
|
-- require("awful.hotkeys_popup.keys")
|
||||||
|
|
||||||
|
-- {{{ 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)
|
||||||
|
-- Make sure we don't go into an endless error loop
|
||||||
|
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
|
||||||
|
-- }}}
|
||||||
|
|
||||||
|
-- {{{ Variable definitions
|
||||||
|
-- Themes define colours, icons, font and wallpapers.
|
||||||
|
theme = require('theme')
|
||||||
|
beautiful.init(theme)
|
||||||
|
|
||||||
|
-- This is used later as the default terminal and editor to run.
|
||||||
|
terminal = "alacritty"
|
||||||
|
run = "rofi -show drun"
|
||||||
|
browser = "firefox"
|
||||||
|
file_manager = "dolphin"
|
||||||
|
editor = "nvim"
|
||||||
|
editor_cmd = terminal .. " -e " .. editor
|
||||||
|
|
||||||
|
-- Default modkey.
|
||||||
|
-- Usually, Mod4 is the key with a logo between Control and Alt.
|
||||||
|
-- If you do not like this or do not have such a key,
|
||||||
|
-- I suggest you to remap Mod4 to another key using xmodmap or other tools.
|
||||||
|
-- However, you can use another modifier like Mod1, but it may interact with others.
|
||||||
|
modkey = "Mod4"
|
||||||
|
|
||||||
|
-- Table of layouts to cover with awful.layout.inc, order matters.
|
||||||
|
awful.layout.layouts = {
|
||||||
|
-- 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,
|
||||||
|
}
|
||||||
|
-- }}}
|
||||||
|
|
||||||
|
-- {{{ Menu
|
||||||
|
-- Create a launcher widget and a main menu
|
||||||
|
myawesomemenu = {
|
||||||
|
{ "hotkeys", function() hotkeys_popup.show_help(nil, awful.screen.focused()) end },
|
||||||
|
{ "manual", terminal .. " -e man awesome" },
|
||||||
|
{ "edit config", editor_cmd .. " " .. awesome.conffile },
|
||||||
|
{ "restart", awesome.restart },
|
||||||
|
{ "quit", function() awesome.quit() end },
|
||||||
|
}
|
||||||
|
|
||||||
|
mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
|
||||||
|
{ "open terminal", terminal },
|
||||||
|
{ "open browser", browser },
|
||||||
|
{ "open file manager", file_manager },
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
|
||||||
|
menu = mymainmenu })
|
||||||
|
|
||||||
|
-- Menubar configuration
|
||||||
|
menubar.utils.terminal = terminal -- Set the terminal for applications that require it
|
||||||
|
menubar.menu_gen.all_categories = {}
|
||||||
|
-- }}}
|
||||||
|
|
||||||
|
-- Keyboard map indicator and switcher
|
||||||
|
mykeyboardlayout = awful.widget.keyboardlayout()
|
||||||
|
|
||||||
|
-- {{{ Wibar
|
||||||
|
-- Create a textclock widget
|
||||||
|
mytextclock = wibox.widget.textclock()
|
||||||
|
|
||||||
|
-- Create a wibox for each screen and add it
|
||||||
|
local taglist_buttons = gears.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)
|
||||||
|
)
|
||||||
|
|
||||||
|
local tasklist_buttons = gears.table.join(
|
||||||
|
awful.button({ }, 1, function (c)
|
||||||
|
if c == client.focus then
|
||||||
|
c.minimized = true
|
||||||
|
else
|
||||||
|
c:emit_signal(
|
||||||
|
"request::activate",
|
||||||
|
"tasklist",
|
||||||
|
{raise = true}
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end),
|
||||||
|
awful.button({ }, 2, function (c) c:kill() end),
|
||||||
|
awful.button({ }, 3, function()
|
||||||
|
awful.menu.client_list({ theme = { width = 250 } })
|
||||||
|
end),
|
||||||
|
awful.button({ }, 4, function ()
|
||||||
|
awful.client.focus.byidx(1)
|
||||||
|
end),
|
||||||
|
awful.button({ }, 5, function ()
|
||||||
|
awful.client.focus.byidx(-1)
|
||||||
|
end))
|
||||||
|
|
||||||
|
local function set_wallpaper(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
|
||||||
|
|
||||||
|
-- Re-set wallpaper when a screen's geometry changes (e.g. different resolution)
|
||||||
|
screen.connect_signal("property::geometry", set_wallpaper)
|
||||||
|
|
||||||
|
awful.screen.connect_for_each_screen(function(s)
|
||||||
|
-- Wallpaper
|
||||||
|
set_wallpaper(s)
|
||||||
|
|
||||||
|
-- Each screen has its own tag table.
|
||||||
|
awful.tag({ "1", "2", "3", "4", "5", "6", "7", "8", "9" }, s, awful.layout.layouts[1])
|
||||||
|
|
||||||
|
-- Create a promptbox for each screen
|
||||||
|
s.mypromptbox = awful.widget.prompt()
|
||||||
|
-- Create an imagebox widget which will contain an icon indicating which layout we're using.
|
||||||
|
-- We need one layoutbox per screen.
|
||||||
|
s.mylayoutbox = awful.widget.layoutbox(s)
|
||||||
|
s.mylayoutbox:buttons(gears.table.join(
|
||||||
|
awful.button({ }, 1, function () awful.layout.inc( 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 {
|
||||||
|
screen = s,
|
||||||
|
filter = awful.widget.taglist.filter.all,
|
||||||
|
buttons = taglist_buttons
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Create a tasklist widget
|
||||||
|
s.mytasklist = awful.widget.tasklist {
|
||||||
|
screen = s,
|
||||||
|
filter = awful.widget.tasklist.filter.currenttags,
|
||||||
|
buttons = tasklist_buttons
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Create the wibox
|
||||||
|
s.mywibox = awful.wibar({ position = "top", screen = s })
|
||||||
|
|
||||||
|
-- Add widgets to the wibox
|
||||||
|
s.mywibox:setup {
|
||||||
|
layout = wibox.layout.align.horizontal,
|
||||||
|
{ -- Left widgets
|
||||||
|
layout = wibox.layout.fixed.horizontal,
|
||||||
|
mylauncher,
|
||||||
|
s.mytaglist,
|
||||||
|
s.mypromptbox,
|
||||||
|
},
|
||||||
|
s.mytasklist, -- Middle widget
|
||||||
|
{ -- Right widgets
|
||||||
|
layout = wibox.layout.fixed.horizontal,
|
||||||
|
mykeyboardlayout,
|
||||||
|
wibox.widget.systray(),
|
||||||
|
mytextclock,
|
||||||
|
s.mylayoutbox,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end)
|
||||||
|
-- }}}
|
||||||
|
|
||||||
|
-- {{{ Mouse bindings
|
||||||
|
root.buttons(gears.table.join(
|
||||||
|
awful.button({ }, 3, function () mymainmenu:toggle() end),
|
||||||
|
awful.button({ }, 4, awful.tag.viewnext),
|
||||||
|
awful.button({ }, 5, awful.tag.viewprev)
|
||||||
|
))
|
||||||
|
-- }}}
|
||||||
|
|
||||||
|
-- {{{ Key bindings
|
||||||
|
local function change_layout()
|
||||||
|
awful.layout.inc(1)
|
||||||
|
if client.focus then client.focus:raise() end
|
||||||
|
end
|
||||||
|
local function global_bydirection(d)
|
||||||
|
awful.client.focus.global_bydirection(d)
|
||||||
|
if client.focus then client.focus:raise() end
|
||||||
|
end
|
||||||
|
globalkeys = gears.table.join(
|
||||||
|
awful.key({ modkey, }, "s", hotkeys_popup.show_help,
|
||||||
|
{description="show help", group="awesome"}),
|
||||||
|
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"}),
|
||||||
|
|
||||||
|
awful.key({ modkey }, "j", function () global_bydirection("down")
|
||||||
|
end, {description = "focus downwards", group = "client"}),
|
||||||
|
awful.key({ modkey }, "k", function () global_bydirection("up")
|
||||||
|
end, {description = "focus upwards", group = "client"}),
|
||||||
|
awful.key({ modkey }, "h", function () global_bydirection("left")
|
||||||
|
end, {description = "focus leftwards", group = "layout"}),
|
||||||
|
awful.key({ modkey }, "l", function () global_bydirection("right")
|
||||||
|
end, {description = "focus rightwards", group = "layout"}),
|
||||||
|
|
||||||
|
-- Layout manipulation
|
||||||
|
awful.key({ modkey, "Shift" }, "h", function () awful.client.swap.global_bydirection("left") end,
|
||||||
|
{description = "swap leftwards", group = "client"}),
|
||||||
|
awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.global_bydirection("down") end,
|
||||||
|
{description = "swap downwards", group = "client"}),
|
||||||
|
awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.global_bydirection("up") end,
|
||||||
|
{description = "swap upwards", group = "client"}),
|
||||||
|
awful.key({ modkey, "Shift" }, "l", function () awful.client.swap.global_bydirection("right") end,
|
||||||
|
{description = "swap rightwards", 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 ()
|
||||||
|
awful.client.focus.byidx(1)
|
||||||
|
if client.focus then
|
||||||
|
client.focus:raise()
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
{description = "focus next", group = "client"}),
|
||||||
|
awful.key({ modkey, "Shift" }, "Tab",
|
||||||
|
function ()
|
||||||
|
awful.client.focus.byidx(-1)
|
||||||
|
if client.focus then
|
||||||
|
client.focus:raise()
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
{description = "focus prev", group = "client"}),
|
||||||
|
|
||||||
|
-- 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({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end,
|
||||||
|
{description = "increase master width factor", group = "layout"}),
|
||||||
|
awful.key({ modkey, }, "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 () change_layout() end,
|
||||||
|
{description = "select next", group = "layout"}),
|
||||||
|
awful.key({ modkey, "Shift" }, "space", function () change_layout() end,
|
||||||
|
{description = "select previous", group = "layout"}),
|
||||||
|
|
||||||
|
awful.key({ modkey, "Control" }, "n",
|
||||||
|
function ()
|
||||||
|
local c = awful.client.restore()
|
||||||
|
-- Focus restored client
|
||||||
|
if c then
|
||||||
|
c:emit_signal(
|
||||||
|
"request::activate", "key.unminimize", {raise = true}
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
{description = "restore minimized", group = "client"}),
|
||||||
|
|
||||||
|
-- Prompt
|
||||||
|
awful.key({ modkey }, "e", function () awful.screen.focused().mypromptbox:run() end,
|
||||||
|
{description = "run command", 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"}),
|
||||||
|
-- Menubar
|
||||||
|
awful.key({ modkey }, "p", function() menubar.show() end,
|
||||||
|
{description = "show the menubar", group = "launcher"}),
|
||||||
|
|
||||||
|
awful.key({ modkey }, "r", function() awful.spawn(run) end, {description = "run prompt"}),
|
||||||
|
awful.key({ modkey }, "b", function() awful.spawn(browser) end, {description = "open browser"}),
|
||||||
|
awful.key({ modkey }, "t", function() awful.spawn(file_manager) end, {description = "open file manager"}),
|
||||||
|
awful.key({ modkey, "Shift" }, "s", function() awful.spawn("screenshot") end, {description = "screenshot"}),
|
||||||
|
awful.key({ modkey }, "v", function() awful.spawn("pavucontrol") end, {description = "audio settings"})
|
||||||
|
)
|
||||||
|
|
||||||
|
clientkeys = gears.table.join(
|
||||||
|
awful.key({ modkey, "Shift" }, "f",
|
||||||
|
function (c)
|
||||||
|
c.fullscreen = not c.fullscreen
|
||||||
|
c:raise()
|
||||||
|
end,
|
||||||
|
{description = "toggle fullscreen", group = "client"}),
|
||||||
|
awful.key({ modkey, }, "w", function (c) c:kill() end,
|
||||||
|
{description = "close", group = "client"}),
|
||||||
|
awful.key({ modkey, "Control", "Shift" }, "w", function (c) awesome.kill(c.pid, 9) end,
|
||||||
|
{description = "force close", group = "client"}),
|
||||||
|
awful.key({ modkey }, "f", function (c) awful.client.floating.toggle(c) c:raise() end,
|
||||||
|
{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 = "(un)maximize", group = "client"}),
|
||||||
|
awful.key({ modkey, "Control" }, "m",
|
||||||
|
function (c)
|
||||||
|
c.maximized_vertical = not c.maximized_vertical
|
||||||
|
c:raise()
|
||||||
|
end ,
|
||||||
|
{description = "(un)maximize vertically", group = "client"}),
|
||||||
|
awful.key({ modkey, "Shift" }, "m",
|
||||||
|
function (c)
|
||||||
|
c.maximized_horizontal = not c.maximized_horizontal
|
||||||
|
c:raise()
|
||||||
|
end ,
|
||||||
|
{description = "(un)maximize horizontally", group = "client"})
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Bind all key numbers to tags.
|
||||||
|
-- Be careful: we use keycodes to make it work on any keyboard layout.
|
||||||
|
-- This should map on the top row of your keyboard, usually 1 to 9.
|
||||||
|
for i = 1, 9 do
|
||||||
|
globalkeys = gears.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,
|
||||||
|
{description = "view tag #"..i, group = "tag"}),
|
||||||
|
-- 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,
|
||||||
|
{description = "toggle tag #" .. i, group = "tag"}),
|
||||||
|
-- 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,
|
||||||
|
{description = "move focused client to tag #"..i, group = "tag"}),
|
||||||
|
-- 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,
|
||||||
|
{description = "toggle focused client on tag #" .. i, group = "tag"})
|
||||||
|
)
|
||||||
|
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),
|
||||||
|
awful.button({ modkey, "Shift" }, 1, function (c) c:kill() end)
|
||||||
|
)
|
||||||
|
|
||||||
|
-- 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
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Floating clients.
|
||||||
|
{ rule_any = {
|
||||||
|
instance = {
|
||||||
|
"DTA", -- Firefox addon DownThemAll.
|
||||||
|
"copyq", -- Includes session name in class.
|
||||||
|
"pinentry",
|
||||||
|
},
|
||||||
|
class = {
|
||||||
|
"Arandr",
|
||||||
|
"Blueman-manager",
|
||||||
|
"Gpick",
|
||||||
|
"Kruler",
|
||||||
|
"MessageWin", -- kalarm.
|
||||||
|
"Sxiv",
|
||||||
|
"Tor Browser", -- Needs a fixed window size to avoid fingerprinting by screen size.
|
||||||
|
"Wpa_gui",
|
||||||
|
"veromix",
|
||||||
|
"xtightvncviewer"},
|
||||||
|
|
||||||
|
-- Note that the name property shown in xprop might be set slightly after creation of the client
|
||||||
|
-- and the name shown there might not match defined rules here.
|
||||||
|
name = {
|
||||||
|
"Event Tester", -- xev.
|
||||||
|
},
|
||||||
|
role = {
|
||||||
|
"AlarmWindow", -- Thunderbird's calendar.
|
||||||
|
"ConfigManager", -- Thunderbird's about:config.
|
||||||
|
"pop-up", -- e.g. Google Chrome's (detached) Developer Tools.
|
||||||
|
}
|
||||||
|
}, properties = { floating = true }},
|
||||||
|
|
||||||
|
-- Add titlebars to normal clients and dialogs
|
||||||
|
{ rule_any = {type = { "normal", "dialog" }
|
||||||
|
}, properties = { titlebars_enabled = true }
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Set Firefox to always map on the tag named "2" on screen 1.
|
||||||
|
-- { rule = { class = "Firefox" },
|
||||||
|
-- properties = { screen = 1, tag = "2" } },
|
||||||
|
}
|
||||||
|
-- }}}
|
||||||
|
|
||||||
|
-- {{{ 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
|
||||||
|
|
||||||
|
-- make .exe programs floating
|
||||||
|
if c.class and string.sub(c.class, -4) == ".exe" then
|
||||||
|
c.floating = true
|
||||||
|
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)
|
||||||
|
-- buttons for the titlebar
|
||||||
|
local buttons = gears.table.join(
|
||||||
|
awful.button({ }, 1, function()
|
||||||
|
c:emit_signal("request::activate", "titlebar", {raise = true})
|
||||||
|
awful.mouse.client.move(c)
|
||||||
|
end),
|
||||||
|
awful.button({ }, 3, function()
|
||||||
|
c:emit_signal("request::activate", "titlebar", {raise = true})
|
||||||
|
awful.mouse.client.resize(c)
|
||||||
|
end)
|
||||||
|
)
|
||||||
|
|
||||||
|
awful.titlebar(c) : setup {
|
||||||
|
{ -- Left
|
||||||
|
awful.titlebar.widget.iconwidget (c),
|
||||||
|
awful.titlebar.widget.floatingbutton (c),
|
||||||
|
awful.titlebar.widget.stickybutton (c),
|
||||||
|
awful.titlebar.widget.ontopbutton (c),
|
||||||
|
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.minimizebutton (c),
|
||||||
|
awful.titlebar.widget.maximizedbutton(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 = false})
|
||||||
|
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)
|
||||||
|
-- }}}
|
||||||
132
config/awesome/theme.lua
Normal file
132
config/awesome/theme.lua
Normal file
|
|
@ -0,0 +1,132 @@
|
||||||
|
---------------------------
|
||||||
|
-- Default awesome theme --
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
local theme_assets = require("beautiful.theme_assets")
|
||||||
|
local xresources = require("beautiful.xresources")
|
||||||
|
local dpi = xresources.apply_dpi
|
||||||
|
|
||||||
|
local gfs = require("gears.filesystem")
|
||||||
|
local themes_path = gfs.get_themes_dir()
|
||||||
|
|
||||||
|
local theme = {}
|
||||||
|
|
||||||
|
theme.font = "sans 8"
|
||||||
|
|
||||||
|
theme.bg_normal = "#222222"
|
||||||
|
theme.bg_focus = "#9B95CB"
|
||||||
|
theme.bg_urgent = "#ff0000"
|
||||||
|
theme.bg_minimize = "#444444"
|
||||||
|
theme.bg_systray = theme.bg_normal
|
||||||
|
|
||||||
|
theme.fg_normal = "#aaaaaa"
|
||||||
|
theme.fg_focus = "#ffffff"
|
||||||
|
theme.fg_urgent = "#ffffff"
|
||||||
|
theme.fg_minimize = "#ffffff"
|
||||||
|
|
||||||
|
theme.useless_gap = dpi(5)
|
||||||
|
theme.border_width = dpi(3)
|
||||||
|
theme.border_normal = "#000000"
|
||||||
|
theme.border_focus = "#4949ff"
|
||||||
|
theme.border_marked = "#91231c"
|
||||||
|
|
||||||
|
-- There are other variable sets
|
||||||
|
-- overriding the default one when
|
||||||
|
-- defined, the sets are:
|
||||||
|
-- taglist_[bg|fg]_[focus|urgent|occupied|empty|volatile]
|
||||||
|
-- tasklist_[bg|fg]_[focus|urgent]
|
||||||
|
-- titlebar_[bg|fg]_[normal|focus]
|
||||||
|
-- tooltip_[font|opacity|fg_color|bg_color|border_width|border_color]
|
||||||
|
-- mouse_finder_[color|timeout|animate_timeout|radius|factor]
|
||||||
|
-- prompt_[fg|bg|fg_cursor|bg_cursor|font]
|
||||||
|
-- hotkeys_[bg|fg|border_width|border_color|shape|opacity|modifiers_fg|label_bg|label_fg|group_margin|font|description_font]
|
||||||
|
-- Example:
|
||||||
|
--theme.taglist_bg_focus = "#ff0000"
|
||||||
|
|
||||||
|
-- Generate taglist squares:
|
||||||
|
local taglist_square_size = dpi(4)
|
||||||
|
theme.taglist_squares_sel = theme_assets.taglist_squares_sel(
|
||||||
|
taglist_square_size, theme.fg_normal
|
||||||
|
)
|
||||||
|
theme.taglist_squares_unsel = theme_assets.taglist_squares_unsel(
|
||||||
|
taglist_square_size, theme.fg_normal
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Variables set for theming notifications:
|
||||||
|
-- notification_font
|
||||||
|
-- notification_[bg|fg]
|
||||||
|
-- notification_[width|height|margin]
|
||||||
|
-- notification_[border_color|border_width|shape|opacity]
|
||||||
|
|
||||||
|
-- Variables set for theming the menu:
|
||||||
|
-- menu_[bg|fg]_[normal|focus]
|
||||||
|
-- menu_[border_color|border_width]
|
||||||
|
theme.menu_submenu_icon = themes_path.."default/submenu.png"
|
||||||
|
theme.menu_height = dpi(15)
|
||||||
|
theme.menu_width = dpi(100)
|
||||||
|
|
||||||
|
-- You can add as many variables as
|
||||||
|
-- you wish and access them by using
|
||||||
|
-- beautiful.variable in your rc.lua
|
||||||
|
--theme.bg_widget = "#cc0000"
|
||||||
|
|
||||||
|
-- Define the image to load
|
||||||
|
theme.titlebar_close_button_normal = themes_path.."default/titlebar/close_normal.png"
|
||||||
|
theme.titlebar_close_button_focus = themes_path.."default/titlebar/close_focus.png"
|
||||||
|
|
||||||
|
theme.titlebar_minimize_button_normal = themes_path.."default/titlebar/minimize_normal.png"
|
||||||
|
theme.titlebar_minimize_button_focus = themes_path.."default/titlebar/minimize_focus.png"
|
||||||
|
|
||||||
|
theme.titlebar_ontop_button_normal_inactive = themes_path.."default/titlebar/ontop_normal_inactive.png"
|
||||||
|
theme.titlebar_ontop_button_focus_inactive = themes_path.."default/titlebar/ontop_focus_inactive.png"
|
||||||
|
theme.titlebar_ontop_button_normal_active = themes_path.."default/titlebar/ontop_normal_active.png"
|
||||||
|
theme.titlebar_ontop_button_focus_active = themes_path.."default/titlebar/ontop_focus_active.png"
|
||||||
|
|
||||||
|
theme.titlebar_sticky_button_normal_inactive = themes_path.."default/titlebar/sticky_normal_inactive.png"
|
||||||
|
theme.titlebar_sticky_button_focus_inactive = themes_path.."default/titlebar/sticky_focus_inactive.png"
|
||||||
|
theme.titlebar_sticky_button_normal_active = themes_path.."default/titlebar/sticky_normal_active.png"
|
||||||
|
theme.titlebar_sticky_button_focus_active = themes_path.."default/titlebar/sticky_focus_active.png"
|
||||||
|
|
||||||
|
theme.titlebar_floating_button_normal_inactive = themes_path.."default/titlebar/floating_normal_inactive.png"
|
||||||
|
theme.titlebar_floating_button_focus_inactive = themes_path.."default/titlebar/floating_focus_inactive.png"
|
||||||
|
theme.titlebar_floating_button_normal_active = themes_path.."default/titlebar/floating_normal_active.png"
|
||||||
|
theme.titlebar_floating_button_focus_active = themes_path.."default/titlebar/floating_focus_active.png"
|
||||||
|
|
||||||
|
theme.titlebar_maximized_button_normal_inactive = themes_path.."default/titlebar/maximized_normal_inactive.png"
|
||||||
|
theme.titlebar_maximized_button_focus_inactive = themes_path.."default/titlebar/maximized_focus_inactive.png"
|
||||||
|
theme.titlebar_maximized_button_normal_active = themes_path.."default/titlebar/maximized_normal_active.png"
|
||||||
|
theme.titlebar_maximized_button_focus_active = themes_path.."default/titlebar/maximized_focus_active.png"
|
||||||
|
|
||||||
|
theme.wallpaper = "~/.local/share/wallpaper.png"
|
||||||
|
|
||||||
|
-- You can use your own layout icons like this:
|
||||||
|
theme.layout_fairh = themes_path.."default/layouts/fairhw.png"
|
||||||
|
theme.layout_fairv = themes_path.."default/layouts/fairvw.png"
|
||||||
|
theme.layout_floating = themes_path.."default/layouts/floatingw.png"
|
||||||
|
theme.layout_magnifier = themes_path.."default/layouts/magnifierw.png"
|
||||||
|
theme.layout_max = themes_path.."default/layouts/maxw.png"
|
||||||
|
theme.layout_fullscreen = themes_path.."default/layouts/fullscreenw.png"
|
||||||
|
theme.layout_tilebottom = themes_path.."default/layouts/tilebottomw.png"
|
||||||
|
theme.layout_tileleft = themes_path.."default/layouts/tileleftw.png"
|
||||||
|
theme.layout_tile = themes_path.."default/layouts/tilew.png"
|
||||||
|
theme.layout_tiletop = themes_path.."default/layouts/tiletopw.png"
|
||||||
|
theme.layout_spiral = themes_path.."default/layouts/spiralw.png"
|
||||||
|
theme.layout_dwindle = themes_path.."default/layouts/dwindlew.png"
|
||||||
|
theme.layout_cornernw = themes_path.."default/layouts/cornernww.png"
|
||||||
|
theme.layout_cornerne = themes_path.."default/layouts/cornernew.png"
|
||||||
|
theme.layout_cornersw = themes_path.."default/layouts/cornersww.png"
|
||||||
|
theme.layout_cornerse = themes_path.."default/layouts/cornersew.png"
|
||||||
|
|
||||||
|
-- Generate Awesome icon:
|
||||||
|
theme.awesome_icon = theme_assets.awesome_icon(
|
||||||
|
theme.menu_height, theme.bg_focus, theme.fg_focus
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Define the icon theme for application icons. If not set then the icons
|
||||||
|
-- from /usr/share/icons and /usr/share/icons/hicolor will be used.
|
||||||
|
theme.icon_theme = nil
|
||||||
|
|
||||||
|
return theme
|
||||||
|
|
||||||
|
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80
|
||||||
|
|
||||||
75
config/bash/aliases
Normal file
75
config/bash/aliases
Normal file
|
|
@ -0,0 +1,75 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
# Sets aliases
|
||||||
|
|
||||||
|
# prev dir
|
||||||
|
alias ...='cd ../..'
|
||||||
|
alias ....='cd ../../..'
|
||||||
|
|
||||||
|
# color output
|
||||||
|
alias grep='grep --color=auto'
|
||||||
|
alias diff='diff --color=auto'
|
||||||
|
|
||||||
|
# replace ls with lsd
|
||||||
|
if _exists lsd; then
|
||||||
|
if [[ $TERM == 'linux' ]]; then
|
||||||
|
alias ls='lsd --icon=never'
|
||||||
|
else
|
||||||
|
alias ls='lsd'
|
||||||
|
fi
|
||||||
|
alias tree='ll --tree'
|
||||||
|
fi
|
||||||
|
alias ll='ls -la'
|
||||||
|
alias la='ls -la'
|
||||||
|
alias l='ls'
|
||||||
|
|
||||||
|
# replace cat with bat
|
||||||
|
_exists bat && alias cat='bat'
|
||||||
|
|
||||||
|
# nvim aliases
|
||||||
|
alias v='vim'
|
||||||
|
alias vi='vim'
|
||||||
|
_exists nvim && alias vim='nvim'
|
||||||
|
alias :q='exit'
|
||||||
|
|
||||||
|
# human readable file sizes
|
||||||
|
alias df='df -h'
|
||||||
|
alias du='du -h'
|
||||||
|
|
||||||
|
# file confirmation
|
||||||
|
alias mv='mv -i'
|
||||||
|
alias rm='rm -i'
|
||||||
|
alias cp='cp -i'
|
||||||
|
|
||||||
|
# git aliases
|
||||||
|
alias gl='git log --oneline --graph --all'
|
||||||
|
alias gds='git diff --staged'
|
||||||
|
alias gd='git diff'
|
||||||
|
alias gs='git status'
|
||||||
|
alias ga='git add'
|
||||||
|
alias gr='git reset'
|
||||||
|
|
||||||
|
# pacman aliases
|
||||||
|
if _exists pacman; then
|
||||||
|
alias p='pacman'
|
||||||
|
alias pq='pacman -Q | fzf'
|
||||||
|
alias aur='pacman -Qm'
|
||||||
|
alias qo='pacman -Qo'
|
||||||
|
alias ql='pacman -Ql'
|
||||||
|
alias qi='pacman -Qii'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# for using aliases with sudo
|
||||||
|
_exists doas && alias sudo='doas ' || alias sudo='sudo '
|
||||||
|
alias doas='doas '
|
||||||
|
|
||||||
|
alias py='python'
|
||||||
|
alias s='systemctl'
|
||||||
|
alias x='sx ~/.config/sx/sxrc'
|
||||||
|
alias xo='xdg-open'
|
||||||
|
alias log='sudo journalctl -b'
|
||||||
|
alias shutdown='shutdown now'
|
||||||
|
alias clipboard-image='xclip -o -sel clip | nsxiv-pipe'
|
||||||
|
alias path='sed "s/:/\n/g" <<< $PATH'
|
||||||
|
alias utc='date -u +"%Y-%m-%d %H:%M:%S UTC"'
|
||||||
|
alias fonts='fc-list | awk -F: "{ print \$2 }" | sort | uniq | fzf'
|
||||||
|
alias hz='xrandr --output DisplayPort-1 --mode 1920x1080 --rate'
|
||||||
28
config/bash/bashrc
Normal file
28
config/bash/bashrc
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
# .bashrc
|
||||||
|
|
||||||
|
# If not running interactively, don't do anything
|
||||||
|
[[ $- != *i* ]] && return
|
||||||
|
|
||||||
|
function _bashrc_main {
|
||||||
|
local BASH_CONFIG_DIR=~/.config/bash
|
||||||
|
# source a file in $BASH_CONFIG_DIR
|
||||||
|
function _load {
|
||||||
|
if [ -f "$BASH_CONFIG_DIR/$1" ]; then
|
||||||
|
source "$BASH_CONFIG_DIR/$1"
|
||||||
|
else
|
||||||
|
echo "Missing bash config file: $1" >&2
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
function _exists {
|
||||||
|
type $1 &> /dev/null
|
||||||
|
}
|
||||||
|
# load custom settings
|
||||||
|
_load custom
|
||||||
|
unset -f _load
|
||||||
|
unset -f _exists
|
||||||
|
}
|
||||||
|
|
||||||
|
_bashrc_main
|
||||||
|
unset -f _bashrc_main
|
||||||
|
# =====<end of .bashrc>=====
|
||||||
74
config/bash/custom
Normal file
74
config/bash/custom
Normal file
|
|
@ -0,0 +1,74 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
# Custom bash settings
|
||||||
|
|
||||||
|
# get parent process name
|
||||||
|
local parent="$(ps -o command= -p "$PPID" | cut -f1 -d' ')"
|
||||||
|
if [[ "$parent" == *alacritty ]]; then
|
||||||
|
if [[ -z "$TMUX" && -z "$NOTMUX" ]]; then
|
||||||
|
if [[ "$PWD" == "$HOME" ]]; then
|
||||||
|
exec sh-tmux
|
||||||
|
else
|
||||||
|
exec sh-tmux -n
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# set shell level
|
||||||
|
elif [[ "$parent" == "tmux" ]]; then
|
||||||
|
export SHLVL=2
|
||||||
|
fi
|
||||||
|
|
||||||
|
# default prompt command sets window title
|
||||||
|
unset PROMPT_COMMAND
|
||||||
|
# save command history to ~/.cache/bash_history, no limit
|
||||||
|
_load history
|
||||||
|
# aliases
|
||||||
|
_load aliases
|
||||||
|
# set xdg env vars to keep home directory clean
|
||||||
|
_load xdg
|
||||||
|
|
||||||
|
if _exists fzf; then
|
||||||
|
export FZF_DEFAULT_OPTS="--bind=ctrl-u:page-up,ctrl-d:page-down"
|
||||||
|
eval "$(fzf --bash)"
|
||||||
|
fi
|
||||||
|
_exists zoxide && eval "$(zoxide init bash)"
|
||||||
|
|
||||||
|
# use starship prompt, unless in linux terminal
|
||||||
|
if [[ "$TERM" != "linux" ]]; then
|
||||||
|
function _set_win_title {
|
||||||
|
# check if still in .bashrc
|
||||||
|
if declare -F _bashrc_main > /dev/null; then
|
||||||
|
return
|
||||||
|
elif [[ "$@" != @("starship_precmd"|""|"__fzf_history__"|"history -a"|"__zoxide_hook") ]]; then
|
||||||
|
printf "\e]0;%s | %s | %s\a" "$(dirs +0)" "$@" "$(date +"%H:%M:%S")"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
_exists starship && eval "$(starship init bash)"
|
||||||
|
# set window title after running command
|
||||||
|
trap "$(trap -p DEBUG | awk -F"'" '{print $2 ";"}')_set_win_title \"\${BASH_COMMAND}\"" DEBUG
|
||||||
|
else
|
||||||
|
# [username pwd] green $ reset
|
||||||
|
PS1="[\u \W] \[\e[32;1m\]\$\[\e[0m\] "
|
||||||
|
# set shell level
|
||||||
|
if [[ "$parent" == "login" ]]; then
|
||||||
|
export SHLVL=0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# set vi mode
|
||||||
|
set -o vi
|
||||||
|
_exists nvim && export EDITOR=nvim || export EDITOR=vim
|
||||||
|
export BROWSER=firefox
|
||||||
|
|
||||||
|
# disable xon/xoff flow control (ctrl-s, ctrl-q)
|
||||||
|
stty -ixon
|
||||||
|
# do not need to use cd to change directories
|
||||||
|
shopt -s autocd
|
||||||
|
# do not overwrite files when redirecting
|
||||||
|
set -o noclobber
|
||||||
|
# glob hidden files
|
||||||
|
shopt -s dotglob
|
||||||
|
|
||||||
|
# startup script for choosing environment
|
||||||
|
if [[ -z $DISPLAY && "$(tty)" == "/dev/tty1" ]]; then
|
||||||
|
_load startup
|
||||||
|
fi
|
||||||
14
config/bash/history
Normal file
14
config/bash/history
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
# history file settings
|
||||||
|
|
||||||
|
# don't add duplicate lines, lines starting with space to history
|
||||||
|
HISTCONTROL=ignoreboth
|
||||||
|
|
||||||
|
# append to the history file, don't overwrite it
|
||||||
|
shopt -s histappend
|
||||||
|
# eternal bash history
|
||||||
|
HISTFILESIZE=
|
||||||
|
HISTSIZE=
|
||||||
|
HISTTIMEFORMAT="[%F %T] "
|
||||||
|
HISTFILE=~/.cache/bash_history
|
||||||
|
PROMPT_COMMAND="history -a; $PROMPT_COMMAND"
|
||||||
16
config/bash/startup
Normal file
16
config/bash/startup
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
# Startup script to run when logging in on tty1
|
||||||
|
|
||||||
|
SXRC=~/.config/sx/sxrc
|
||||||
|
printf "\e[31mSelect environment:\n\e[0m"
|
||||||
|
SELECTIONS=( "sx $SXRC awesome" "sx $SXRC qtile" "sway" )
|
||||||
|
SELECTION_NAMES=( "awesome" "qtile" "Sway" "tty" )
|
||||||
|
for (( i=0; i<${#SELECTION_NAMES[@]}; i++ )); do
|
||||||
|
echo " "$((i + 1)) - ${SELECTION_NAMES[$i]}
|
||||||
|
done
|
||||||
|
read -sn1 WM_SELECTION
|
||||||
|
echo $WM_SELECTION | grep "^[0-9]$" > /dev/null
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
${SELECTIONS[$(($WM_SELECTION - 1))]}
|
||||||
|
fi
|
||||||
|
|
||||||
42
config/bash/xdg
Normal file
42
config/bash/xdg
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
# set xdg variables and other variables to clean up $HOME
|
||||||
|
|
||||||
|
export XDG_DATA_HOME="$HOME/.local/share"
|
||||||
|
export XDG_CONFIG_HOME="$HOME/.config"
|
||||||
|
export XDG_STATE_HOME="$HOME/.local/state"
|
||||||
|
export XDG_CACHE_HOME="$HOME/.cache"
|
||||||
|
|
||||||
|
# do not make .lesshst
|
||||||
|
export LESSHISTFILE=-
|
||||||
|
# set python startup file (to avoid creating ~/.python_history)
|
||||||
|
export PYTHONSTARTUP="$XDG_CONFIG_HOME/python/startup.py"
|
||||||
|
# .node_repl_history location
|
||||||
|
export NODE_REPL_HISTORY="$XDG_CACHE_HOME/node_repl_history"
|
||||||
|
# .Xauthority location
|
||||||
|
export XAUTHORITY="$XDG_RUNTIME_DIR/Xauthority"
|
||||||
|
# .inputrc location
|
||||||
|
export INPUTRC="$XDG_CONFIG_HOME/readline/inputrc"
|
||||||
|
# .rustup location
|
||||||
|
export RUSTUP_HOME="$XDG_DATA_HOME/rustup"
|
||||||
|
# .cargo location
|
||||||
|
export CARGO_HOME="$XDG_DATA_HOME/cargo"
|
||||||
|
# .npmrc location
|
||||||
|
export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME/npm/npmrc"
|
||||||
|
# .xinitrc location
|
||||||
|
export XINITRC="$XDG_CONFIG_HOME/X11/xinitrc"
|
||||||
|
# .gtkrc-2.0 location
|
||||||
|
export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/gtkrc"
|
||||||
|
# .wine location
|
||||||
|
export WINEPREFIX="$XDG_DATA_HOME/wine"
|
||||||
|
# cursor
|
||||||
|
export XCURSOR_PATH=/usr/share/icons:${XDG_DATA_HOME}/icons
|
||||||
|
# .gnupg location
|
||||||
|
export GNUPGHOME="$XDG_DATA_HOME/gnupg"
|
||||||
|
# .nuget location
|
||||||
|
export NUGET_PACKAGES="$XDG_CACHE_HOME/NuGetPackages"
|
||||||
|
# java
|
||||||
|
export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java
|
||||||
|
export ANDROID_HOME="$XDG_DATA_HOME"/android
|
||||||
|
# gdb
|
||||||
|
export GDBHISTFILE="$XDG_CACHE_HOME/gdb_history"
|
||||||
|
export PYENV_ROOT="$XDG_DATA_HOME/pyenv"
|
||||||
15
config/fontconfig/conf.d/10-no-sub-pixel.conf
Normal file
15
config/fontconfig/conf.d/10-no-sub-pixel.conf
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<description>Disable sub-pixel rendering</description>
|
||||||
|
<!-- Disable sub-pixel rendering -->
|
||||||
|
<match target="pattern">
|
||||||
|
<!--
|
||||||
|
This sort of configuration is available on the major desktop environments
|
||||||
|
and we don't have to break it with "assign" unconditionally. however, we
|
||||||
|
want to set something for others. So we use "append" here to get this working
|
||||||
|
in both cases so that most clients would takes a look at the first place only.
|
||||||
|
-->
|
||||||
|
<edit name="rgba" mode="append"><const>none</const></edit>
|
||||||
|
</match>
|
||||||
|
</fontconfig>
|
||||||
18
config/fontconfig/conf.d/15-no-ligature-monospace.conf
Normal file
18
config/fontconfig/conf.d/15-no-ligature-monospace.conf
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<description>Disable ligatures for monospaced fonts to avoid ff, fi, ffi, etc. becoming only one character wide</description>
|
||||||
|
<match target="font">
|
||||||
|
<test name="family" compare="eq" ignore-blanks="true">
|
||||||
|
<string>Nimbus Mono</string>
|
||||||
|
</test>
|
||||||
|
<edit name="fontfeatures" mode="append">
|
||||||
|
<string>liga off</string>
|
||||||
|
<string>dlig off</string>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
<match target="pattern">
|
||||||
|
<test qual="any" name="family" compare="contains"><string>Nimbus Mono</string></test>
|
||||||
|
<edit name="family" mode="assign" binding="same"><string>Noto Sans Mono</string></edit>
|
||||||
|
</match>
|
||||||
|
</fontconfig>
|
||||||
268
config/fontconfig/conf.d/99-japanese-fonts.conf
Normal file
268
config/fontconfig/conf.d/99-japanese-fonts.conf
Normal file
|
|
@ -0,0 +1,268 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
|
||||||
|
<!--
|
||||||
|
For font consistency, all applications should be set to use the serif,
|
||||||
|
sans-serif, and monospace aliases, which are mapped to particular fonts by
|
||||||
|
fontconfig.
|
||||||
|
|
||||||
|
This fonts.conf specifies a default font for the Japanese locale (ja_JP)
|
||||||
|
and keeps western style fonts for Latin letters.
|
||||||
|
|
||||||
|
https://tatsumoto.neocities.org/blog/japanese-fonts.html
|
||||||
|
https://wiki.archlinux.org/index.php/Font_configuration/Examples#Japanese
|
||||||
|
https://wiki.archlinux.org/index.php/Metric-compatible_fonts
|
||||||
|
https://www.freedesktop.org/software/fontconfig/fontconfig-user.html
|
||||||
|
-->
|
||||||
|
|
||||||
|
<fontconfig>
|
||||||
|
<match target="font">
|
||||||
|
<edit name="embeddedbitmap" mode="assign">
|
||||||
|
<bool>true</bool>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
|
||||||
|
<!-- Default font (no fc-match pattern) -->
|
||||||
|
<match>
|
||||||
|
<edit name="family" mode="append">
|
||||||
|
<string>Noto Sans CJK JP</string>
|
||||||
|
</edit>
|
||||||
|
<edit name="family" mode="append">
|
||||||
|
<string>Noto Sans</string>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
|
||||||
|
<!-- Default font for the ja_JP locale (no fc-match pattern) -->
|
||||||
|
<match>
|
||||||
|
<test compare="contains" name="lang">
|
||||||
|
<string>ja</string>
|
||||||
|
</test>
|
||||||
|
<edit name="family" mode="prepend">
|
||||||
|
<string>Noto Sans CJK JP</string>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
|
||||||
|
<!-- Default serif fonts -->
|
||||||
|
<match>
|
||||||
|
<test qual="any" name="family">
|
||||||
|
<string>serif</string>
|
||||||
|
</test>
|
||||||
|
<edit name="family" mode="prepend" binding="strong">
|
||||||
|
<string>Noto Serif</string>
|
||||||
|
</edit>
|
||||||
|
<edit name="family" mode="prepend" binding="strong">
|
||||||
|
<string>Noto Serif CJK JP</string>
|
||||||
|
</edit>
|
||||||
|
<edit name="family" mode="prepend" binding="strong">
|
||||||
|
<string>IPAPMincho</string>
|
||||||
|
</edit>
|
||||||
|
<edit name="family" mode="prepend" binding="strong">
|
||||||
|
<string>HanaMinA</string>
|
||||||
|
</edit>
|
||||||
|
<edit name="family" mode="prepend" binding="strong">
|
||||||
|
<string>HanaMinB</string>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
|
||||||
|
<!-- Default sans-serif fonts -->
|
||||||
|
<match target="pattern">
|
||||||
|
<test qual="any" name="family">
|
||||||
|
<string>sans-serif</string>
|
||||||
|
</test>
|
||||||
|
<edit name="family" mode="prepend" binding="strong">
|
||||||
|
<string>Noto Sans</string>
|
||||||
|
</edit>
|
||||||
|
<edit name="family" mode="prepend" binding="strong">
|
||||||
|
<string>Noto Sans CJK JP</string>
|
||||||
|
</edit>
|
||||||
|
<edit name="family" mode="prepend" binding="strong">
|
||||||
|
<string>IPAPGothic</string>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
|
||||||
|
<!-- Default monospace fonts -->
|
||||||
|
<match target="pattern">
|
||||||
|
<test qual="any" name="family">
|
||||||
|
<string>monospace</string>
|
||||||
|
</test>
|
||||||
|
<edit name="family" mode="prepend" binding="strong">
|
||||||
|
<string>Noto Sans Mono</string>
|
||||||
|
</edit>
|
||||||
|
<edit name="family" mode="prepend" binding="strong">
|
||||||
|
<string>Noto Sans Mono CJK JP</string>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
|
||||||
|
<!-- Japanese -->
|
||||||
|
<match>
|
||||||
|
<test name="lang" compare="contains">
|
||||||
|
<string>ja</string>
|
||||||
|
</test>
|
||||||
|
<test name="family">
|
||||||
|
<string>serif</string>
|
||||||
|
</test>
|
||||||
|
<edit name="family" mode="prepend">
|
||||||
|
<string>Noto Serif CJK JP</string>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
<match>
|
||||||
|
<test name="lang" compare="contains">
|
||||||
|
<string>ja</string>
|
||||||
|
</test>
|
||||||
|
<test name="family">
|
||||||
|
<string>sans-serif</string>
|
||||||
|
</test>
|
||||||
|
<edit name="family" mode="prepend">
|
||||||
|
<string>Noto Sans CJK JP</string>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
<match>
|
||||||
|
<test name="lang" compare="contains">
|
||||||
|
<string>ja</string>
|
||||||
|
</test>
|
||||||
|
<test name="family">
|
||||||
|
<string>monospace</string>
|
||||||
|
</test>
|
||||||
|
<edit name="family" mode="prepend">
|
||||||
|
<string>Noto Sans Mono CJK JP</string>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
|
||||||
|
<!-- Chinese -->
|
||||||
|
<match>
|
||||||
|
<test name="lang" compare="contains">
|
||||||
|
<string>zh</string>
|
||||||
|
</test>
|
||||||
|
<test name="family">
|
||||||
|
<string>serif</string>
|
||||||
|
</test>
|
||||||
|
<edit name="family" mode="prepend">
|
||||||
|
<string>Noto Serif CJK SC</string>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
<match>
|
||||||
|
<test name="lang" compare="contains">
|
||||||
|
<string>zh</string>
|
||||||
|
</test>
|
||||||
|
<test name="family">
|
||||||
|
<string>sans-serif</string>
|
||||||
|
</test>
|
||||||
|
<edit name="family" mode="prepend">
|
||||||
|
<string>Noto Sans CJK SC</string>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
<match>
|
||||||
|
<test name="lang" compare="contains">
|
||||||
|
<string>zh</string>
|
||||||
|
</test>
|
||||||
|
<test name="family">
|
||||||
|
<string>monospace</string>
|
||||||
|
</test>
|
||||||
|
<edit name="family" mode="prepend">
|
||||||
|
<string>Noto Sans Mono CJK SC</string>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
|
||||||
|
<!-- WenQuanYi Zen Hei -> WenQuanYi Micro Hei -->
|
||||||
|
<match target="pattern">
|
||||||
|
<test qual="any" name="family">
|
||||||
|
<string>WenQuanYi Zen Hei</string>
|
||||||
|
</test>
|
||||||
|
<edit name="family" mode="assign" binding="same">
|
||||||
|
<string>WenQuanYi Micro Hei</string>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
<match target="pattern">
|
||||||
|
<test qual="any" name="family">
|
||||||
|
<string>WenQuanYi Zen Hei Lite</string>
|
||||||
|
</test>
|
||||||
|
<edit name="family" mode="assign" binding="same">
|
||||||
|
<string>WenQuanYi Micro Hei Lite</string>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
<match target="pattern">
|
||||||
|
<test qual="any" name="family">
|
||||||
|
<string>WenQuanYi Zen Hei Mono</string>
|
||||||
|
</test>
|
||||||
|
<edit name="family" mode="assign" binding="same">
|
||||||
|
<string>WenQuanYi Micro Hei Mono</string>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
|
||||||
|
<!-- Microsoft YaHei, SimHei, SimSun -> WenQuanYi Micro Hei -->
|
||||||
|
<match target="pattern">
|
||||||
|
<test qual="any" name="family">
|
||||||
|
<string>Microsoft YaHei</string>
|
||||||
|
</test>
|
||||||
|
<edit name="family" mode="assign" binding="same">
|
||||||
|
<string>WenQuanYi Micro Hei</string>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
<match target="pattern">
|
||||||
|
<test qual="any" name="family">
|
||||||
|
<string>SimHei</string>
|
||||||
|
</test>
|
||||||
|
<edit name="family" mode="assign" binding="same">
|
||||||
|
<string>WenQuanYi Micro Hei</string>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
<match target="pattern">
|
||||||
|
<test qual="any" name="family">
|
||||||
|
<string>SimSun</string>
|
||||||
|
</test>
|
||||||
|
<edit name="family" mode="assign" binding="same">
|
||||||
|
<string>WenQuanYi Micro Hei</string>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
<match target="pattern">
|
||||||
|
<test qual="any" name="family">
|
||||||
|
<string>SimSun-18030</string>
|
||||||
|
</test>
|
||||||
|
<edit name="family" mode="assign" binding="same">
|
||||||
|
<string>WenQuanYi Micro Hei</string>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
|
||||||
|
<!-- Fallback fonts preference order -->
|
||||||
|
<alias>
|
||||||
|
<family>sans-serif</family>
|
||||||
|
<prefer>
|
||||||
|
<family>Noto Sans</family>
|
||||||
|
<family>Noto Sans CJK JP</family>
|
||||||
|
<family>Open Sans</family>
|
||||||
|
<family>Droid Sans</family>
|
||||||
|
<family>Ubuntu</family>
|
||||||
|
<family>Roboto</family>
|
||||||
|
<family>Source Han Sans JP</family>
|
||||||
|
<family>IPAPGothic</family>
|
||||||
|
<family>VL PGothic</family>
|
||||||
|
<family>Koruri</family>
|
||||||
|
</prefer>
|
||||||
|
</alias>
|
||||||
|
|
||||||
|
<alias>
|
||||||
|
<family>serif</family>
|
||||||
|
<prefer>
|
||||||
|
<family>Noto Serif</family>
|
||||||
|
<family>Noto Serif CJK JP</family>
|
||||||
|
<family>Droid Serif</family>
|
||||||
|
<family>Roboto Slab</family>
|
||||||
|
<family>IPAPMincho</family>
|
||||||
|
<family>HanaMinA</family>
|
||||||
|
<family>HanaMinB</family>
|
||||||
|
</prefer>
|
||||||
|
</alias>
|
||||||
|
|
||||||
|
<alias>
|
||||||
|
<family>monospace</family>
|
||||||
|
<prefer>
|
||||||
|
<family>Noto Sans Mono</family>
|
||||||
|
<family>Noto Sans Mono CJK JP</family>
|
||||||
|
<family>Inconsolatazi4</family>
|
||||||
|
<family>Ubuntu Mono</family>
|
||||||
|
<family>Droid Sans Mono</family>
|
||||||
|
<family>Roboto Mono</family>
|
||||||
|
<family>IPAPGothic</family>
|
||||||
|
</prefer>
|
||||||
|
</alias>
|
||||||
|
</fontconfig>
|
||||||
50
config/fontconfig/fonts.conf
Normal file
50
config/fontconfig/fonts.conf
Normal file
|
|
@ -0,0 +1,50 @@
|
||||||
|
<?xml version='1.0'?>
|
||||||
|
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
|
||||||
|
<!-- Default monospace fonts -->
|
||||||
|
<match target="pattern">
|
||||||
|
<test qual="any" name="family"><string>monospace</string></test>
|
||||||
|
<edit name="family" mode="prepend" binding="same"><string>Noto Sans Mono</string></edit>
|
||||||
|
<edit name="family" mode="append" binding="same"><string>Inconsolatazi4</string></edit>
|
||||||
|
<edit name="family" mode="append" binding="same"><string>IPAGothic</string></edit>
|
||||||
|
</match>
|
||||||
|
|
||||||
|
<!-- Fallback fonts preference order -->
|
||||||
|
<alias>
|
||||||
|
<family>sans-serif</family>
|
||||||
|
<prefer>
|
||||||
|
<family>Noto Sans</family>
|
||||||
|
<family>Open Sans</family>
|
||||||
|
<family>Droid Sans</family>
|
||||||
|
<family>Ubuntu</family>
|
||||||
|
<family>Roboto</family>
|
||||||
|
<family>NotoSansCJK</family>
|
||||||
|
<family>Source Han Sans JP</family>
|
||||||
|
<family>IPAPGothic</family>
|
||||||
|
<family>VL PGothic</family>
|
||||||
|
<family>Koruri</family>
|
||||||
|
</prefer>
|
||||||
|
</alias>
|
||||||
|
<alias>
|
||||||
|
<family>serif</family>
|
||||||
|
<prefer>
|
||||||
|
<family>Noto Serif</family>
|
||||||
|
<family>Droid Serif</family>
|
||||||
|
<family>Roboto Slab</family>
|
||||||
|
<family>IPAPMincho</family>
|
||||||
|
</prefer>
|
||||||
|
</alias>
|
||||||
|
<alias>
|
||||||
|
<family>monospace</family>
|
||||||
|
<prefer>
|
||||||
|
<family>Noto Sans Mono</family>
|
||||||
|
<family>Inconsolatazi4</family>
|
||||||
|
<family>Ubuntu Mono</family>
|
||||||
|
<family>Droid Sans Mono</family>
|
||||||
|
<family>Roboto Mono</family>
|
||||||
|
<family>IPAGothic</family>
|
||||||
|
</prefer>
|
||||||
|
</alias>
|
||||||
|
|
||||||
|
</fontconfig>
|
||||||
137
config/lsd/config.yaml
Normal file
137
config/lsd/config.yaml
Normal file
|
|
@ -0,0 +1,137 @@
|
||||||
|
# == Classic ==
|
||||||
|
# This is a shorthand to override some of the options to be backwards compatible
|
||||||
|
# with `ls`. It affects the "color"->"when", "sorting"->"dir-grouping", "date"
|
||||||
|
# and "icons"->"when" options.
|
||||||
|
# Possible values: false, true
|
||||||
|
classic: false
|
||||||
|
|
||||||
|
# == Blocks ==
|
||||||
|
# This specifies the columns and their order when using the long and the tree
|
||||||
|
# layout.
|
||||||
|
# Possible values: permission, user, group, size, size_value, date, name, inode
|
||||||
|
blocks:
|
||||||
|
- permission
|
||||||
|
- name
|
||||||
|
- size
|
||||||
|
- date
|
||||||
|
- user
|
||||||
|
- group
|
||||||
|
- links
|
||||||
|
|
||||||
|
# == Color ==
|
||||||
|
# This has various color options. (Will be expanded in the future.)
|
||||||
|
color:
|
||||||
|
# When to colorize the output.
|
||||||
|
# When "classic" is set, this is set to "never".
|
||||||
|
# Possible values: never, auto, always
|
||||||
|
when: auto
|
||||||
|
# How to colorize the output.
|
||||||
|
# When "classic" is set, this is set to "no-color".
|
||||||
|
# Possible values: default, <theme-file-name>
|
||||||
|
# when specifying <theme-file-name>, lsd will look up theme file
|
||||||
|
# XDG Base Directory if relative, e.g. ~/.config/lsd/themes/<theme-file-name>.yaml,
|
||||||
|
# The file path if absolute
|
||||||
|
theme: default
|
||||||
|
|
||||||
|
# == Date ==
|
||||||
|
# This specifies the date format for the date column. The freeform format
|
||||||
|
# accepts an strftime like string.
|
||||||
|
# When "classic" is set, this is set to "date".
|
||||||
|
# Possible values: date, relative, '+<date_format>'
|
||||||
|
# `date_format` will be a `strftime` formatted value. e.g. `date: '+%d %b %y %X'` will give you a date like this: 17 Jun 21 20:14:55
|
||||||
|
date: +%y/%m/%d %H:%M
|
||||||
|
|
||||||
|
# == Dereference ==
|
||||||
|
# Whether to dereference symbolic links.
|
||||||
|
# Possible values: false, true
|
||||||
|
dereference: false
|
||||||
|
|
||||||
|
# == Display ==
|
||||||
|
# What items to display. Do not specify this for the default behavior.
|
||||||
|
# Possible values: all, almost-all, directory-only
|
||||||
|
# display: all
|
||||||
|
|
||||||
|
# == Icons ==
|
||||||
|
icons:
|
||||||
|
# When to use icons.
|
||||||
|
# When "classic" is set, this is set to "never".
|
||||||
|
# Possible values: always, auto, never
|
||||||
|
when: auto
|
||||||
|
# Which icon theme to use.
|
||||||
|
# Possible values: fancy, unicode
|
||||||
|
theme: fancy
|
||||||
|
# Separator between icon and the name
|
||||||
|
# Default to 1 space
|
||||||
|
separator: " "
|
||||||
|
|
||||||
|
# == Ignore Globs ==
|
||||||
|
# A list of globs to ignore when listing.
|
||||||
|
# ignore-globs:
|
||||||
|
# - .git
|
||||||
|
|
||||||
|
# == Indicators ==
|
||||||
|
# Whether to add indicator characters to certain listed files.
|
||||||
|
# Possible values: false, true
|
||||||
|
indicators: true
|
||||||
|
|
||||||
|
# == Layout ==
|
||||||
|
# Which layout to use. "oneline" might be a bit confusing here and should be
|
||||||
|
# called "one-per-line". It might be changed in the future.
|
||||||
|
# Possible values: grid, tree, oneline
|
||||||
|
layout: grid
|
||||||
|
|
||||||
|
# == Recursion ==
|
||||||
|
recursion:
|
||||||
|
# Whether to enable recursion.
|
||||||
|
# Possible values: false, true
|
||||||
|
enabled: false
|
||||||
|
# How deep the recursion should go. This has to be a positive integer. Leave
|
||||||
|
# it unspecified for (virtually) infinite.
|
||||||
|
# depth: 3
|
||||||
|
|
||||||
|
# == Size ==
|
||||||
|
# Specifies the format of the size column.
|
||||||
|
# Possible values: default, short, bytes
|
||||||
|
size: short
|
||||||
|
|
||||||
|
# == Permission ==
|
||||||
|
# Specify the format of the permission column
|
||||||
|
# Possible value: rwx, octal
|
||||||
|
permission: rwx
|
||||||
|
|
||||||
|
# == Sorting ==
|
||||||
|
sorting:
|
||||||
|
# Specify what to sort by.
|
||||||
|
# Possible values: extension, name, time, size, version
|
||||||
|
column: name
|
||||||
|
# Whether to reverse the sorting.
|
||||||
|
# Possible values: false, true
|
||||||
|
reverse: false
|
||||||
|
# Whether to group directories together and where.
|
||||||
|
# When "classic" is set, this is set to "none".
|
||||||
|
# Possible values: first, last, none
|
||||||
|
dir-grouping: none
|
||||||
|
|
||||||
|
# == No Symlink ==
|
||||||
|
# Whether to omit showing symlink targets
|
||||||
|
# Possible values: false, true
|
||||||
|
no-symlink: false
|
||||||
|
|
||||||
|
# == Total size ==
|
||||||
|
# Whether to display the total size of directories.
|
||||||
|
# Possible values: false, true
|
||||||
|
total-size: false
|
||||||
|
|
||||||
|
# == Hyperlink ==
|
||||||
|
# Attach hyperlink to filenames
|
||||||
|
# Possible values: always, auto, never
|
||||||
|
hyperlink: never
|
||||||
|
|
||||||
|
# == Symlink arrow ==
|
||||||
|
# Specifies how the symlink arrow display, chars in both ascii and utf8
|
||||||
|
symlink-arrow: ⇒
|
||||||
|
|
||||||
|
# == Header ==
|
||||||
|
# Whether to display block headers.
|
||||||
|
# Possible values: false, true
|
||||||
|
header: true
|
||||||
13
config/picom/picom.conf
Normal file
13
config/picom/picom.conf
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
backend = "glx";
|
||||||
|
opacity-rule = [
|
||||||
|
# "90:class_g = 'kitty'",
|
||||||
|
];
|
||||||
|
blur: {
|
||||||
|
method = "dual_kawase",
|
||||||
|
strength = 5,
|
||||||
|
}
|
||||||
|
blur-background-exclude = [
|
||||||
|
"fullscreen",
|
||||||
|
"class_g = 'firefox'", # for autoscroll mouse
|
||||||
|
];
|
||||||
|
fading = true;
|
||||||
37
config/python/startup.py
Normal file
37
config/python/startup.py
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
# Enable custom ~/.python_history location on Python interactive console
|
||||||
|
# Set PYTHONSTARTUP to this file on ~/.profile or similar for this to work
|
||||||
|
# https://docs.python.org/3/using/cmdline.html#envvar-PYTHONSTARTUP
|
||||||
|
# https://docs.python.org/3/library/readline.html#example
|
||||||
|
# https://github.com/python/cpython/blob/main/Lib/site.py @ enablerlcompleter()
|
||||||
|
# https://unix.stackexchange.com/a/675631/4919
|
||||||
|
|
||||||
|
import atexit
|
||||||
|
import os
|
||||||
|
import readline
|
||||||
|
import time
|
||||||
|
|
||||||
|
|
||||||
|
def write_history(path):
|
||||||
|
import os
|
||||||
|
import readline
|
||||||
|
try:
|
||||||
|
os.makedirs(os.path.dirname(path), mode=0o700, exist_ok=True)
|
||||||
|
readline.write_history_file(path)
|
||||||
|
except OSError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
history = os.path.join(os.environ.get('XDG_CACHE_HOME') or
|
||||||
|
os.path.expanduser('~/.cache'),
|
||||||
|
'python_history')
|
||||||
|
try:
|
||||||
|
readline.read_history_file(history)
|
||||||
|
except FileNotFoundError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
# Prevents creation of default history if custom is empty
|
||||||
|
if readline.get_current_history_length() == 0:
|
||||||
|
readline.add_history(f'# History created at {time.asctime()}')
|
||||||
|
|
||||||
|
atexit.register(write_history, history)
|
||||||
|
del (atexit, os, readline, time, history, write_history)
|
||||||
24
config/qt5ct/qt5ct.conf
Normal file
24
config/qt5ct/qt5ct.conf
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
[Appearance]
|
||||||
|
custom_palette=false
|
||||||
|
icon_theme=Papirus
|
||||||
|
standard_dialogs=kde
|
||||||
|
style=Breeze
|
||||||
|
|
||||||
|
[Fonts]
|
||||||
|
fixed="Noto Sans,10,-1,5,50,0,0,0,0,0"
|
||||||
|
general="Noto Sans,10,-1,5,50,0,0,0,0,0"
|
||||||
|
|
||||||
|
[Interface]
|
||||||
|
activate_item_on_single_click=1
|
||||||
|
buttonbox_layout=0
|
||||||
|
cursor_flash_time=1000
|
||||||
|
dialog_buttons_have_icons=1
|
||||||
|
double_click_interval=400
|
||||||
|
gui_effects=@Invalid()
|
||||||
|
keyboard_scheme=2
|
||||||
|
menus_have_icons=true
|
||||||
|
show_shortcuts_in_context_menus=true
|
||||||
|
stylesheets=@Invalid()
|
||||||
|
toolbutton_style=4
|
||||||
|
underline_shortcut=1
|
||||||
|
wheel_scroll_lines=3
|
||||||
6
config/readline/inputrc
Normal file
6
config/readline/inputrc
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
set show-mode-in-prompt on
|
||||||
|
set vi-ins-mode-string \1\e[34;1m\e[6 q\2I \1\e[0m\2
|
||||||
|
set vi-cmd-mode-string \1\e[30;1m\e[2 q\2C \1\e[0m\2
|
||||||
|
set keyseq-timeout 20
|
||||||
|
set editing-mode vi
|
||||||
|
Control-d: kill-whole-line
|
||||||
57
config/starship.toml
Normal file
57
config/starship.toml
Normal file
|
|
@ -0,0 +1,57 @@
|
||||||
|
format = """
|
||||||
|
[ ](bg:#E34F7C)\
|
||||||
|
$sudo\
|
||||||
|
$username\
|
||||||
|
$directory\
|
||||||
|
$git_branch\
|
||||||
|
$git_commit\
|
||||||
|
$git_state\
|
||||||
|
$git_metrics\
|
||||||
|
$git_status\
|
||||||
|
$cmd_duration\
|
||||||
|
$line_break\
|
||||||
|
$jobs\
|
||||||
|
$shlvl\
|
||||||
|
$status\
|
||||||
|
$shell\
|
||||||
|
$character"""
|
||||||
|
|
||||||
|
[status]
|
||||||
|
disabled = false
|
||||||
|
symbol = "x"
|
||||||
|
|
||||||
|
[character]
|
||||||
|
#vicmd_symbol = "[❮](bold bg:red)"
|
||||||
|
|
||||||
|
[shell]
|
||||||
|
disabled = false
|
||||||
|
bash_indicator = "[bsh](yellow italic)"
|
||||||
|
zsh_indicator = "[zsh](blue italic)"
|
||||||
|
fish_indicator = "[fsh](green italic)"
|
||||||
|
|
||||||
|
[fill]
|
||||||
|
symbol = " "
|
||||||
|
|
||||||
|
#[time]
|
||||||
|
#format = "[█]($style)[$time]($style inverted)"
|
||||||
|
#style = "#838d99"
|
||||||
|
#disabled = false
|
||||||
|
|
||||||
|
[sudo]
|
||||||
|
format = "[ ](bg:#E34F7C blue)"
|
||||||
|
disabled = false
|
||||||
|
|
||||||
|
[username]
|
||||||
|
show_always = true
|
||||||
|
format = "[$user ]($style inverted)[ ]($style bg:#443f59)"
|
||||||
|
style_user = "#E34F7C"
|
||||||
|
style_root = "#4571a2 bg:red"
|
||||||
|
|
||||||
|
[directory]
|
||||||
|
format = "[ $path [$read_only]($style bg:red inverted)]($style bg:white inverted)[ ]($style)"
|
||||||
|
style = "#443f59"
|
||||||
|
read_only =" "
|
||||||
|
|
||||||
|
[shlvl]
|
||||||
|
disabled = false
|
||||||
|
symbol = "↕️"
|
||||||
50
config/sx/sxrc
Executable file
50
config/sx/sxrc
Executable file
|
|
@ -0,0 +1,50 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# set keyboard repeat rate
|
||||||
|
xset r rate 200 30
|
||||||
|
|
||||||
|
# monitor settings
|
||||||
|
xrandr --output DisplayPort-1 --mode 1920x1080 --rate 144
|
||||||
|
|
||||||
|
# tablet settings
|
||||||
|
xsetwacom set "Wacom One by Wacom S Pen stylus" MapToOutput DisplayPort-0
|
||||||
|
|
||||||
|
# set color temperature
|
||||||
|
sct 4500
|
||||||
|
|
||||||
|
# compositor
|
||||||
|
picom &
|
||||||
|
|
||||||
|
LIBEXEC=/run/current-system/sw/libexec
|
||||||
|
[ -d "$LIBEXEC" ] || LIBEXEC=/usr/lib
|
||||||
|
# session manager
|
||||||
|
"$LIBEXEC"/polkit-kde-authentication-agent-1 &
|
||||||
|
# desktop portal
|
||||||
|
"$LIBEXEC"/xdg-desktop-portal-kde &
|
||||||
|
kded5 &
|
||||||
|
|
||||||
|
# ime
|
||||||
|
export GTK_IM_MODULE=fctix
|
||||||
|
export QT_IM_MODULE=fcitx
|
||||||
|
export XMODIFIERS=@im=fcitx
|
||||||
|
fcitx5 &
|
||||||
|
|
||||||
|
# file manager daemon
|
||||||
|
#thunar --daemon &
|
||||||
|
dolphin --daemon &
|
||||||
|
|
||||||
|
# qt setting
|
||||||
|
export QT_QPA_PLATFORMTHEME="qt6ct"
|
||||||
|
# same dpi for multi monitor
|
||||||
|
export WINIT_X11_SCALE_FACTOR=1
|
||||||
|
|
||||||
|
# high resolution scrolling on firefox
|
||||||
|
export MOZ_USE_XINPUT2=1
|
||||||
|
|
||||||
|
safeeyes &
|
||||||
|
|
||||||
|
mpd &
|
||||||
|
|
||||||
|
anki &
|
||||||
|
|
||||||
|
exec "${1:-awesome}"
|
||||||
109
config/tmux/tmux.conf
Normal file
109
config/tmux/tmux.conf
Normal file
|
|
@ -0,0 +1,109 @@
|
||||||
|
### styling
|
||||||
|
# status left [session name]
|
||||||
|
set -g status-left-style fg=black,bg=white
|
||||||
|
# red bg when multiple clients attached to session
|
||||||
|
set -g status-left "#{?session_many_attached,#[bg=red] [#S]:#{session_attached} , [#S] }"
|
||||||
|
|
||||||
|
# window status bar
|
||||||
|
set -g status-style bg=black,fg=white
|
||||||
|
# + flag when zoomed in
|
||||||
|
set -g window-status-format ' #I:#W#{?window_zoomed_flag,+ , }'
|
||||||
|
# blue bg on current window
|
||||||
|
set -g window-status-current-format '#[bg=blue,fg=black] #I:#W#{?window_zoomed_flag,+ , }'
|
||||||
|
set -g window-status-separator ''
|
||||||
|
|
||||||
|
# status right user@host | date, time
|
||||||
|
set -g status-right "#{?window_bigger,[#{window_offset_x}#,#{window_offset_y}] ,}#{client_user}@#H | %a %b %d, %H:%M"
|
||||||
|
|
||||||
|
# dark blue message bg
|
||||||
|
set -g message-style bg=#4571a2,fg=white
|
||||||
|
|
||||||
|
set -g set-titles on
|
||||||
|
set -g set-titles-string "tmux: [#S#{?session_many_attached,+,}] #I-#W"
|
||||||
|
|
||||||
|
# borders
|
||||||
|
set -g pane-border-lines heavy
|
||||||
|
set -g pane-border-status top
|
||||||
|
set -g pane-border-indicators off
|
||||||
|
# show pane title (- if default name)
|
||||||
|
# blue bg on active pane, red if prefix active
|
||||||
|
# brackets on title when zoomed
|
||||||
|
set -g pane-border-format "#{?pane_active,#{?client_prefix,#[bg=red#,fg=black],#[bg=blue#,fg=black]},#[fg=blue]}#{?window_zoomed_flag, [ , }#{?#{==:#T,#H},-,#T}#{?window_zoomed_flag, ] , }"
|
||||||
|
set -g pane-border-style default
|
||||||
|
set -g pane-active-border-style fg=#4571a2
|
||||||
|
|
||||||
|
set -g mode-style bg=#4571a2
|
||||||
|
|
||||||
|
|
||||||
|
### bindings
|
||||||
|
# split window
|
||||||
|
unbind v
|
||||||
|
unbind h
|
||||||
|
bind v split-window -h -c "#{pane_current_path}"
|
||||||
|
bind h split-window -v -c "#{pane_current_path}"
|
||||||
|
|
||||||
|
# reload config
|
||||||
|
unbind r
|
||||||
|
bind r source-file ~/.config/tmux/tmux.conf \; display 'Config reloaded'
|
||||||
|
|
||||||
|
# pane selection
|
||||||
|
bind -T root C-h select-pane -L
|
||||||
|
bind -T root C-j select-pane -D
|
||||||
|
bind -T root C-k select-pane -U
|
||||||
|
bind -T root C-l select-pane -R
|
||||||
|
|
||||||
|
# resize pane
|
||||||
|
bind -r H resize-pane -L 5
|
||||||
|
bind -r J resize-pane -D 2
|
||||||
|
bind -r K resize-pane -U 2
|
||||||
|
bind -r L resize-pane -R 5
|
||||||
|
bind m resize-pane -Z
|
||||||
|
|
||||||
|
# detach (sends signal to parent process to exec shell)
|
||||||
|
unbind d
|
||||||
|
bind d run 'sh-tmux -d'
|
||||||
|
set -g update-environment SH_TMUX_PID
|
||||||
|
|
||||||
|
|
||||||
|
### settings
|
||||||
|
set -g default-terminal "xterm-256color"
|
||||||
|
set -ga terminal-overrides ",*256col*:Tc"
|
||||||
|
set -sg escape-time 0
|
||||||
|
set -g history-limit 50000
|
||||||
|
set -g display-time 4000
|
||||||
|
set -g status-interval 1
|
||||||
|
setw -g aggressive-resize on
|
||||||
|
|
||||||
|
set -g mouse on
|
||||||
|
setw -g mode-keys vi
|
||||||
|
setw -g status-keys emacs
|
||||||
|
|
||||||
|
# start indices at 1
|
||||||
|
set -g base-index 1
|
||||||
|
set -g pane-base-index 1
|
||||||
|
set -g renumber-windows on
|
||||||
|
|
||||||
|
# copy mode
|
||||||
|
bind -T copy-mode-vi v send -X begin-selection
|
||||||
|
bind -T copy-mode-vi y send -X copy-selection
|
||||||
|
unbind -T copy-mode-vi MouseDragEnd1Pane
|
||||||
|
|
||||||
|
# use arrow keys when scrolling on certain commands
|
||||||
|
tmux_commands_with_legacy_scroll="nano less more man git"
|
||||||
|
bind -T root WheelUpPane \
|
||||||
|
if-shell -Ft= '#{?mouse_any_flag,1,#{pane_in_mode}}' \
|
||||||
|
'send -Mt=' \
|
||||||
|
'if-shell -t= "#{?alternate_on,true,false} || echo \"#{tmux_commands_with_legacy_scroll}\" | grep -q \"#{pane_current_command}\"" \
|
||||||
|
"send -t= Up Up Up" "copy-mode -et="'
|
||||||
|
bind -T root WheelDownPane \
|
||||||
|
if-shell -Ft = '#{?pane_in_mode,1,#{mouse_any_flag}}' \
|
||||||
|
'send -Mt=' \
|
||||||
|
'if-shell -t= "#{?alternate_on,true,false} || echo \"#{tmux_commands_with_legacy_scroll}\" | grep -q \"#{pane_current_command}\"" \
|
||||||
|
"send -t= Down Down Down" "send -Mt="'
|
||||||
|
|
||||||
|
### plugins
|
||||||
|
#set -g @plugin 'tmux-plugins/tpm'
|
||||||
|
#set -g @plugin 'christoomey/vim-tmux-navigator'
|
||||||
|
#set -g @plugin 'tmux-plugins/tmux-sessionist'
|
||||||
|
|
||||||
|
#run '~/.config/tmux/plugins/tpm/tpm'
|
||||||
|
|
@ -16,6 +16,8 @@
|
||||||
efi.canTouchEfiVariables = true;
|
efi.canTouchEfiVariables = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
environment.pathsToLink = [ "/libexec" ];
|
||||||
|
|
||||||
boot.tmp.useTmpfs = true;
|
boot.tmp.useTmpfs = true;
|
||||||
|
|
||||||
networking.hostName = "nixos";
|
networking.hostName = "nixos";
|
||||||
|
|
|
||||||
20
home.nix
20
home.nix
|
|
@ -3,6 +3,7 @@
|
||||||
let
|
let
|
||||||
username = "ahnwuoa";
|
username = "ahnwuoa";
|
||||||
homeDirectory = "/home/${username}";
|
homeDirectory = "/home/${username}";
|
||||||
|
mkln = x: config.lib.file.mkOutOfStoreSymlink "${homeDirectory}/.local/nixos/${x}";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
home.username = username;
|
home.username = username;
|
||||||
|
|
@ -41,7 +42,26 @@ in
|
||||||
|
|
||||||
python3
|
python3
|
||||||
gnumake
|
gnumake
|
||||||
|
|
||||||
|
tmuxPlugins.vim-tmux-navigator
|
||||||
|
tmuxPlugins.sessionist
|
||||||
];
|
];
|
||||||
|
xdg.configFile.alacritty.source = mkln "config/alacritty";
|
||||||
|
xdg.configFile.awesome.source = mkln "config/awesome";
|
||||||
|
xdg.configFile.bash.source = mkln "config/bash";
|
||||||
|
xdg.configFile.fontconfig.source = config/fontconfig;
|
||||||
|
xdg.configFile.lsd.source = config/lsd;
|
||||||
|
xdg.configFile.picom.source = config/picom;
|
||||||
|
xdg.configFile.python.source = config/python;
|
||||||
|
xdg.configFile.qt5ct.source = config/qt5ct;
|
||||||
|
xdg.configFile.readline.source = config/readline;
|
||||||
|
xdg.configFile."starship.toml".source = config/starship.toml;
|
||||||
|
xdg.configFile.sx.source = mkln "config/sx";
|
||||||
|
xdg.configFile."tmux/tmux.conf".text = (builtins.readFile config/tmux/tmux.conf) + ''
|
||||||
|
run ${pkgs.tmuxPlugins.vim-tmux-navigator.rtp}
|
||||||
|
run ${pkgs.tmuxPlugins.sessionist.rtp}
|
||||||
|
'';
|
||||||
|
fonts.fontconfig.enable = false;
|
||||||
qt = {
|
qt = {
|
||||||
enable = true;
|
enable = true;
|
||||||
platformTheme.name = "qtct";
|
platformTheme.name = "qtct";
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue