From bb8ffbc9990721e543a96f13b603eccb1e4f6740 Mon Sep 17 00:00:00 2001 From: jasmine Date: Sat, 27 Jul 2024 08:25:17 +0800 Subject: [PATCH] Migrate to AwesomeWM + refactor --- .../features/desktop/awesome/config/rc.lua | 563 ++++++++++++++++++ .../features/desktop/awesome/default.nix | 29 + .../features/desktop/common/default.nix | 10 - .../features/desktop/{jade => }/default.nix | 20 +- .../{common => }/discord/config/custom.css | 0 .../desktop/{common => }/discord/default.nix | 0 .../discord/plugins/HideChannels.plugin.js | 0 .../plugins/RemoveBlockedUsers.plugin.js | 0 .../features/desktop/{common => }/email.nix | 0 .../features/desktop/{common => }/irc.nix | 0 .../features/desktop/{common => }/mpd.nix | 0 .../features/desktop/{jade => }/picom.nix | 0 .../desktop/{jade => }/rofi/default.nix | 0 .../rofi/gruvbox-material/gruvbox-common.rasi | 0 .../gruvbox-material-dark-hard.rasi | 0 .../colors/gruvbox_material_dark_hard.toml | 0 .../{jade => }/wezterm/config/wezterm.lua | 0 .../features/desktop/wezterm/default.nix | 12 + .../features/desktop/{jade => }/xinitrc | 5 +- home-manager/sajenim/fuchsia.nix | 5 +- 20 files changed, 613 insertions(+), 31 deletions(-) create mode 100644 home-manager/sajenim/features/desktop/awesome/config/rc.lua create mode 100644 home-manager/sajenim/features/desktop/awesome/default.nix delete mode 100644 home-manager/sajenim/features/desktop/common/default.nix rename home-manager/sajenim/features/desktop/{jade => }/default.nix (50%) rename home-manager/sajenim/features/desktop/{common => }/discord/config/custom.css (100%) rename home-manager/sajenim/features/desktop/{common => }/discord/default.nix (100%) rename home-manager/sajenim/features/desktop/{common => }/discord/plugins/HideChannels.plugin.js (100%) rename home-manager/sajenim/features/desktop/{common => }/discord/plugins/RemoveBlockedUsers.plugin.js (100%) rename home-manager/sajenim/features/desktop/{common => }/email.nix (100%) rename home-manager/sajenim/features/desktop/{common => }/irc.nix (100%) rename home-manager/sajenim/features/desktop/{common => }/mpd.nix (100%) rename home-manager/sajenim/features/desktop/{jade => }/picom.nix (100%) rename home-manager/sajenim/features/desktop/{jade => }/rofi/default.nix (100%) rename home-manager/sajenim/features/desktop/{jade => }/rofi/gruvbox-material/gruvbox-common.rasi (100%) rename home-manager/sajenim/features/desktop/{jade => }/rofi/gruvbox-material/gruvbox-material-dark-hard.rasi (100%) rename home-manager/sajenim/features/desktop/{jade => }/wezterm/config/colors/gruvbox_material_dark_hard.toml (100%) rename home-manager/sajenim/features/desktop/{jade => }/wezterm/config/wezterm.lua (100%) create mode 100644 home-manager/sajenim/features/desktop/wezterm/default.nix rename home-manager/sajenim/features/desktop/{jade => }/xinitrc (66%) diff --git a/home-manager/sajenim/features/desktop/awesome/config/rc.lua b/home-manager/sajenim/features/desktop/awesome/config/rc.lua new file mode 100644 index 0000000..acaee16 --- /dev/null +++ b/home-manager/sajenim/features/desktop/awesome/config/rc.lua @@ -0,0 +1,563 @@ +-- awesome_mode: api-level=4:screen=on +-- 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") +-- Declarative object management +local ruled = require("ruled") +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) +naughty.connect_signal("request::display_error", function(message, startup) + naughty.notification { + urgency = "critical", + title = "Oops, an error happened"..(startup and " during startup!" or "!"), + message = message + } +end) +-- }}} + +-- {{{ Variable definitions +-- Themes define colours, icons, font and wallpapers. +beautiful.init(gears.filesystem.get_themes_dir() .. "default/theme.lua") + +-- This is used later as the default terminal and editor to run. +terminal = "xterm" +editor = os.getenv("EDITOR") or "nano" +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" +-- }}} + +-- {{{ 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 } + } + }) + +mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon, + menu = mymainmenu }) + +-- Menubar configuration +menubar.utils.terminal = terminal -- Set the terminal for applications that require it +-- }}} + +-- {{{ Tag layout +-- Table of layouts to cover with awful.layout.inc, order matters. +tag.connect_signal("request::default_layouts", function() + awful.layout.append_default_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, + }) +end) +-- }}} + +-- {{{ Wallpaper +screen.connect_signal("request::wallpaper", function(s) + awful.wallpaper { + screen = s, + widget = { + { + image = beautiful.wallpaper, + upscale = true, + downscale = true, + widget = wibox.widget.imagebox, + }, + valign = "center", + halign = "center", + tiled = false, + widget = wibox.container.tile, + } + } +end) +-- }}} + +-- {{{ Wibar + +-- Keyboard map indicator and switcher +mykeyboardlayout = awful.widget.keyboardlayout() + +-- Create a textclock widget +mytextclock = wibox.widget.textclock() + +screen.connect_signal("request::desktop_decoration", function(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 { + screen = s, + buttons = { + 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 = { + 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.viewprev(t.screen) end), + awful.button({ }, 5, function(t) awful.tag.viewnext(t.screen) end), + } + } + + -- Create a tasklist widget + s.mytasklist = awful.widget.tasklist { + screen = s, + filter = awful.widget.tasklist.filter.currenttags, + buttons = { + awful.button({ }, 1, function (c) + c:activate { context = "tasklist", action = "toggle_minimization" } + 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), + } + } + + -- Create the wibox + s.mywibox = awful.wibar { + position = "top", + screen = s, + widget = { + 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 +awful.mouse.append_global_mousebindings({ + awful.button({ }, 3, function () mymainmenu:toggle() end), + awful.button({ }, 4, awful.tag.viewprev), + awful.button({ }, 5, awful.tag.viewnext), +}) +-- }}} + +-- {{{ Key bindings + +-- General Awesome keys +awful.keyboard.append_global_keybindings({ + awful.key({ modkey, }, "s", hotkeys_popup.show_help, + {description="show help", group="awesome"}), + awful.key({ modkey, }, "w", function () mymainmenu:show() end, + {description = "show main menu", group = "awesome"}), + 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 }, "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"}), + awful.key({ modkey, }, "Return", function () awful.spawn(terminal) end, + {description = "open a terminal", group = "launcher"}), + awful.key({ modkey }, "r", function () awful.screen.focused().mypromptbox:run() end, + {description = "run prompt", group = "launcher"}), + awful.key({ modkey }, "p", function() menubar.show() end, + {description = "show the menubar", group = "launcher"}), +}) + +-- Tags related keybindings +awful.keyboard.append_global_keybindings({ + 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"}), +}) + +-- Focus related keybindings +awful.keyboard.append_global_keybindings({ + awful.key({ modkey, }, "j", + function () + awful.client.focus.byidx( 1) + end, + {description = "focus next by index", group = "client"} + ), + awful.key({ modkey, }, "k", + function () + awful.client.focus.byidx(-1) + end, + {description = "focus previous by index", group = "client"} + ), + awful.key({ modkey, }, "Tab", + function () + awful.client.focus.history.previous() + if client.focus then + client.focus:raise() + end + end, + {description = "go back", 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, "Control" }, "n", + function () + local c = awful.client.restore() + -- Focus restored client + if c then + c:activate { raise = true, context = "key.unminimize" } + end + end, + {description = "restore minimized", group = "client"}), +}) + +-- Layout related keybindings +awful.keyboard.append_global_keybindings({ + awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end, + {description = "swap with next client by index", group = "client"}), + awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end, + {description = "swap with previous client by index", group = "client"}), + awful.key({ modkey, }, "u", awful.client.urgent.jumpto, + {description = "jump to urgent client", group = "client"}), + 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 () awful.layout.inc( 1) end, + {description = "select next", group = "layout"}), + awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(-1) end, + {description = "select previous", group = "layout"}), +}) + + +awful.keyboard.append_global_keybindings({ + awful.key { + modifiers = { modkey }, + keygroup = "numrow", + description = "only view tag", + group = "tag", + on_press = function (index) + local screen = awful.screen.focused() + local tag = screen.tags[index] + if tag then + tag:view_only() + end + end, + }, + awful.key { + modifiers = { modkey, "Control" }, + keygroup = "numrow", + description = "toggle tag", + group = "tag", + on_press = function (index) + local screen = awful.screen.focused() + local tag = screen.tags[index] + if tag then + awful.tag.viewtoggle(tag) + end + end, + }, + awful.key { + modifiers = { modkey, "Shift" }, + keygroup = "numrow", + description = "move focused client to tag", + group = "tag", + on_press = function (index) + if client.focus then + local tag = client.focus.screen.tags[index] + if tag then + client.focus:move_to_tag(tag) + end + end + end, + }, + awful.key { + modifiers = { modkey, "Control", "Shift" }, + keygroup = "numrow", + description = "toggle focused client on tag", + group = "tag", + on_press = function (index) + if client.focus then + local tag = client.focus.screen.tags[index] + if tag then + client.focus:toggle_tag(tag) + end + end + end, + }, + awful.key { + modifiers = { modkey }, + keygroup = "numpad", + description = "select layout directly", + group = "layout", + on_press = function (index) + local t = awful.screen.focused().selected_tag + if t then + t.layout = t.layouts[index] or t.layout + end + end, + } +}) + +client.connect_signal("request::default_mousebindings", function() + awful.mouse.append_client_mousebindings({ + awful.button({ }, 1, function (c) + c:activate { context = "mouse_click" } + end), + awful.button({ modkey }, 1, function (c) + c:activate { context = "mouse_click", action = "mouse_move" } + end), + awful.button({ modkey }, 3, function (c) + c:activate { context = "mouse_click", action = "mouse_resize"} + end), + }) +end) + +client.connect_signal("request::default_keybindings", function() + awful.keyboard.append_client_keybindings({ + awful.key({ modkey, }, "f", + function (c) + c.fullscreen = not c.fullscreen + c:raise() + end, + {description = "toggle fullscreen", group = "client"}), + awful.key({ modkey, "Shift" }, "c", function (c) c:kill() end, + {description = "close", group = "client"}), + awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle , + {description = "toggle floating", group = "client"}), + awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end, + {description = "move to master", group = "client"}), + awful.key({ modkey, }, "o", function (c) c:move_to_screen() end, + {description = "move to screen", group = "client"}), + awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end, + {description = "toggle keep on top", group = "client"}), + awful.key({ modkey, }, "n", + function (c) + -- The client currently has the input focus, so it cannot be + -- minimized, since minimized clients can't have the focus. + c.minimized = true + end , + {description = "minimize", group = "client"}), + awful.key({ modkey, }, "m", + function (c) + c.maximized = not c.maximized + c:raise() + end , + {description = "(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"}), + }) +end) + +-- }}} + +-- {{{ Rules +-- Rules to apply to new clients. +ruled.client.connect_signal("request::rules", function() + -- All clients will match this rule. + ruled.client.append_rule { + id = "global", + rule = { }, + properties = { + focus = awful.client.focus.filter, + raise = true, + screen = awful.screen.preferred, + placement = awful.placement.no_overlap+awful.placement.no_offscreen + } + } + + -- Floating clients. + ruled.client.append_rule { + id = "floating", + rule_any = { + instance = { "copyq", "pinentry" }, + class = { + "Arandr", "Blueman-manager", "Gpick", "Kruler", "Sxiv", + "Tor Browser", "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 + ruled.client.append_rule { + id = "titlebars", + rule_any = { type = { "normal", "dialog" } }, + properties = { titlebars_enabled = true } + } + + -- Set Firefox to always map on the tag named "2" on screen 1. + -- ruled.client.append_rule { + -- rule = { class = "Firefox" }, + -- properties = { screen = 1, tag = "2" } + -- } +end) +-- }}} + +-- {{{ Titlebars +-- 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 = { + awful.button({ }, 1, function() + c:activate { context = "titlebar", action = "mouse_move" } + end), + awful.button({ }, 3, function() + c:activate { context = "titlebar", action = "mouse_resize"} + end), + } + + awful.titlebar(c).widget = { + { -- Left + awful.titlebar.widget.iconwidget(c), + buttons = buttons, + layout = wibox.layout.fixed.horizontal + }, + { -- Middle + { -- Title + halign = "center", + widget = awful.titlebar.widget.titlewidget(c) + }, + buttons = buttons, + layout = wibox.layout.flex.horizontal + }, + { -- Right + awful.titlebar.widget.floatingbutton (c), + awful.titlebar.widget.maximizedbutton(c), + awful.titlebar.widget.stickybutton (c), + awful.titlebar.widget.ontopbutton (c), + awful.titlebar.widget.closebutton (c), + layout = wibox.layout.fixed.horizontal() + }, + layout = wibox.layout.align.horizontal + } +end) +-- }}} + +-- {{{ Notifications + +ruled.notification.connect_signal('request::rules', function() + -- All notifications will match this rule. + ruled.notification.append_rule { + rule = { }, + properties = { + screen = awful.screen.preferred, + implicit_timeout = 5, + } + } +end) + +naughty.connect_signal("request::display", function(n) + naughty.layout.box { notification = n } +end) + +-- }}} + +-- Enable sloppy focus, so that focus follows mouse. +client.connect_signal("mouse::enter", function(c) + c:activate { context = "mouse_enter", raise = false } +end) diff --git a/home-manager/sajenim/features/desktop/awesome/default.nix b/home-manager/sajenim/features/desktop/awesome/default.nix new file mode 100644 index 0000000..68c9549 --- /dev/null +++ b/home-manager/sajenim/features/desktop/awesome/default.nix @@ -0,0 +1,29 @@ +{ pkgs, ... }: +let + awesome = pkgs.awesome.overrideAttrs (oa: { + version = "ad0290bc1aac3ec2391aa14784146a53ebf9d1f0"; + src = pkgs.fetchFromGitHub { + owner = "awesomeWM"; + repo = "awesome"; + rev = "ad0290bc1aac3ec2391aa14784146a53ebf9d1f0"; + hash = "sha256-uaskBbnX8NgxrprI4UbPfb5cRqdRsJZv0YXXshfsxFU="; + }; + + patches = [ ]; + + postPatch = '' + patchShebangs tests/examples/_postprocess.lua + ''; + }); +in +{ + xdg.configFile = { + awesome = { source = ./config; recursive = true; }; + }; + + xsession.windowManager.awesome = { + enable = true; + package = awesome; + }; +} + diff --git a/home-manager/sajenim/features/desktop/common/default.nix b/home-manager/sajenim/features/desktop/common/default.nix deleted file mode 100644 index e4d71d6..0000000 --- a/home-manager/sajenim/features/desktop/common/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ ... }: - -{ - imports = [ - ./discord - ./email.nix - ./irc.nix - ./mpd.nix - ]; -} diff --git a/home-manager/sajenim/features/desktop/jade/default.nix b/home-manager/sajenim/features/desktop/default.nix similarity index 50% rename from home-manager/sajenim/features/desktop/jade/default.nix rename to home-manager/sajenim/features/desktop/default.nix index 0ed847f..3d5fc09 100644 --- a/home-manager/sajenim/features/desktop/jade/default.nix +++ b/home-manager/sajenim/features/desktop/default.nix @@ -2,14 +2,19 @@ { imports = [ + ./awesome + ./discord ./rofi + ./wezterm + + ./email.nix + ./irc.nix + ./mpd.nix ./picom.nix ]; home.packages = with pkgs; [ feh - xmobar - unstable.wezterm ]; home.file = { @@ -19,15 +24,4 @@ }; ".xinitrc".source = ./xinitrc; }; - - xdg.configFile = { - wezterm = { source = ./wezterm/config; recursive = true; }; - }; - - xsession.windowManager.xmonad = { - enable = true; - enableContribAndExtras = true; - config = "${inputs.self}/pkgs/xmonad-config/src/xmonad.hs"; - }; } - diff --git a/home-manager/sajenim/features/desktop/common/discord/config/custom.css b/home-manager/sajenim/features/desktop/discord/config/custom.css similarity index 100% rename from home-manager/sajenim/features/desktop/common/discord/config/custom.css rename to home-manager/sajenim/features/desktop/discord/config/custom.css diff --git a/home-manager/sajenim/features/desktop/common/discord/default.nix b/home-manager/sajenim/features/desktop/discord/default.nix similarity index 100% rename from home-manager/sajenim/features/desktop/common/discord/default.nix rename to home-manager/sajenim/features/desktop/discord/default.nix diff --git a/home-manager/sajenim/features/desktop/common/discord/plugins/HideChannels.plugin.js b/home-manager/sajenim/features/desktop/discord/plugins/HideChannels.plugin.js similarity index 100% rename from home-manager/sajenim/features/desktop/common/discord/plugins/HideChannels.plugin.js rename to home-manager/sajenim/features/desktop/discord/plugins/HideChannels.plugin.js diff --git a/home-manager/sajenim/features/desktop/common/discord/plugins/RemoveBlockedUsers.plugin.js b/home-manager/sajenim/features/desktop/discord/plugins/RemoveBlockedUsers.plugin.js similarity index 100% rename from home-manager/sajenim/features/desktop/common/discord/plugins/RemoveBlockedUsers.plugin.js rename to home-manager/sajenim/features/desktop/discord/plugins/RemoveBlockedUsers.plugin.js diff --git a/home-manager/sajenim/features/desktop/common/email.nix b/home-manager/sajenim/features/desktop/email.nix similarity index 100% rename from home-manager/sajenim/features/desktop/common/email.nix rename to home-manager/sajenim/features/desktop/email.nix diff --git a/home-manager/sajenim/features/desktop/common/irc.nix b/home-manager/sajenim/features/desktop/irc.nix similarity index 100% rename from home-manager/sajenim/features/desktop/common/irc.nix rename to home-manager/sajenim/features/desktop/irc.nix diff --git a/home-manager/sajenim/features/desktop/common/mpd.nix b/home-manager/sajenim/features/desktop/mpd.nix similarity index 100% rename from home-manager/sajenim/features/desktop/common/mpd.nix rename to home-manager/sajenim/features/desktop/mpd.nix diff --git a/home-manager/sajenim/features/desktop/jade/picom.nix b/home-manager/sajenim/features/desktop/picom.nix similarity index 100% rename from home-manager/sajenim/features/desktop/jade/picom.nix rename to home-manager/sajenim/features/desktop/picom.nix diff --git a/home-manager/sajenim/features/desktop/jade/rofi/default.nix b/home-manager/sajenim/features/desktop/rofi/default.nix similarity index 100% rename from home-manager/sajenim/features/desktop/jade/rofi/default.nix rename to home-manager/sajenim/features/desktop/rofi/default.nix diff --git a/home-manager/sajenim/features/desktop/jade/rofi/gruvbox-material/gruvbox-common.rasi b/home-manager/sajenim/features/desktop/rofi/gruvbox-material/gruvbox-common.rasi similarity index 100% rename from home-manager/sajenim/features/desktop/jade/rofi/gruvbox-material/gruvbox-common.rasi rename to home-manager/sajenim/features/desktop/rofi/gruvbox-material/gruvbox-common.rasi diff --git a/home-manager/sajenim/features/desktop/jade/rofi/gruvbox-material/gruvbox-material-dark-hard.rasi b/home-manager/sajenim/features/desktop/rofi/gruvbox-material/gruvbox-material-dark-hard.rasi similarity index 100% rename from home-manager/sajenim/features/desktop/jade/rofi/gruvbox-material/gruvbox-material-dark-hard.rasi rename to home-manager/sajenim/features/desktop/rofi/gruvbox-material/gruvbox-material-dark-hard.rasi diff --git a/home-manager/sajenim/features/desktop/jade/wezterm/config/colors/gruvbox_material_dark_hard.toml b/home-manager/sajenim/features/desktop/wezterm/config/colors/gruvbox_material_dark_hard.toml similarity index 100% rename from home-manager/sajenim/features/desktop/jade/wezterm/config/colors/gruvbox_material_dark_hard.toml rename to home-manager/sajenim/features/desktop/wezterm/config/colors/gruvbox_material_dark_hard.toml diff --git a/home-manager/sajenim/features/desktop/jade/wezterm/config/wezterm.lua b/home-manager/sajenim/features/desktop/wezterm/config/wezterm.lua similarity index 100% rename from home-manager/sajenim/features/desktop/jade/wezterm/config/wezterm.lua rename to home-manager/sajenim/features/desktop/wezterm/config/wezterm.lua diff --git a/home-manager/sajenim/features/desktop/wezterm/default.nix b/home-manager/sajenim/features/desktop/wezterm/default.nix new file mode 100644 index 0000000..3b94c2f --- /dev/null +++ b/home-manager/sajenim/features/desktop/wezterm/default.nix @@ -0,0 +1,12 @@ +{ pkgs, ... }: + +{ + home.packages = with pkgs.unstable; [ + wezterm + ]; + + xdg.configFile = { + wezterm = { source = ./config; recursive = true; }; + }; +} + diff --git a/home-manager/sajenim/features/desktop/jade/xinitrc b/home-manager/sajenim/features/desktop/xinitrc similarity index 66% rename from home-manager/sajenim/features/desktop/jade/xinitrc rename to home-manager/sajenim/features/desktop/xinitrc index 2ac33e2..55dd4a8 100644 --- a/home-manager/sajenim/features/desktop/jade/xinitrc +++ b/home-manager/sajenim/features/desktop/xinitrc @@ -3,11 +3,8 @@ # Setup our monitors xrandr --output HDMI-A-0 --mode 1920x1080 --output DisplayPort-0 --mode 2560x1440 --right-of HDMI-A-0 -# Apply our wallpaper -feh --bg-center ~/.repositories/dotfiles.nix/assets/chinatown.png - # Enable our compositor picom -b # Launch our window manager -exec xmonad +exec awesome diff --git a/home-manager/sajenim/fuchsia.nix b/home-manager/sajenim/fuchsia.nix index 1c97d38..d6619ed 100644 --- a/home-manager/sajenim/fuchsia.nix +++ b/home-manager/sajenim/fuchsia.nix @@ -3,10 +3,7 @@ { imports = [ ./global - - ./features/desktop/common - ./features/desktop/jade - + ./features/desktop ./features/printing ./features/games ];