Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
f5962496c2 | |||
052a88fa5d | |||
17c5b6d71a | |||
70f5226ebf | |||
00a3646140 | |||
0a4a69cc30 | |||
d48a90f73b | |||
e0c27e56eb |
1
.gitignore
vendored
@ -1,2 +1,3 @@
|
||||
# IDEs
|
||||
.idea/
|
||||
.vscode/
|
BIN
assets/art/wall_secondary.png
Normal file
After Width: | Height: | Size: 28 KiB |
@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-lock"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-lock"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg>
|
Before Width: | Height: | Size: 313 B After Width: | Height: | Size: 313 B |
@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-log-out"><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"></path><polyline points="16 17 21 12 16 7"></polyline><line x1="21" y1="12" x2="9" y2="12"></line></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-log-out"><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"></path><polyline points="16 17 21 12 16 7"></polyline><line x1="21" y1="12" x2="9" y2="12"></line></svg>
|
Before Width: | Height: | Size: 359 B After Width: | Height: | Size: 359 B |
@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-maximize"><path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"></path></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-maximize"><path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"></path></svg>
|
Before Width: | Height: | Size: 323 B After Width: | Height: | Size: 323 B |
@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-minus"><line x1="5" y1="12" x2="19" y2="12"></line></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-minus"><line x1="5" y1="12" x2="19" y2="12"></line></svg>
|
Before Width: | Height: | Size: 253 B After Width: | Height: | Size: 253 B |
@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-power"><path d="M18.36 6.64a9 9 0 1 1-12.73 0"></path><line x1="12" y1="2" x2="12" y2="12"></line></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-power"><path d="M18.36 6.64a9 9 0 1 1-12.73 0"></path><line x1="12" y1="2" x2="12" y2="12"></line></svg>
|
Before Width: | Height: | Size: 300 B After Width: | Height: | Size: 300 B |
@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-refresh-cw"><polyline points="23 4 23 10 17 10"></polyline><polyline points="1 20 1 14 7 14"></polyline><path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"></path></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-refresh-cw"><polyline points="23 4 23 10 17 10"></polyline><polyline points="1 20 1 14 7 14"></polyline><path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"></path></svg>
|
Before Width: | Height: | Size: 392 B After Width: | Height: | Size: 392 B |
BIN
assets/icons/tarche.png
Executable file
After Width: | Height: | Size: 26 KiB |
@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-minimize"><path d="M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3"></path></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-minimize"><path d="M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3"></path></svg>
|
Before Width: | Height: | Size: 323 B After Width: | Height: | Size: 323 B |
@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-volume-1"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5"></polygon><path d="M15.54 8.46a5 5 0 0 1 0 7.07"></path></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-volume-1"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5"></polygon><path d="M15.54 8.46a5 5 0 0 1 0 7.07"></path></svg>
|
Before Width: | Height: | Size: 320 B After Width: | Height: | Size: 320 B |
@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-volume-2"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5"></polygon><path d="M19.07 4.93a10 10 0 0 1 0 14.14M15.54 8.46a5 5 0 0 1 0 7.07"></path></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-volume-2"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5"></polygon><path d="M19.07 4.93a10 10 0 0 1 0 14.14M15.54 8.46a5 5 0 0 1 0 7.07"></path></svg>
|
Before Width: | Height: | Size: 351 B After Width: | Height: | Size: 351 B |
@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-volume-x"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5"></polygon><line x1="23" y1="9" x2="17" y2="15"></line><line x1="17" y1="9" x2="23" y2="15"></line></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-volume-x"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5"></polygon><line x1="23" y1="9" x2="17" y2="15"></line><line x1="17" y1="9" x2="23" y2="15"></line></svg>
|
Before Width: | Height: | Size: 362 B After Width: | Height: | Size: 362 B |
@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-volume"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5"></polygon></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-volume"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5"></polygon></svg>
|
Before Width: | Height: | Size: 272 B After Width: | Height: | Size: 272 B |
@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-x"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-x"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
|
Before Width: | Height: | Size: 291 B After Width: | Height: | Size: 291 B |
@ -5,6 +5,7 @@
|
||||
* Copyright: Dave Davenport
|
||||
*/
|
||||
* {
|
||||
font: "Source Code Pro 11";
|
||||
background: #222222;
|
||||
active-background: #0005;
|
||||
active-background-selected: #fff1;
|
||||
@ -17,11 +18,13 @@
|
||||
spacing: 2;
|
||||
background-color: #00000000;
|
||||
border-color: #fff2;
|
||||
anchor: north;
|
||||
anchor: center;
|
||||
location: center;
|
||||
|
||||
highlight: bold #fff;
|
||||
sidebar-mode: true;
|
||||
}
|
||||
|
||||
#window {
|
||||
transparency: "screenshot";
|
||||
background-color: #00000000;
|
||||
@ -30,22 +33,26 @@
|
||||
x-offset: 0;
|
||||
y-offset: -10%;
|
||||
}
|
||||
|
||||
#mainbox {
|
||||
padding: 0px;
|
||||
border: 0;
|
||||
spacing: 1%;
|
||||
}
|
||||
|
||||
#message {
|
||||
border: 2px;
|
||||
padding: 1em;
|
||||
background-color: @background;
|
||||
text-color: @text;
|
||||
}
|
||||
|
||||
#textbox normal {
|
||||
text-color: @text;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
#listview {
|
||||
fixed-height: 1;
|
||||
border: 2px;
|
||||
@ -55,50 +62,62 @@
|
||||
columns: 1;
|
||||
background-color: @background;
|
||||
}
|
||||
|
||||
#element {
|
||||
border: 0;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
#element normal.normal {
|
||||
text-color: @text;
|
||||
background-color: @background;
|
||||
}
|
||||
|
||||
#element normal.urgent {
|
||||
text-color: @text;
|
||||
background-color: @background;
|
||||
}
|
||||
|
||||
#element normal.active {
|
||||
text-color: @text;
|
||||
background-color: @active-background;
|
||||
}
|
||||
|
||||
#element selected.normal {
|
||||
text-color: @text;
|
||||
background-color: #fff1;
|
||||
}
|
||||
|
||||
#element selected.urgent {
|
||||
text-color: @text;
|
||||
background-color: @background;
|
||||
}
|
||||
|
||||
#element selected.active {
|
||||
text-color: @text;
|
||||
background-color: @active-background-selected;
|
||||
}
|
||||
|
||||
#element alternate.normal {
|
||||
text-color: @text;
|
||||
background-color: @background;
|
||||
}
|
||||
|
||||
#element alternate.urgent {
|
||||
text-color: @text;
|
||||
background-color: @background;
|
||||
}
|
||||
|
||||
#element alternate.active {
|
||||
text-color: @text;
|
||||
background-color: @active-background;
|
||||
}
|
||||
|
||||
#scrollbar {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#inputbar {
|
||||
spacing: 0;
|
||||
border: 2px;
|
||||
@ -106,6 +125,7 @@
|
||||
background-color: @background;
|
||||
index: 0;
|
||||
}
|
||||
|
||||
#inputbar normal {
|
||||
foreground-color: @text;
|
||||
background-color: @background;
|
||||
@ -117,21 +137,27 @@
|
||||
background-color: @background;
|
||||
index: 10;
|
||||
}
|
||||
|
||||
#button selected {
|
||||
text-color: @text;
|
||||
}
|
||||
|
||||
#inputbar {
|
||||
children: [ prompt,textbox-prompt-colon,entry,case-indicator ];
|
||||
}
|
||||
|
||||
#prompt {
|
||||
text-color: @text;
|
||||
}
|
||||
|
||||
#entry {
|
||||
text-color: @text;
|
||||
}
|
||||
|
||||
#case-indicator {
|
||||
text-color: @text;
|
||||
}
|
||||
|
||||
#textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: ":";
|
||||
|
210
config.lua
@ -1,3 +1,211 @@
|
||||
local config = require("default_config")
|
||||
-- Default configuration file
|
||||
-- This file will be overridden on update.
|
||||
-- Copy to `~/.config/awesome/config.lua` to avoid losing your changes.
|
||||
local awful = require("awful")
|
||||
local naughty = require("naughty")
|
||||
|
||||
local config = {}
|
||||
|
||||
local rofi_modes = "drun,window,run"
|
||||
|
||||
--
|
||||
-- Awesome WM
|
||||
--
|
||||
config.awesome = {
|
||||
-- Enable window autofocus on mouse hover
|
||||
autofocus = true,
|
||||
|
||||
-- Enable hotkeys help widget for VIM and other apps
|
||||
-- when client with a matching name is opened:
|
||||
hotkeys_popup = true,
|
||||
|
||||
-- Application launcher
|
||||
application_launcher_check = "rofi -version",
|
||||
application_launcher = "rofi -modi \"" .. rofi_modes .. "\" -show-icons -show drun",
|
||||
application_launcher_cmd = "rofi -modi \"" .. rofi_modes .. "\" -show run",
|
||||
|
||||
-- Screen locker
|
||||
lock_command = "i3lock --blur=5 -f -k --time-color=ffffffff --date-color=ffffffff --indicator --ring-color=aaaaaaaa",
|
||||
-- lock_command = "xscreensaver-command -lock",
|
||||
|
||||
-- Terminal
|
||||
terminal = "terminator",
|
||||
|
||||
-- Window tiling
|
||||
tiling = {
|
||||
-- Available window layouts - order matters
|
||||
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,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
-- Default text editor
|
||||
-- config.awesome.editor = os.getenv("EDITOR") or "nano"
|
||||
-- config.awesome.editor = "vi"
|
||||
config.awesome.editor = "code"
|
||||
|
||||
|
||||
--
|
||||
-- Keys / Hotkeys / Shortcuts
|
||||
--
|
||||
-- To disable a shortcut, simply remove it (tip: comment it out with a leading "--")
|
||||
--
|
||||
config.keys = {
|
||||
-- Main modifier key for meta hotkeys like moving windows or locking the session
|
||||
-- Usually, Mod4 is the key with a logo between Control and Alt.
|
||||
modkey = "Mod4",
|
||||
}
|
||||
|
||||
-- Hotkeys globally available (through the entire OS, regardless of what's focused)
|
||||
config.keys.global_keys = {
|
||||
-- Application launcher
|
||||
launcher = { { config.keys.modkey }, "space", },
|
||||
launcher_cmd = { { "Ctrl", config.keys.modkey }, "space", },
|
||||
|
||||
-- Screen locker
|
||||
lock_screen = { { config.keys.modkey }, "l" },
|
||||
|
||||
|
||||
--
|
||||
-- Media and volume controls
|
||||
-- See media_control.lua
|
||||
--
|
||||
media_control = {
|
||||
-- Raise volume
|
||||
raiseVolume = { {}, "XF86AudioRaiseVolume" },
|
||||
|
||||
-- Lower volume
|
||||
lowerVolume = { {}, "XF86AudioLowerVolume" },
|
||||
|
||||
-- Toggle mute
|
||||
toggleMute = { {}, "XF86AudioMute" },
|
||||
|
||||
-- Toggle Play / Pause
|
||||
playPause = { {}, "XF86AudioPlay" },
|
||||
|
||||
-- Next track
|
||||
nextTrack = { {}, "XF86AudioNext" },
|
||||
|
||||
-- Previous track
|
||||
previousTrack = { {}, "XF86AudioPrev" },
|
||||
|
||||
-- Brightness up
|
||||
brightnessUp = { {}, "XF86MonBrightnessUp" },
|
||||
|
||||
-- Brightness down
|
||||
brightnessDown = { {}, "XF86MonBrightnessDown" },
|
||||
},
|
||||
|
||||
-- Keyboard layout
|
||||
keyboard_layout = {
|
||||
-- Switch between layouts
|
||||
switch = { { "Mod1" }, "Shift_R" },
|
||||
|
||||
-- Switch between layouts (alternative)
|
||||
-- switch_alt = { { "Al" }, "Alt_R" },
|
||||
}
|
||||
}
|
||||
|
||||
-- Custom global hotkeys
|
||||
config.keys.custom_keys = {
|
||||
-- Example:
|
||||
-- {
|
||||
-- hotkey = {
|
||||
-- { config.keys.modkey, },
|
||||
-- "t"
|
||||
-- },
|
||||
-- action = function()
|
||||
-- awful.spawn('terminator')
|
||||
-- end,
|
||||
-- identity = { description = "open terminator", group = "utilities" }
|
||||
-- }
|
||||
};
|
||||
|
||||
|
||||
--
|
||||
-- Audio
|
||||
--
|
||||
config.audio = {
|
||||
card = '-D pulse',
|
||||
device = 'Master',
|
||||
};
|
||||
|
||||
|
||||
--
|
||||
-- Widgets
|
||||
--
|
||||
config.widgets = {
|
||||
-- Keyboard layout widget
|
||||
keyboard_layout = {
|
||||
enabled = true,
|
||||
layouts = { "us(intl)", "latam" },
|
||||
layout_switch_command = "setxkbmap",
|
||||
},
|
||||
|
||||
-- Enable/disable the system resources monitoring widget
|
||||
system_resources = {
|
||||
bars = {
|
||||
enabled = true,
|
||||
screens = { 1, 2 },
|
||||
refresh_interval = 1.5, -- In seconds
|
||||
},
|
||||
battery = {
|
||||
enabled = true,
|
||||
screens = { 1, 2 },
|
||||
refresh_interval = 30, -- In seconds
|
||||
precision = 0, -- How many decimals
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
--
|
||||
-- Auto start custom applications
|
||||
--
|
||||
config.autostart = {
|
||||
-- Network manager widget
|
||||
{
|
||||
"nm-applet --help", -- Verification command that will be checked before spawning the next command
|
||||
"nm-applet", -- The app
|
||||
},
|
||||
|
||||
-- Screenshot utility
|
||||
"flameshot",
|
||||
}
|
||||
|
||||
|
||||
-- Theme
|
||||
-- Change to gears.filesystem.get_themes_dir() .. "default/theme.lua" to use default awesome theme
|
||||
config.theme = awful.util.getdir("config") .. "/theme.lua"
|
||||
|
||||
-- Screenshot utility
|
||||
config.screenshot_utility_command = "flameshot gui"
|
||||
|
||||
-- Run menu
|
||||
config.windowSwitcher = "rofi -modi \"" .. rofi_modes .. "\" -show-icons -show window"
|
||||
|
||||
-- Media control
|
||||
config.volume_osd_timeout = 2
|
||||
|
||||
|
||||
-- Awesome tweaks
|
||||
naughty.config.defaults.timeout = 15
|
||||
|
||||
|
||||
return config
|
||||
|
@ -171,8 +171,7 @@ config.widgets = {
|
||||
battery = {
|
||||
enabled = true,
|
||||
screens = { 1, 2 },
|
||||
refresh_interval = 15, -- In seconds
|
||||
list_refresh_interval = 2, -- In seconds
|
||||
refresh_interval = 30, -- In seconds
|
||||
precision = 0, -- How many decimals
|
||||
},
|
||||
},
|
||||
|
@ -180,8 +180,7 @@ os_menu = awful.widget.launcher({
|
||||
menu = awful.menu({
|
||||
items = {
|
||||
{ "Hotkeys", function() hotkeys_popup.show_help(nil, awful.screen.focused()) end },
|
||||
{ "Manual", config.awesome.terminal .. " -e man awesome" },
|
||||
{ "Edit config", config.awesome.editor_cmd .. " " .. awesome.conffile },
|
||||
{ "Edit config", config.awesome.editor .. " .config/awesome/" },
|
||||
{ "Open terminal", config.awesome.terminal },
|
||||
{ "Lock", lockScreen, lock_icon },
|
||||
{ "Logout", function() awesome.quit() end, logout_icon },
|
||||
@ -198,6 +197,8 @@ os_menu = awful.widget.launcher({
|
||||
-- {{{ Wibar
|
||||
-- Create a textclock widget
|
||||
mytextclock = wibox.widget.textclock()
|
||||
mytextclock.format = " %H:%M:%S "
|
||||
mytextclock.refresh = 0.5
|
||||
|
||||
-- Create a wibox for each screen and add it
|
||||
local taglist_buttons = gears.table.join(awful.button({}, 1, function(t) t:view_only() end),
|
||||
@ -254,7 +255,7 @@ awful.screen.connect_for_each_screen(function(s)
|
||||
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])
|
||||
awful.tag({ "1", "2", "3", "4", "5", "6" }, s, awful.layout.layouts[2])
|
||||
|
||||
-- Create a promptbox for each screen
|
||||
s.mypromptbox = awful.widget.prompt()
|
||||
@ -351,8 +352,8 @@ 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)))
|
||||
awful.button({}, 4, awful.tag.viewprev),
|
||||
awful.button({}, 5, awful.tag.viewnext)))
|
||||
-- }}}
|
||||
|
||||
-- {{{ Key bindings
|
||||
@ -382,8 +383,8 @@ hotkey.registerKeys(
|
||||
awful.client.focus.byidx(-1)
|
||||
end,
|
||||
{ description = "focus previous by index", group = "client" }),
|
||||
awful.key({ config.keys.modkey, }, "w", function() mymainmenu:show() end,
|
||||
{ description = "show main menu", group = "awesome" }),
|
||||
-- awful.key({ config.keys.modkey, }, "w", function() mymainmenu:show() end,
|
||||
-- { description = "show main menu", group = "awesome" }),
|
||||
|
||||
-- Layout manipulation
|
||||
awful.key({ config.keys.modkey, "Shift" }, "j", function() awful.client.swap.byidx(1) end,
|
||||
|
@ -49,13 +49,13 @@ end
|
||||
function increaseBrightness(callback)
|
||||
callback = callback or function()
|
||||
end
|
||||
awful.spawn.easy_async("xbacklight -inc 2", callback)
|
||||
awful.spawn.easy_async("xbacklight -inc 10", callback)
|
||||
end
|
||||
|
||||
function decreaseBrightness(callback)
|
||||
callback = callback or function()
|
||||
end
|
||||
awful.spawn.easy_async("xbacklight -dec 2", callback)
|
||||
awful.spawn.easy_async("xbacklight -dec 10", callback)
|
||||
end
|
||||
|
||||
|
||||
|
@ -1,4 +1,3 @@
|
||||
local awful = require("awful")
|
||||
local beautiful = require("beautiful")
|
||||
local gears = require("gears")
|
||||
local naughty = require("naughty")
|
||||
@ -51,13 +50,6 @@ function readCommand(command)
|
||||
return r
|
||||
end
|
||||
|
||||
function readFile(file)
|
||||
local handle = io.open(file, "r")
|
||||
local r = handle:read("*a")
|
||||
handle:close()
|
||||
return r
|
||||
end
|
||||
|
||||
|
||||
local cpuBar = bars:get_children()[1]:get_children()[1]:get_children()[1]
|
||||
function getCpuData()
|
||||
@ -139,62 +131,8 @@ gears.timer {
|
||||
|
||||
|
||||
|
||||
---
|
||||
--- Batteries
|
||||
---
|
||||
rawBatteries = {}
|
||||
function refreshRawBatteries()
|
||||
rawBatteries = readCommand("ls -A1 /sys/class/power_supply")
|
||||
end
|
||||
|
||||
function getBatteryLevel(battery)
|
||||
local charge = 0
|
||||
local capacity = 0
|
||||
if fileExists(battery .. "/energy_now") then
|
||||
charge = charge + readFile(battery .. "/energy_now")
|
||||
capacity = capacity + readFile(battery .. "/energy_full")
|
||||
elseif fileExists(battery .. "/charge_now") then
|
||||
charge = charge + readFile(battery .. "/charge_now")
|
||||
capacity = capacity + readFile(battery .. "/charge_full")
|
||||
elseif fileExists(battery .. "/capacity_level") then
|
||||
return readFile(battery .. "/capacity_level")
|
||||
else
|
||||
return "Unsupported"
|
||||
end
|
||||
return string.format("%." .. config.battery.precision .. "f", (charge / capacity) * 100) .. "%"
|
||||
end
|
||||
|
||||
function isCharging(battery)
|
||||
return readFile(battery .. "/status") == "Charging\n"
|
||||
end
|
||||
|
||||
|
||||
local batteryContainer = wibox.widget {
|
||||
layout = wibox.layout.fixed.horizontal
|
||||
}
|
||||
local timers = {}
|
||||
function refreshBatteries()
|
||||
-- refresh raw batteries and check for change
|
||||
local oldBatteries = rawBatteries
|
||||
refreshRawBatteries()
|
||||
if rawBatteries == oldBatteries then
|
||||
return
|
||||
end
|
||||
|
||||
-- clear timers
|
||||
for i,v in ipairs(timers) do
|
||||
v:stop()
|
||||
end
|
||||
timers = {};
|
||||
|
||||
-- clear layout
|
||||
batteryContainer:set_children({})
|
||||
|
||||
for battery in rawBatteries:gmatch("([^\n]+)") do
|
||||
local path = "/sys/class/power_supply/" .. battery
|
||||
if readFile(path .. "/type"):match("Battery") then
|
||||
-- widget
|
||||
local widget = wibox.widget {
|
||||
local battery = wibox.widget {
|
||||
{
|
||||
markup = "-- %",
|
||||
align = "center",
|
||||
@ -203,42 +141,62 @@ function refreshBatteries()
|
||||
},
|
||||
margins = beautiful.system_resources_widget_battery_margin,
|
||||
widget = wibox.container.margin,
|
||||
}
|
||||
}
|
||||
|
||||
-- tooltip
|
||||
local name = readFile(path .. "/model_name")
|
||||
local tooltip = awful.tooltip {
|
||||
text = name
|
||||
}
|
||||
tooltip:add_to_object(widget)
|
||||
local batteryText = battery:get_children()[1]
|
||||
|
||||
-- update battery level
|
||||
local batteryText = widget:get_children()[1]
|
||||
local timer = gears.timer {
|
||||
local rawBatteries = readCommand("ls -A1 /sys/class/power_supply")
|
||||
|
||||
function getBatteries()
|
||||
return rawBatteries:gmatch("([^\n]+)")
|
||||
end
|
||||
|
||||
function hasBattery()
|
||||
return rawBatteries:len() > 0
|
||||
end
|
||||
|
||||
function getBatteryCapacity()
|
||||
local charge = 0
|
||||
local capacity = 0
|
||||
for b in getBatteries() do
|
||||
if b:sub(1,3) ~= 'hid' and readCommand("cat /sys/class/power_supply/" .. b .. "/type"):match("Battery") then
|
||||
if fileExists("/sys/class/power_supply/" .. b .. "/energy_now") then
|
||||
charge = charge + readCommand("cat /sys/class/power_supply/" .. b .. "/energy_now")
|
||||
capacity = capacity + readCommand("cat /sys/class/power_supply/" .. b .. "/energy_full")
|
||||
else
|
||||
charge = charge + readCommand("cat /sys/class/power_supply/" .. b .. "/charge_now")
|
||||
capacity = capacity + readCommand("cat /sys/class/power_supply/" .. b .. "/charge_full")
|
||||
end
|
||||
end
|
||||
end
|
||||
return charge / capacity
|
||||
end
|
||||
|
||||
function isCharging()
|
||||
for b in getBatteries() do
|
||||
if readCommand("cat /sys/class/power_supply/" .. b .. "/type"):match("Battery") then
|
||||
return readCommand("cat /sys/class/power_supply/" .. b .. "/status") ~= "Discharging"
|
||||
end
|
||||
end
|
||||
return nil
|
||||
end
|
||||
|
||||
if hasBattery() then
|
||||
gears.timer {
|
||||
timeout = config.battery.refresh_interval,
|
||||
call_now = true,
|
||||
autostart = true,
|
||||
callback = function()
|
||||
batteryText.markup = (isCharging(path) and "+" or "") .. getBatteryLevel(path)
|
||||
batteryText.markup = string.format("%." .. config.battery.precision .. "f", getBatteryCapacity() * 100) .. "%"
|
||||
end
|
||||
}
|
||||
table.insert(timers, timer)
|
||||
|
||||
batteryContainer:add(widget)
|
||||
end
|
||||
end
|
||||
else
|
||||
battery = nil
|
||||
end
|
||||
|
||||
gears.timer {
|
||||
timeout = config.battery.list_refresh_interval,
|
||||
call_now = true,
|
||||
autostart = true,
|
||||
callback = function()
|
||||
refreshBatteries()
|
||||
end
|
||||
}
|
||||
|
||||
|
||||
return {
|
||||
bars = bars,
|
||||
battery = batteryContainer,
|
||||
battery = battery,
|
||||
}
|
203
theme.lua
@ -1,3 +1,204 @@
|
||||
local theme = require("default_theme")
|
||||
---------------------------
|
||||
-- Default awesome theme --
|
||||
---------------------------
|
||||
|
||||
local awful = require("awful")
|
||||
local naughty = require("naughty")
|
||||
local gears = require("gears")
|
||||
|
||||
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 simple_awesome_path = awful.util.getdir("config")
|
||||
|
||||
local theme = {}
|
||||
|
||||
theme.font = "Noto Sans 12"
|
||||
theme.mono_font = "Source Code Pro 11"
|
||||
|
||||
theme.bg_normal = "#222222"
|
||||
theme.bg_focus = "#282828"
|
||||
theme.bg_urgent = "#bf221c"
|
||||
theme.bg_minimize = "#111111"
|
||||
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(0)
|
||||
theme.border_width = dpi(0)
|
||||
theme.border_normal = "#555555"
|
||||
theme.border_focus = "#555555"
|
||||
theme.border_marked = "#91231c"
|
||||
|
||||
-- Tasklist
|
||||
theme.tasklist_bg_focus = theme.bg_minimize
|
||||
theme.tasklist_bg_minimize = theme.bg_normal
|
||||
|
||||
-- Notifications
|
||||
naughty.config.padding = dpi(8)
|
||||
naughty.config.defaults.position = "top_right"
|
||||
naughty.config.defaults.margin = dpi(16)
|
||||
naughty.config.defaults.border_width = dpi(0)
|
||||
naughty.config.presets.critical.bg = "#e82922"
|
||||
theme.notification_shape = function(cr, width, height)
|
||||
return gears.shape.rounded_rect(cr, width, height, 5)
|
||||
end
|
||||
theme.notification_margin = dpi(16)
|
||||
theme.notification_width = dpi(512)
|
||||
theme.notification_border_color = theme.border_focus
|
||||
theme.notification_border_width = dpi(0)
|
||||
theme.notification_bg = theme.bg_focus
|
||||
theme.notification_fg = theme.fg_focus
|
||||
|
||||
-- Hotkeys (awesome help menu)
|
||||
theme.hotkeys_border_color = theme.border_normal
|
||||
|
||||
-- System resources widget
|
||||
theme.system_resources_widget_bar_bg = theme.bg_focus
|
||||
theme.system_resources_widget_bar_color = "#ffffff"
|
||||
theme.system_resources_widget_border_color = theme.fg_normal
|
||||
theme.system_resources_widget_border_width = 1
|
||||
theme.system_resources_widget_bar_width = dpi(8)
|
||||
theme.system_resources_widget_bar_margin = dpi(2)
|
||||
theme.system_resources_widget_bar_shape = function(cr, width, height)
|
||||
return gears.shape.rounded_rect (cr, width, height, 2)
|
||||
end
|
||||
theme.system_resources_widget_battery_margin = theme.system_resources_widget_bar_width
|
||||
|
||||
-- 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(8)
|
||||
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(32)
|
||||
theme.menu_width = dpi(256)
|
||||
|
||||
-- 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 = simple_awesome_path .. "/assets/icons/x.svg"
|
||||
theme.titlebar_close_button_focus = theme.titlebar_close_button_normal
|
||||
theme.titlebar_close_button_hover_bg_color = '#800'
|
||||
|
||||
theme.titlebar_maximized_button_normal_inactive = simple_awesome_path .. "/assets/icons/maximize.svg"
|
||||
theme.titlebar_maximized_button_focus_inactive = theme.titlebar_maximized_button_normal_inactive
|
||||
theme.titlebar_maximized_button_normal_active = simple_awesome_path .. "/assets/icons/unmaximize.svg"
|
||||
theme.titlebar_maximized_button_focus_active = theme.titlebar_maximized_button_normal_active
|
||||
theme.titlebar_maximized_button_hover_bg_color = '#555'
|
||||
|
||||
theme.titlebar_minimize_button_normal = simple_awesome_path .. "/assets/icons/minus.svg"
|
||||
theme.titlebar_minimize_button_focus = theme.titlebar_minimize_button_normal
|
||||
theme.titlebar_minimize_button_hover_bg_color = '#555'
|
||||
|
||||
theme.titlebar_ontop_button_normal_inactive = themes_path.."default/titlebar/ontop_normal_inactive.png"
|
||||
theme.titlebar_ontop_button_focus_inactive = theme.titlebar_ontop_button_normal_inactive
|
||||
theme.titlebar_ontop_button_normal_active = themes_path.."default/titlebar/ontop_normal_active.png"
|
||||
theme.titlebar_ontop_button_focus_active = theme.titlebar_ontop_button_normal_active
|
||||
theme.titlebar_ontop_button_hover_bg_color = '#555'
|
||||
|
||||
theme.titlebar_floating_button_normal_inactive = themes_path.."default/titlebar/floating_normal_inactive.png"
|
||||
theme.titlebar_floating_button_focus_inactive = theme.titlebar_floating_button_normal_inactive
|
||||
theme.titlebar_floating_button_normal_active = themes_path.."default/titlebar/floating_normal_active.png"
|
||||
theme.titlebar_floating_button_focus_active = theme.titlebar_floating_button_normal_active
|
||||
theme.titlebar_floating_button_hover_bg_color = '#555'
|
||||
|
||||
|
||||
theme.wallpaper = simple_awesome_path.."/assets/art/wall_secondary.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.start_menu_icon = simple_awesome_path .. "/assets/icons/material-tux-dark-keen.svg"
|
||||
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
|
||||
|
||||
-- Volume OSD
|
||||
theme.volume_osd_width = dpi(48)
|
||||
theme.volume_osd_bar_height = dpi(196)
|
||||
theme.volume_osd_padding = dpi(8)
|
||||
theme.volume_osd_shape = function(cr, width, height)
|
||||
return gears.shape.rounded_rect(cr, width, height, 5)
|
||||
end
|
||||
theme.volume_osd_position = function(screen_width, screen_height, osd_width, osd_height)
|
||||
return {
|
||||
dpi(8),
|
||||
theme.menu_height + dpi(8)
|
||||
}
|
||||
end
|
||||
|
||||
theme.volume_osd_bg = theme.bg_normal
|
||||
theme.volume_osd_border_color = theme.border_normal
|
||||
theme.volume_osd_border_width = dpi(0)
|
||||
theme.volume_osd_progress_bg = theme.bg_minimize
|
||||
theme.volume_osd_progress_color = "#ffffff"
|
||||
theme.volume_osd_progress_color_muted = "#555555"
|
||||
theme.volume_osd_progress_border_color = theme.volume_osd_border_color
|
||||
theme.volume_osd_progress_border_width = dpi(0)
|
||||
theme.volume_osd_image_color = "#ffffff"
|
||||
theme.volume_osd_icon_0 = simple_awesome_path .. "/assets/icons/volume-x.svg"
|
||||
theme.volume_osd_icon_1 = simple_awesome_path .. "/assets/icons/volume.svg"
|
||||
theme.volume_osd_icon_2 = simple_awesome_path .. "/assets/icons/volume-1.svg"
|
||||
theme.volume_osd_icon_3 = simple_awesome_path .. "/assets/icons/volume-2.svg"
|
||||
|
||||
|
||||
-- Power Menu
|
||||
theme.power_menu_icon_color = "#ffffff"
|
||||
|
||||
return theme
|
||||
|