Contextual command menu
The command menu gives you access to all actions applicable to your view or selection. We also bring up the command menu when you're clicking on items in the UI that have a corresponding action command menu, such as assigning an issue to a user or setting an issue's priority. While this worked reasonably well, we didn't like that the fact that the command menu always appeared at the center of the screen, regardless of whether it was invoked using the keyboard or mouse.
This week, we're bringing the command menu closer to the UI element that it was invoked from. The command menu now acts almost like a drop-down element but still retains its searchability and keyboard controllability.
Linear's desktop application wraps the web application for macOS and ships with native notifications among other functionality. This week we shipped several improvements listed below. If you already have the app installed, it will prompt you to update, or you can download it manually here.
- Upgraded to Electron 6 with latest Chromium
- Application will now ask to move itself to the Application folder if it detects that it is launched from Downloads or other location
- Added right click context menu for copying and opening links
- Added ability to zoom and other window controls
- Fixed "Hide Others" options for macOS
- Remapped back/forward shortcuts to macOS native Command/Ctrl[/Command/Ctrl]
- Added preferences shortcut: Command/Ctrl,
- Added home view shortcut: ShiftCommand/Ctrlh
- Fixed canceling edit mode prompt
- Fixed dragging window from issue view header
- Fixed Figma preview links in certain cases
- Notifications are now sent for users that are added as subscribers to an issue
- Slack notifications include better links for Figma previews
- Many small UI elements have been given more hit area so that they are easier to click
- Many UI elements now have better highlight states
- Suspended users will receive better error messages when they try to modify resources
- Peek is now deactivated when the command menu is opened
- Board elements now show estimates
We love Figma, and use it to design Linear. To make it easier to share design mocks in Linear, we now have an integration which converts Figma links into design previews inside Linear. Just copy a link to specific artboard, or a file, and we'll generate a preview image and a link in few seconds.
On technical implementation, we build this integration from ground up on Figma's API with their OAuth2 authentication. Instead just using Figma's standard Embed, this gives us several advantages:
- Performance - Figma's Embeds are heavy to load and they had significant performance impact to our frontend rendering. Loading an image with a link is as fast as loading any other image.
- Support for private Figma files - Figma Embeds only work with public files. Loading screenshots via their API allows us to embed any file.
- Snapshot in time - When you share a mock as a comment, it's not ideal that the mock changes over time. _ Select what to show - You can select a specific artboard to be rendered as the preview image. Useful when you want to use the main design element or cover page as the preview.
- Embed on demand - You can click the preview image to open Figma's Embed in its full glory if you want to dive into the asset without opening full Figma.
It's common to go through all team members in cycle planning or retro. Instead of applying user filter after user filter, we made this one-click action: hover over the user in cycle sidepanel and select "Filter". This combined with issue peek and you'll be done with your meeting in no time.
We added new shortcut commands for quick opening views:
- o then c - Open cycle…
- o then p - Open project…
- o then f - Open favorite…
- o then u - Open user…
All these commands are also available in the command menu (Command/Ctrlk). You can also trigger them from the header by clicking the title of the current view (e.g. cycle name in cycle view).
In addition to open commands we added keyboard shortcuts to all the available sidebar links:
- g then x - Open closed issues
- g then e - Open all issues
- g then b - Open issue board
- g then v - Open active cycle
- Sub-issues in issue now fit more relevant information (removed ID and creation date)
- Better link color for issue descriptions in dark mode
- Improved shadow styling for cycle sidebar
- Issue estimate is now included in issue peek view
- Empty columns are now hidden in board view when filtering against status
- Added confirm step for moving issues between teams
- Sidebar favorites are now ordered by the time of favoriting
- Search now includes issue descriptions
- Fixed missing color from project edit modal
- Fixed closing of keyboard help modal with Esc
- Fixes to comment compose
- Fixed exception when filtering cycles
- Fixed bugs in favoriting which lead to app crashing
- Fixed scheduled cycle closing
Peek is one the semi-secrets of the Linear UI. It’s a quick way to glance over the focused issue in issue lists similar to Quicklook in macOS. It can be useful in cases where you are trying prioritize several issues in a list, find one particular issue, or decide what to do with an issue.
It's a great feature, so it deserves a more prominent key to invoke it. We've remapped the key from Alt to Space. Peek is active while you hold down Space, or you can quickly press Space once to toggle it on, and once more to toggle it off.
Linear already supported photo and video uploads, and now we added generic support for all files type. You can add any file to the issue description or a comment as attachments. To attach a file, simply drag and drop files from your computer to the description editor or comment box.
In addition to projects, you can now favorite individual issues or cycles and have them appear in the sidebar for quick access.
- The associated projects in issue lists now link to the project
- Improved hover states for many components
- Prevents background auto-update when you're in the middle of editing an issue
- Fixed an exception in billings page when you have an active subscription
- Fixed subscribers button with several subscribers
- Issue title now renders in correct color in Safari
- Further search improvements for better matching
You're now able to favorite projects and have them appear as shortcuts in the sidebar. Simply click the star icon in the header when you're looking at the issues of a project, or open the command menu and select "Favorite project".
Cycles have gained some additional functionality this week. In case your team is on holiday or you want to make room for that Hackathon, you can now move the start time of individual cycles forward (and backward). You can now also give rename cycles to describe what you're working on in each cycle.
We added some preliminary API documentation. You own your data in Linear and our GraphQL API lets you query all of that data. In addition to querying, the Linear has full support for mutating all entities. Any mutations you make via the API are observed in real-time by all clients, giving you immense powers of writing your integrations.
In the months to come, we will improve the API and documentation, but we wanted to give the courageous among you early access to the API. We can't wait to see what you build with it.
If you haven't noticed yet, we're obsessed by speed. We felt that hot reloads could be faster. Hot reloads are reloads of the client where the client doesn't need to do a full synchronization with the backend and they are much more common than cold reloads. We added some clever optimization on how data is deserialized and are now seeing 4x faster hot bootstrap times with around 2000 open issues. The more open issues you have, the bigger the difference is.
You can now quickly search for issues using the command menu. Simply open the command menu and start typing. Search results will appear after all other actions.
- You can now customize your avatar by uploading a new image in settings
- Load filter action has been fixed and remapped to Command/CtrlShiftf
- Suspended team members will no longer show up in assignee menus
- Suspended team members are now rendered differently in the UI so that you can more easily see if an issue has been assigned to a suspended user
- You can now filter for issues that have been assigned to suspended users
- Search now uses a better search algorithm
- Creating sub-issues will now make you the assignee if you've opted into auto-assign new issues to yourself
Some teams like have dedicated downtime between cycles to "cool down" or catch up on other tasks before jumping into the next iterative development cycle. Linear now supports configuring a cooldown period in the team settings.
Creating new labels is now a lot faster. Previously, one had to jump to team settings to add a new label, but now you can do that straight from the command menu (Command/Ctrlk). When you have an issue selected, hit l to add a label to the issues, then select the "Create new label..." action.
Todo lists in issue descriptions have always been a great way to keep track of things that are still needed to be done to complete the issue. Now todo lists have received better styling and more importantly, you can check off individual items without having to go into edit mode.
To create a todo list in an issue description, type "[ ] todo" or press CtrlShift7.
- External links will now be opened in a new window by default. Preferences have been added to toggle this behavior
- All controls in the issue detail pane can now be reached via Tab
- ShiftEnter will now generate a line-break in the editor
- Fixed issue where reverting a pull request would close the associated issue
- Linear will now automatically upgrade itself if its in the background when it detects a newer release
- When @mentioning a user in the issue description, that user will now get added as a subscriber to the issue
- Fixed issue where navigation actions would trigger inadvertently
- Fixed issue with modifying pre-filled issues
- Links to team settings in the pre-populated issues will now point to the correct team's settings.
Video uploads and player
For new designs or bug reports, videos can tell more than pictures or words. Linear now supports video uploads as well as Loom embeds.
To embedd a video, just drag and drop a video file onto the issue description or comment field or paste in a Loom link and it will automatically be embedded.
We want to learn as much as possible from you on how we can improve Linear. We've added an easier way to send feedback from the app sidebar. We also have a new Slack community, the link of which you can find in the settings menu.
In addition to copying the issue id and git branch name, you can now also easily copy a link to the issue. Use the icon on the right corner or use the action menu (copy issue url).
- Added clear-button for search field
- The project name in the project editor now automatically receives focus
- Improvements to sync reliability
- Fixed a problem where one could accidentally archive a project instead of an issue within a project
GitHub Pull Request improvements
New automation for PR reviews
Linear has supported GitHub pull request automation for opened and closed PRs since day one. We noticed it's common for teams to separate the time they work on an issue, and the time when an associated PR is waiting to be reviewed. You can now automate this by creating a new workflow state (e.g. In Review) and have Linear move issues to it when a review has been requested on an associated pull request.
Linear will now also show when a review has been requested on an associated pul request.
Reopen issue when pull request is reverted
Not all merges go well and sometimes you'll need to revert a merged PR. Linear is now aware of these reverts and will automatically reopen the associated issue so you won't forget about it.
De-associate pull requests from Linear issues
We added new actions to de-associated pull requests from issues. You can find them from the command menu by typing "github".
Pull request links
Lists and board now include links to the associated pull requests. This makes it much faster to open the pull request of an issue, or to glance what issues have PR's open.
Subscribing (Shifts) and unsubscribing (Command/CtrlShifts) to issue updates is now built into the issue comment section. You can quickly toggle your subscription and see who else is subscribed to the issue. To keep your team up to date, you can also subscribe others to an issue.
- Links in the project description can now be opened from the project list
- Improved data sync reliability
- Fixed workflow status sorting in certain cases
- Fixed moving an issue to a new team when they have sub-issues
- Fixed board ordering bug
- Fixed bug causing uncompleted issues from moving to next cycle
The search view has been redesigned and the search input has been moved to the sidebar. With this change, search is faster to use and you're also able to filter the results of your query the same way as you would filter other views.
Linear has always had basic multi-selection of issues for applying shortcuts and actions to several issues at once. To make this easier and faster, we added more ways to select multiple issues and accidentally discovered even new UI patterns (tweet).
There are now four ways to select issues in list view:
- Select issues individually by clicking the checkbox or pressing x
- Select range by first selecting one issue and then selecting another one while holding down Shift
- Hold Shift and press Arrow Up/Arrow Down to expand selection
- Hold Shift and move the mouse over other issues to select
- Improved code highlighting performance
- Improved page title updating
- New actions for copying the URL to the active project and current view
- New shortcut for assigning issue to a project (Shiftp)
- You are now redirected to the previous view after archiving an issue
- Creating new issues in the Active Issues view now sets their statuses to active
- My Issues view has a new welcome screen for new users
- Notifications are now grouped per issue in emails
- Fixed bug on keyboard actions after issue selection
- Minor visual updates to boards
Linear now has better support for boards, with a refreshed design. Unlike lists, which are more information-dense and ordered by priority, boards offer manual ordering via mouse drag&drop.
Similar to lists, boards are grouped by the teams' workflow states and can be filtered using our new filters. You can now also perform keyboard shortcut actions hovering over the card of an issue.
Both active cycle and project pages can now be viewed in board view mode. Just toggle the view from the top right corner, or switch with Command/Ctrlb shortcut. To view all your issues in board view mode, select Board option from the team sidebar.
After adding new filters last week we shipped several improvements to them:
- Filters can now be applied using free text search on any field of an issue. For example, press f to open filter menu and type done to filter by this status
- Assignee and created by filters now supports
meas a shortcut for the current user
- The current user is now shown as the first option for filtering and changing assignee in the action menu
- Filters for the same type are now visually grouped
- New filter options to filter by no cycle, no project and unassigned
The preferences page now features a new look with more information about individual preference options.
Three new personal preferences were added:
- Default home view - You can now configure what view Linear should open by default
- Auto-assign to self - Issues you create are automatically assigned to yourself
- On git branch copy, move the issue to in progress - If you're like us and use git branch copy action (Command/CtrlShift.) when starting work on an issue, toggle on this small automation
- Added new action: Duplicate as new issue…Command/CtrlShiftc
- Improved the action menu's performance and responsiveness
- Cycle and project links in issue details have been updated to work both as open and change actions
- Filters are now team-based, so you can keep different filters open for each team
- Several small improvements to the projects list
- Projects can now be removed via the action menu
- URLs for uploaded images are now cleaner and the filename is used in Slack notifications
- Canceling new issue composition or issue editing now returns you to the last view you had open before opening edit mode
- Fixed Esc behavior when opening an issue through a link
- Fixed a bug where archiving an issue sent unrelated Slack notifications
- Fixed a bug which lead to high idle CPU usage
Once your team's issue count starts growing, filtering becomes necessary to narrow down the scope of issues that you want to look at or manage. We gained valuable experience from our initial filter design, and wanted to improve the design in two ways:
- The filter UI should scale with more options and filter types
- You should be able to use filters 100% via the keyboard
This week we fully redesigned and reimplemented how filters work. In any view that lists issues - including the board - you can access filter via the f shortcut. Once a filter has been applied it can be removed with the Shiftf shortcut.
Filters are now view based, so you can, for example, apply different filters to "My Issues" and "Active Issues" and jump between these views without losing each filter.
- Project status can now be changed via actions and the s shortcut
- Projects are sorted according to their status
- Labels can now be modified from the team settings
- Fixed navigation issues, the back-button will now yield more expected results
- Cycle burn-up graphs have less crowded x-axis labels for long cycles
- @Mentioning users now work better if you have a substantial amount of team members
- Peek now deactivates if you hide the client by Option-clicking your desktop on a Mac.
- Fixed issues with project target date entry on Safari
- Keyboard help has been updated
- Issues are now longer selected when typing x with the command menu open
- Modal states are now visually more distinguishable
To set direction and long term goals for the team it is often useful to plan larger initiatives or features alongside all the other work that needs to happen.
With Linear Projects, we wanted to make exceptionally easy and fast to create a project, and start refining it as you go. You can optionally set a target date, description, and link to the product spec so that the necessary context is there.
You can break the individual work to multiple Cycles, and make constant progress each week to complete the project.
This is our first release of Projects and we're excited to continue expanding them to make it easier for you to design and build software.
ProTip: If you need to group issues but they are too small to use Projects, you can link them together as sub-issues. Select an issue, and from command menu pick Set parent issue.
- Archived issues can now be accessed via their URL and no longer return a 404
- Scroll lists with Ctrln and Ctrlp shortcuts
- Issues are now deselected in multi-select when changing views.
- Hovering over sub-issues now support keyboard shortcuts
- Improved editor styles
- Improved styling for All Cycles view
- Improved messaging for git branch name copying
- Better error handling for failed user actions
- Optimized initial application data loading performance
- Don't trigger issue peek in inputs (tip: show issue peek by pressing Option in lists)
- Fixed setting parent issue when creating a new sub-issue in some views
- Fixed duplicate linking with GitHub pull requests
- Fixed command menu mouse focus and styling for Safari