adjust themes and other stuff

This commit is contained in:
kp2pml30 2025-02-02 00:24:27 +04:00
parent 1bd790f1c8
commit 70e965c63f
17 changed files with 332 additions and 183 deletions

View file

@ -78,6 +78,9 @@
boot.efiGrub = true;
hardware.wireless = true;
hardware.audio = true;
messengers.personal = true;
};
}
];

View file

@ -8,6 +8,7 @@ local awful = require("awful")
require("awful.autofocus")
-- Widget and layout library
local wibox = require("wibox")
local deficient = require("deficient")
-- Theme handling library
local beautiful = require("beautiful")
-- Notification library
@ -45,7 +46,9 @@ end
-- {{{ Variable definitions
-- Themes define colours, icons, font and wallpapers.
beautiful.init(gears.filesystem.get_themes_dir() .. "default/theme.lua")
if not beautiful.init(require("theme")) then
beautiful.init(gears.filesystem.get_themes_dir() .. "default/theme.lua")
end
-- This is used later as the default terminal and editor to run.
terminal = "kitty"
@ -83,11 +86,11 @@ awful.layout.layouts = {
-- {{{ 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 },
{ "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 },
@ -107,7 +110,14 @@ mykeyboardlayout = awful.widget.keyboardlayout()
-- {{{ Wibar
-- Create a textclock widget
mytextclock = wibox.widget.textclock()
local mytextclock = wibox.widget {
format = "%a %d/%m/%y %H:%M %b",
widget = wibox.widget.textclock,
}
local my_brightness = deficient.brightness {
}
local my_volume = deficient.volume_control({})
-- Create a wibox for each screen and add it
local taglist_buttons = gears.table.join(
@ -213,6 +223,8 @@ awful.screen.connect_for_each_screen(function(s)
mykeyboardlayout,
wibox.widget.systray(),
mytextclock,
my_brightness.widget,
my_volume.widget,
s.mylayoutbox,
},
}
@ -250,8 +262,6 @@ globalkeys = gears.table.join(
end,
{description = "focus previous by index", group = "client"}
),
awful.key({ modkey, }, "w", function () mymainmenu:show() end,
{description = "show main menu", group = "awesome"}),
-- Layout manipulation
awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end,
@ -313,7 +323,7 @@ globalkeys = gears.table.join(
-- Prompt
awful.key({ modkey }, "r", function () awful.screen.focused().mypromptbox:run() end,
{description = "run prompt", group = "launcher"}),
awful.key({ modkey }, "d", function () awful.spawn("rofi -show drun") end,
awful.key({ modkey }, "d", function () awful.spawn("rofi -show drun -drun-show-actions") end,
{description = "run prompt", group = "launcher"}),
awful.key({ modkey }, "x",
@ -328,7 +338,15 @@ globalkeys = gears.table.join(
{description = "lua execute prompt", group = "awesome"}),
-- Menubar
awful.key({ modkey }, "p", function() menubar.show() end,
{description = "show the menubar", group = "launcher"})
{description = "show the menubar", group = "launcher"}),
-- fns
awful.key({}, "XF86AudioRaiseVolume", function() my_volume:up() end),
awful.key({}, "XF86AudioLowerVolume", function() my_volume:down() end),
awful.key({}, "XF86AudioMute", function() my_volume:toggle() end),
awful.key({}, "XF86MonBrightnessDown", function() my_brightness:down() end),
awful.key({}, "XF86MonBrightnessUp", function() my_brightness:up() end)
)
clientkeys = gears.table.join(

View file

@ -0,0 +1,109 @@
-- based on https://github.com/micro-hawk/awesomight/blob/master/dotfiles/.config/awesome/themes/tokyo-night/theme.lua
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.dir = os.getenv("HOME") .. "/.config/awesome/"
-- theme.wallpaper = theme.dir .. "/tokyo-night/witcher-wall7.png"
theme.font = "FiraCode Nerd Font Mono 11"
theme.fg_normal = "#DDDDFF"
theme.fg_focus = "#f7768e"
theme.fg_urgent = "#ff9e64"
theme.bg_normal = "#16161e"
theme.temp_color = "#16161e"
theme.bg_focus = "#292e42"
theme.bg_urgent = "#292e42"
theme.border_width = 2
theme.border_normal = theme.bg_urgent
theme.border_focus = theme.fg_focus
theme.border_marked = theme.fg_focus
theme.tasklist_bg_focus = theme.bg_focus
theme.titlebar_bg_focus = theme.bg_focus
theme.titlebar_bg_normal = theme.bg_normal
theme.titlebar_fg_focus = theme.fg_focus
local taglist_square_size = dpi(4)
theme.taglist_squares_sel = theme_assets.taglist_squares_sel(
taglist_square_size, theme.fg_focus
)
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)
-- 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 = themes_path.."default/background.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

View file

@ -1,4 +1,4 @@
font_family Fira Code Nerd Font Mono
font_family family="FiraCode Nerd Font Mono"
map alt+1 first_window
map alt+2 second_window

View file

@ -39,7 +39,6 @@ if system('uname -a') =~ '\<WSL2\>'
\ }
endif
" colorscheme tokyonight-night
if exists(':GuiRenderLigatures')
GuiRenderLigatures 1
endif
@ -49,6 +48,8 @@ if exists(':GuiFont')
endif
function s:post_load()
colorscheme tokyonight-night
if exists(':NERDTreeToggle')
map <F3> :NERDTreeToggle<CR>
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif

1
home/.config/rofi/config Normal file
View file

@ -0,0 +1 @@
rofi.theme: ~/.config/rofi/simple-tokyonight.rasi

View file

@ -0,0 +1,116 @@
# See https://github.com/newmanls/rofi-themes-collection/tree/master (GPLv3)
* {
font: "Iosevka Nerd Font Medium 11";
bg0 : #1a1b26;
bg1 : #1f2335;
bg2 : #24283b;
bg3 : #414868;
fg0 : #c0caf5;
fg1 : #a9b1d6;
fg2 : #737aa2;
red : #f7768e;
green : #9ece6a;
yellow : #e0af68;
blue : #7aa2f7;
magenta : #9a7ecc;
cyan : #4abaaf;
accent: @red;
urgent: @yellow;
background-color : transparent;
text-color : @fg0;
margin : 0;
padding : 0;
spacing : 0;
}
element-icon, element-text, scrollbar {
cursor: pointer;
}
window {
location : northwest;
width : 280px;
x-offset : 4px;
y-offset : 26px;
background-color: @bg1;
border: 1px;
border-color: @bg3;
border-radius: 6px;
}
inputbar {
spacing : 8px;
padding : 4px 8px;
children : [ icon-search, entry ];
background-color: @bg0;
}
icon-search, entry, element-icon, element-text {
vertical-align: 0.5;
}
icon-search {
expand : false;
filename : "search-symbolic";
size : 14px;
}
textbox {
padding : 4px 8px;
background-color : @bg2;
}
listview {
padding : 4px 0px;
lines : 12;
columns : 1;
scrollbar : true;
fixed-height : false;
dynamic : true;
}
element {
padding : 4px 8px;
spacing : 8px;
}
element normal urgent {
text-color: @urgent;
}
element normal active {
text-color: @accent;
}
element alternate active {
text-color: @accent;
}
element selected {
text-color : @bg1;
background-color : @accent;
}
element selected urgent {
background-color: @urgent;
}
element-icon {
size: 0.8em;
}
element-text {
text-color: inherit;
}
scrollbar {
handle-width : 4px;
handle-color : @fg2;
padding : 0 4px;
}

21
nix/hardware/audio.nix Normal file
View file

@ -0,0 +1,21 @@
{ pkgs
, lib
, rootPath
, config
, ...
}:
let
cfg = config.kp2pml30;
in lib.mkIf cfg.hardware.audio {
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
environment.systemPackages = with pkgs; [
alsa-utils
acpid
];
}

View file

@ -10,11 +10,13 @@
options.kp2pml30.hardware = {
wireless = lib.mkEnableOption "";
audio = lib.mkEnableOption "";
};
imports = [
./efiGrub.nix
./wireless.nix
./audio.nix
];
config = {

View file

@ -17,6 +17,10 @@ in {
kitty = lib.mkEnableOption "";
opera = lib.mkEnableOption "";
steam = lib.mkEnableOption "";
messengers = {
personal = lib.mkEnableOption "";
work = lib.mkEnableOption "";
};
};
imports = [
@ -53,6 +57,7 @@ in {
fishPlugins.grc
fishPlugins.bass
python312 # needed for bass
grc
];
@ -67,6 +72,7 @@ in {
"nvidia-settings"
"nvidia-persistenced"
"opera"
"discord-ptb"
];
};
}

View file

@ -13,6 +13,9 @@ in {
./opera.nix
./steam.nix
./messengers.nix
./messengers-work.nix
];
fonts.packages = with pkgs; [

View file

@ -0,0 +1,10 @@
{ pkgs
, lib
, rootPath
, config
, ...
}:
let
cfg = config.kp2pml30;
in lib.mkIf cfg.messengers.personal {
}

View file

@ -0,0 +1,15 @@
{ pkgs
, lib
, rootPath
, config
, ...
}:
let
cfg = config.kp2pml30;
in lib.mkIf cfg.messengers.personal {
users.users.${cfg.username}.packages = with pkgs; [
discord-ptb
telegram-desktop
signal-desktop
];
}

View file

@ -31,12 +31,23 @@ in lib.mkIf cfg.xserver {
environment.systemPackages = with pkgs; [
xclip
brightnessctl
];
home-manager.users.${cfg.username} = {
home.file.".config/awesome/rc.lua" = { source = rootPath + "/home/.config/awesome/rc.lua"; };
programs.rofi = {
enable = true;
};
home.file.".config/rofi" = { source = rootPath + "/home/.config/rofi"; recursive = true; };
home.file.".config/awesome/rc.lua" = { source = rootPath + "/home/.config/awesome/rc.lua"; };
home.file.".config/awesome/theme.lua" = { source = rootPath + "/home/.config/awesome/theme.lua"; };
home.file.".config/awesome/deficient" = {
source = builtins.fetchGit {
url = "https://github.com/deficient/deficient.git";
rev = "22ad2bea198f0c231afac0b7197d9b4eb6d80da3";
};
recursive = true;
};
};
}

View file

@ -30,12 +30,12 @@ in lib.mkIf cfg.nginx {
listen = [
{ addr = "0.0.0.0"; port = 80; }
{ addr = "0.0.0.0"; port = 444; ssl = true; }
# { addr = "0.0.0.0"; port = 444; ssl = true; }
];
locations."/" = {
root = cfg.sitePath;
tryFiles = "$uri $uri/ index.html";
tryFiles = "$uri $uri/ /index.html";
};
};

View file

@ -1,49 +0,0 @@
% # run it like this: `erb ports='[]' iptables.erb | iptables-restore`
% # NOTE: it discards docker iptable rules
*filter
-N DOCKER-USER
-N DOCKER-ISOLATION-STAGE-1
# don't restrict output at all
-A OUTPUT -j ACCEPT
# allow all loopback
-A INPUT -i lo -j ACCEPT
-A FORWARD -i lo -j ACCEPT
# allow all established
-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A DOCKER-USER -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# allow wireguard
-A INPUT -i wg0 -j ACCEPT
-A FORWARD -i wg0 -j ACCEPT
-A DOCKER-USER -i wg0 -j ACCEPT
# allow all docker
-A DOCKER-USER -i docker0 -j DOCKER-ISOLATION-STAGE-1
% require 'json'
% prts = [22, 80, 443] + JSON.parse(ports)
# apply it with `iptables-restore < ./iptables`
# allow all loopback
-A INPUT -i lo -j ACCEPT
# custom ports
% prts.each { |port|
% ['tcp', 'udp'].each { |proto|
-A FORWARD -p <%= proto %> --dport <%= port %> -j ACCEPT
-A INPUT -p <%= proto %> --dport <%= port %> -j ACCEPT
-A DOCKER-USER -p <%= proto %> -m conntrack --ctorigdstport <%= port %> --ctdir ORIGINAL -j ACCEPT
% }
% }
%
# disallow all other
-A INPUT -j DROP
-A FORWARD -j DROP
-A DOCKER-USER -j DROP
COMMIT

View file

@ -1,118 +0,0 @@
#!/usr/bin/env bash
set -e
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
HOST=""
PORT=""
GENKEY=false
function show_help {
echo "wireguard configurator"
echo " --host host-name"
echo " --port port"
echo " [--gen-key]"
}
while [ $# -ne 0 ]
do
ARG="$1"
shift
case "$ARG" in
--help)
show_help
exit 0
;;
--host)
HOST="$1"
shift
;;
--port)
PORT="$1"
shift
;;
--gen-keys)
GENKEY=true
;;
*)
echo "unknown argument $ARG"
show_help
exit 1
;;
esac
done
echo "Parsed:"
echo " --host $HOST"
echo " --port $PORTI"
if [ "$HOST" == "" ]
then
echo "host not set"
show_help
exit 1
fi
if [ "$PORT" == "" ]
then
echo "port not set"
show_help
exit 1
fi
if [ ! -f .gitignore ]
then
echo "INFO creating gitignore"
touch .gitignore
fi
if ! grep -Pq '^/key$' .gitignore
then
echo "INFO adding key to .gitignore"
echo "/key" >> .gitignore
fi
if ! grep -Pq '^/wg0\.conf$' .gitignore
then
echo "INFO adding wg0.conf to .gitignore"
echo "/wg0.conf" >> .gitignore
fi
if [ "$GENKEY" == "true" ]
then
touch key
chmod 600 key
wg genkey > key
wg pubkey < key > key.pub
fi
touch wg0.conf
chmod 600 wg0.conf
KEY="$(cat key)"
erb "private_key=$KEY" port="$PORT" "$SCRIPT_DIR/wg0.conf.erb" > wg0.conf
KEY=""
PUBKEY="$(cat key.pub)"
echo ""
echo "Run following to start wireguard:"
echo " wg-quick up ./wg0.conf"
echo "You can add peers as follows:"
echo " wg set wg0 peer <pub key> allowed-ips IP"
echo ""
echo "Client's configuration is"
echo "=================================="
cat <<-EOF
[Interface]
Address = 10.30.30.@@/32
PrivateKey = <Private key>
DNS = 10.30.30.1
[Peer]
PublicKey = $PUBKEY
Endpoint = $HOST:$PORT
AllowedIPs = 10.30.30.0/24
PersistentKeepalive = 25
EOF
echo "=================================="