mirror of
https://github.com/kp2pml30/dotfiles.git
synced 2026-02-16 23:34:42 +04:00
adjust themes and other stuff
This commit is contained in:
parent
1bd790f1c8
commit
70e965c63f
17 changed files with 332 additions and 183 deletions
|
|
@ -78,6 +78,9 @@
|
|||
boot.efiGrub = true;
|
||||
|
||||
hardware.wireless = true;
|
||||
hardware.audio = true;
|
||||
|
||||
messengers.personal = true;
|
||||
};
|
||||
}
|
||||
];
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
109
home/.config/awesome/theme.lua
Normal file
109
home/.config/awesome/theme.lua
Normal 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
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
1
home/.config/rofi/config
Normal file
|
|
@ -0,0 +1 @@
|
|||
rofi.theme: ~/.config/rofi/simple-tokyonight.rasi
|
||||
116
home/.config/rofi/simple-tokyonight.rasi
Normal file
116
home/.config/rofi/simple-tokyonight.rasi
Normal 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
21
nix/hardware/audio.nix
Normal 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
|
||||
];
|
||||
}
|
||||
|
|
@ -10,11 +10,13 @@
|
|||
|
||||
options.kp2pml30.hardware = {
|
||||
wireless = lib.mkEnableOption "";
|
||||
audio = lib.mkEnableOption "";
|
||||
};
|
||||
|
||||
imports = [
|
||||
./efiGrub.nix
|
||||
./wireless.nix
|
||||
./audio.nix
|
||||
];
|
||||
|
||||
config = {
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,9 @@ in {
|
|||
|
||||
./opera.nix
|
||||
./steam.nix
|
||||
|
||||
./messengers.nix
|
||||
./messengers-work.nix
|
||||
];
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
|
|
|
|||
10
nix/personal/graphical/messengers-work.nix
Normal file
10
nix/personal/graphical/messengers-work.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{ pkgs
|
||||
, lib
|
||||
, rootPath
|
||||
, config
|
||||
, ...
|
||||
}:
|
||||
let
|
||||
cfg = config.kp2pml30;
|
||||
in lib.mkIf cfg.messengers.personal {
|
||||
}
|
||||
15
nix/personal/graphical/messengers.nix
Normal file
15
nix/personal/graphical/messengers.nix
Normal 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
|
||||
];
|
||||
}
|
||||
|
|
@ -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;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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 "=================================="
|
||||
Loading…
Add table
Add a link
Reference in a new issue